- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Allegro skill基本语法
1.1 SKILL 语言简介
SKILL 是用于Cadence 软件二次开发的语言。我们关于SKILL 的介绍基于SKILL 语言参考档和Allegro SKILL的应用。1.1.1 语法格式
SKILL语法支持lisp 格式的语法,但是我们不推荐,推荐类C 的语法格式。
Lisp示例:(max 5 3) = 5
C 示例:max(5 3) = 5
Max是求最大值的函数,lisp 格式的不便阅读。
1.1.2 简单的SKILL 运行环境
Allegro 的SKILL 运行环境:在Allegro 的命令窗口输入set telskill 窗口就可以用来运行就可以打开一个新的窗口,这个SKILL 命令。窗口的大小可以手动调节。?
1.1.3 Load Skill
可以直接在SKILL development里面运行SKILL,可以把写好的代码放load命令一次性装载。 在说明load 之前,先说一下getSkillPath和setSkillPath 这2 个函数。因为load 要找到SKILL 来装载,通常我们都不喜欢通过绝对路径来装载一个文件,因为那样包含的字符太多了。文件getSkillPath() 将得到当前Allegro 设置的SKILL 加载路径,而setSkillPath 用来指定加载路径。目前先不用考虑这个setSkillPath。
我的Allegro当前默认的SKILL 路径是Allegro 的工作路径和C:\home\pcbenv\skill这样我先把hello.il文件放在C:\home\pcbenv\skill\函数。下面,下一步来加载这个文件,然后运行定义的函数
?Hello.il的源代码:
procedure( hello()
let( ()
println(Hello World!)
)
) ; end procedure
1.1.4 注释
SKILL支持2种注释方式 a. /* … */ 用于注释多行,像C一样 b. ; 用于注释单行,类似C 的//
1.1.5 基本的数据类型
integer 5
float 5.0
string abc defg
list (1 2 3 a)
boolen t/nil
1.1.6 变量
SKILL的变量定义比较随便,不需要指定其类型,赋什么类型的值就是什么类型。
示例: 变量名可以包含字母、数字、下划线以及问号,数字和问号不可以作为变量的第一个字符。不过为了规范编程和方便阅读,对于不同类型的数据的变量都使用简写的方式来代表,比如定义一个浮点数的变量,那么推荐使用f 作为前缀。如fPrice,lCoordinate,sMessage,iAge/nAge,bCheck...
1.1.7 操作符
数学运算 +, -, *, /, ++, **
比较运算 , , =, =, =, ==
逻辑运算 ||, , !
赋值 =
1.1.8 输出数据
示例: ?%d --- integer,%f --- float,%s --- string,%L---多种数据格式
?
1.2 List数据类型
List是Cadence SKILL中常用的数据类型。可以把List可以有多种类型的常量组成的列表。理解为一个数据结构表,它可以是空的,也可以有多种类型的常量组成的列表例如:
( 1 2 a b c PCB )
在上面这个List中包含的数据有整数、字符、字符串。在List中也可以包含List类型的数据。 例如:
( 1 ( 2 a a ) b )
1.2.1 创建List 数据
创建新的List数据可以用单引号 或者函数list来新建一个List数据类型的变量。例如:
aList = ( 1 2 a b c) = (1 2 a b c)
bList = list( 1 2 a b d) = (1 2 a b d)
cList = ( 1 ( 2 a a ) b ) = (1 (2 a a) b)
注意:当有字符出现的时候,用list 函数创建必须在字符前加单引号。
1.2.2 List 在内存中的储存方式
我们可以把List看做是一个List单元,其中一个List单元占用两个内存位置。这样便于理解。 ?
第一个位置保存List的首个数据元素,第二个位置保存后面的List单元(除第一个元素之外的所有元素组成的表),它可以为空数据。
用car函数可以得到保存在第一个位置的List元素:car( aList) = 2
用cdr函数可以得到保存在第二个位置的List单元: cdr( aList) = (3 4) List
中可以包含有子List,例如: bList = ( 1 ( 2 3 4 ) 5 ) = (1 (2 3 4) 5)
bList在内存中的
文档评论(0)