Skill语言与IPC初探

上传人:xmg****18 文档编号:121223817 上传时间:2020-02-19 格式:DOC 页数:15 大小:191KB
返回 下载 相关 举报
Skill语言与IPC初探_第1页
第1页 / 共15页
Skill语言与IPC初探_第2页
第2页 / 共15页
Skill语言与IPC初探_第3页
第3页 / 共15页
Skill语言与IPC初探_第4页
第4页 / 共15页
Skill语言与IPC初探_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《Skill语言与IPC初探》由会员分享,可在线阅读,更多相关《Skill语言与IPC初探(15页珍藏版)》请在金锄头文库上搜索。

1、. . .Skill语言及IPC初探引言Skill是一种解释性的脚本语言,运行于cadence设计环境,是cadence设计工具的API, skill程序可以对cadence设计工具进行功能的扩充,实现功能的定制,提高设计效率和水平。基于公司目前的pcb设计工具多为cadence产品,因此提高对skill的运用,可以充分发挥cadence设计工具的功能,其作用不言而喻。笔者经过了一定时间的熟悉,总结了一下,抛砖引玉,希望能和大家共同学习和讨论,促进和提高skill的应用水平。Skill语法概要Skill是”嵌入式”的高级开发语言,运行于cadence的设计工具上,且是一种交互式的设计语言。作为

2、一种程序语言,它具备了高级语言的常用特征。Cadence公司认为是类C语言风格,在笔者看来,更加类似vbscript、javascript甚至pl/sql。在处理内存管理上不用过多的留意,因为skill的内置解释器已经做了处理。需要做的只是利用提供的系统函数实现自己的业务需求。变量像一些松散的高级程序语言一样,变量不需要定义,为隐含定义,第一次出现就可以赋值。变量命名第一个字符不允许是数字。如:vTmp = 3 ,表示vTmp已经定义了为一数字类型值等于3。像所有程序语言一样,skill变量也要分为全局变量和局部变量。l 全局变量全局变量一般用在程序中作为一个存储变量、标志等变量共享,或者为了

3、传递的方便。其生存周期和进程一样。在skill中,如果不出现在prog()和let()函数的参数定义中出现的变量都为全局变量。Prog和let函数是主要目的用来定义局部变量。其中prog函数允许多点的返回。从程序设计角度来讲,尽量避免使用全局变量,因为全局变量总是难以清楚的跟踪控制,容易导致变量被修改,使得存储值发生变化。l 局部变量局部变量作用于函数体内,在其他语言中也可以作用于代码块中,如在c/c+中,函数体内大括号之间的变量,在出了”外,该变量随即实效,可以以这个名字重新定义变量了。这里介绍两个函数:prog()和let()prog( l_localVariables s_label g

4、_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

5、+y 4 对于返回值的类型不需要声明let( l_bindings g_expr1 . ) = g_result 函数举例:例1x = 5let( (x (a b c) y)println( y ); Prints nil.x)= (a b c); Returns the value of x.例2procedure( test( x y )let( (x 6) (z return string)if( (equal x y)then z else nil) test( 8 6 ); Call function test. = return string; z is returned beca

6、use 6 = 6.说明:例1中,函数let对局部变量x赋值为列表(a b c),因此在函数let内返回x值时不会受外部全局变量x的影响,返回了(a b c)例2中,传入的x值是8,在let函数中x为局部变量并且被赋值6,因此比较相同返回return string变量类型 Skill中也提供对整型、浮点数字、字符等常用变量类型的支持。也提供了专有的变量类型如dbobject、symbol等。数据结构l Disembodied Property Lists是一个可以增删字段的记录,套用原话 A disembodied property list starts with a SKILL data

7、object, usually nil, followed by alternating name/value pairs. The property names must satisfy the SKILL symbol syntax to be visible to the arrow operator. The first element of the disembodied list does not have to be nil. It can be any SKILL data objectl 结构体同c/c+结构体,定义方式略有不同如:结构体sLinedefstruct( sLi

8、ne x0 y0 x1 y1 width layers)make_sLine(?x0 1 ?y0 2 ?x1 3 ?y1 4 ?width 0.3 ?layers 5)访问成员方式:sLine-l 数组定义数组declare( aLine27 ),下标从0开始 控制语句l 分支 if There are exactly two values to consider, true and false. when There are statements to carry out when the test proves true. unless There are statements to ca

9、rry out unless the test proves true. cond There is more than one test condition, but only the statements of one test are to be carried out. If语句用法举例如:if( done then i = 0 else i = 1)注意:if和”(”之间不能有空格Case/ caseq语句用法举例如:case( form-curField ( done ;printf(field/value %sn,) ) ( cancel axlFormClose(form) )

10、 );end case 同理:case和”(”之间不能有空格l 循环循环语句和其他语言分别不大,比较容易掌握Whilewhile( i 如:取得一个组的成员v_lgroup = axlSelectByName(GROUP title_group)if(v_lgroup != nil then axlDeleteObject(car(v_lgroup)-groupMembers))Dbid有点类似于句柄的概念,但对对象的访问显得比较直接。AXL-SKILL可以进行操作的对象,如下表对象分类对象名Figure objectsArcs, Branches, Design Files, Drcs, Lines, Paths, Polygons, Ppins, Shapes, Symbols, Tees, Vias, Pads, Pads

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号