SKILL语言的输入与输出

Skill可以把输出卸载CIW窗口,同时还可以对文件进行读入和写入

(一)输出显示和输出到文件

(1)print()和println()

print() 和println() 两个函数都可以用来显示单个数据,println可以在显示的数据后多加一个回车。

for(i 1 3 print( "hello" )) ;prints hello three times.

返回值是:"hello""hello""hello"

for(i 1 3 println( "hello" )) ;prints hello three times.

返回值是:

"hello"

"hello"

"hello"

 

(2)printf ()函数是格式化的输出(对于格式化输出后面会讲),下面的例子是一定格式输出图形层的统计。

printf("\n%-15s %-15s %-10d %-10d %-10d %-10d"

layerNamepurpose rectCount labelCount lineCount miscCount

)

对应参数的意义如下,printf需要注意输出类型的对应,一般格式如下:

printf("%[-][width][.precision]" conversion_code)

-表示左对齐,width表示位数,.precision表示精度 ,conversion_code部分一般是变量

对于精度

d表示整数,f表示浮点数,s表示string或者symbol,c表示字符,n表示数字,L表示list,P表示point list,B表示Bounding box。

(3)print( ) , println( ) , fprintf( )输出到接口文件

想输出内容到一个文件,首先用outfile来定义输出接口文件,然后用print println fprintf输出到接口文件, 最后close关闭打开的接口,具体见下面的例子。

例子一:

myPort= outfile( "/tmp/myFile1" )

for(i 1 3

println( list( "Number:" i) myPort )

)

close(myPort )

输出到文件/tmp/myFile1.

("Number:"1)

("Number:"2)

("Number:"3)

例子二:

myPort= outfile( "/tmp/myFile2" )

for(i 1 3

fprintf( myPort "Number: %d\n" i ) ;注意printf函数不能输出到port

)

close(myPort )

输出到文件/tmp/myFile2.

Number:1

Number:2

Number:3

上面两个例子一个是用的println,一个使用fprintf,注意二者的区别,并且注意printf函数不能输出到port。

(二)从文件读取数据

如果想读入文件的内容,首先用intfile定义输入接口文件,然后用gets一次从接口文件读取一行字符串,或者用fscanf根据指定的格式从接口文件读取,最后用close关闭打开的接口。

下面例子实现的功能是:打开~/.cshrc,输出文件的每一行到CIW窗口的目的:

inPort= infile( "~/.cshrc" )

when(inPort

while( gets( nextLine inPort )

println( nextLine )

)

close(inPort )

)

下面例子实现的功能是:打开~/.cshrc,输出文件中的每一个字符串到CIW窗口:

inPort = infile( "~/.cshrc" )

when( inPort

while( fscanf( inPort"%s" word )

println( word )

)

close( inPort )

)

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
多年以来,Cadence 公司的 CAD 工具 一直是世界上使用最广泛,功能最强大的IC设计工具。而为了应对IC的复杂度越来越高, 设计的困难度也越来越高的情况,Cadence的CAD整合开发环境也越来越庞大,所提供的功能也日益强大,造成使用者在维护及管理上的一大负担。再则, 每一家的设计公司的在设计的流程多多少少都会有一些小步骤,无法用 Cadence 工具提供的基本做法来达成; 或者是不同公司的工具之间资料转换的问题。工程师遇到此类问题可能需要通过人工的方式去完成连接设计流程相连的两个步骤; 或是干脆去开发一些小软件来完成这些特定的工作,而此时使用者可能会面临如何将自己开发的软件的I/O 与Cadence 工具的整合环境相连结的问题。一般的做法是产生一些资料档来做资料交换的介,这些资料档的格式可能是 Cadence 支持的一标准数据格式,也可以是使用者自订的数据格式。这样子是一种间接的做法,因为使用者无法直接去存取 Cadence 环境的内部资料,所以在处理上的弹性会小很多,也较不方便。 为了方便使用者使用整个 CADENCE tools 的整合开发环境,以解决上述的困扰,CADENCE 公司遂发展了 SKILL 语言。 SKILL 是一种高级的、交互式的语言,是用于 CADENCE tool 的整合开发环境内的命令语言(command language)。 SKILL 采用人工智能语言 LISP 的语法为蓝本,再加上常用的 C 语言的部份语法设计而成。 SKILL 语言提供许多的接口函数,能让使用者可以编程直接去存取CADENCE 整合环境内的电路资料内容; 也可以让使用者去开发将自己开发的应用程式并入CADENCE tool 的整合环境里。有了 SKILL 言,使用者可以让 CADENCE tool 更充份地融入整个设计流程之,减少琐碎 的人工转换时间,提升公司的生产力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值