1 / 9
文档名称:

Skill语言及IPC初探.doc

格式:doc   大小:203KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Skill语言及IPC初探.doc

上传人:mh900965 2017/12/18 文件大小:203 KB

下载得到文件列表

Skill语言及IPC初探.doc

相关文档

文档介绍

文档介绍:Skill语言及IPC初探
引言
Skill是一种解释性的脚本语言,运行于cadence设计环境,是cadence设计工具的API, skill程序可以对cadence设计工具进行功能的扩充,实现功能的定制,提高设计效率和水平。基于公司目前的pcb设计工具多为cadence产品,因此提高对skill的运用,可以充分发挥cadence设计工具的功能,其作用不言而喻。笔者经过了一定时间的熟悉,总结了一下,抛砖引玉,希望能和大家共同学****和讨论,促进和提高skill的应用水平。
Skill语法概要
Skill是”嵌入式”的高级开发语言,运行于cadence的设计工具上,且是一种交互式的设计语言。作为一种程序语言,它具备了高级语言的常用特征。Cadence公司认为是类C语言风格,在笔者看来,更加类似vbscript、javascript甚至pl/sql。在处理内存管理上不用过多的留意,因为skill的内置解释器已经做了处理。需要做的只是利用提供的系统函数实现自己的业务需求。
变量
像一些松散的高级程序语言一样,变量不需要定义,为隐含定义,第一次出现就可以赋值。变量命名第一个字符不允许是数字。如:vTmp = 3 ,表示vTmp已经定义了为一数字类型值等于3。像所有程序语言一样,skill变量也要分为全局变量和局部变量。
全局变量
全局变量一般用在程序中作为一个存储变量、标志等变量共享,或者为了传递的方便。其生存周期和进程一样。在skill中,如果不出现在prog()和let()函数的参数定义中出现的变量都为全局变量。Prog和let函数是主要目的用来定义局部变量。其中prog函数允许多点的返回。从程序设计角度来讲,尽量避免使用全局变量,因为全局变量总是难以清楚的跟踪控制,容易导致变量被修改,使得存储值发生变化。
局部变量
局部变量作用于函数体内,在其他语言中也可以作用于代码块中,如在c/c++中,函数体内大括号{}之间的变量,在出了”}”外,该变量随即实效,可以以这个名字重新定义变量了。这里介绍两个函数:prog()和let()
prog(
l_localVariables
[
[ s_label ]
g_expr1
] ...
)
g_result / nil
prog函数用来定义局部变量,并且支持跳转和返回。
函数的用法举例(函数的调用在稍后会介绍)
prog( (x y)                ; Declares local variables x and y.
     x = 5                  ; Initialize x to 5.
     y = 10                 ; Initialize y to 10.
     return( x + y )
)
说明:
1 “;”表示注释,和c/c++中不同。每一行结束一回车换行判断。
2 在上述函数中,两个变量x y 为局部变量,作用域为prog函数体,函数返回一个值。
3 返回值用函数return,如在c/c++中用 return x+y
4 对于返回值的类型不需要声明
let(
l_bindings
g_expr1 ...
)
=> g_result