Allegro skill基本语法.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档