没有合适的资源?快使用搜索试试~ 我知道了~
首页candence_skill
candence_skill
需积分: 11 9 下载量 201 浏览量
更新于2023-06-24
评论 1
收藏 691KB PDF 举报
关于cadence——skill的简单介绍,和简单总结,对skill有一个简单的了解
资源详情
资源评论
资源推荐
Cadence skill 语言简介
Cadence提供二次开发的SKILL语言,它是一种基于通用人工智能语言—Lisp的交互
式高级编程语言(LISP即List Processing-表处理,是最早和最重要的符号处理编程语言
之一,它于1958年由美国的J. McCarthy提出,LISP在人工智能AI方面获得广泛应用)。
SKILL语言支持一套类似C语言的语法,大大降低了初学者学习的难度,同时高水平的
编程者可以选择使用类似Lisp语言的全部功能。所以SKILL语言既可以用作最简单的工具
语言,也可以作为开发任何应用的、强大的编程语言。 SKILL可以与底层系统交互,也提
供了访问Cadence各个工具的丰富接口。用户可以通过Skill语言来访问,并且可以开发自
己的基于Cadence平台的工具。
1. Skill语言和Lisp语言的关系
Skill函数提供两种表示法,一种是代数表示法,现在大多数语言采取这种方式,即
func( arg1 arg2 ...),另一种是前缀表示法,类似于Lisp语言,即(func arg1 arg2 ...)。这里
举个例子作为对比:
1.代数表示法
procedure( fibonacci(n)
if( (n == 1 || n == 2) then
1
else fibonacci(n-1) + fibonacci(n-2)
)
)
2.前缀表示法
(defun fibonacci (n)
(cond
((or (equal n 1) (equal n 2)) 1)
(t (plus (fibonacci (difference n 1))
(fibonacci (difference n 2))))
)
)
这里可以看到类似Lisp语言的表示法后面有很多右括号,而且函数和参数容易混淆,所以
一般推荐还是用常用的类C语言代数表示法
Skill程序就像一个list表,类似Lisp语言,程序的操作就像操作数据(list)一样,可以生
成,修改,求值等
2. 关于 Skill 函数
SKILL 语言支持一套类似 C 语言的语法,初学者有了一定的 C 语言基础,入门是很容
易的。Cadence 的工具可以通过 CIW,Bindkey,Form,Menu 等多种方式调用 skill 函数,
送到 skill 语言的解释器来执行各种操作。
其中CIW(Command Interpreter Window),即启动Icfb的第一个窗口,包含一些常用的
menu,一个输入行,以及一个输出区域,这里是常用的debug skill程序的地方,当然cadence
也提供了Tools->Skill Development,有兴趣的话可以深入研究一下
2.1 Skill 函数的查阅方法
Skill语言有n多函数,加上众多工具的接口函数,可以用成千上万来形容,初学者可能
会感到晕头转向,无从下手。其实只要了解基本的变量,控制语句,输入输出以及一些常
用工具的基本函数就可以了,大多数函数都可以用到再查阅。开始学习skill时可以仔细看
看SKILL Language User Guide,其他的可以用到时再查阅,这里列出几个经常会用到的
文档:SKILL Language Reference -Skill语言相关的函数,Cadence User Interface
SKILL Functions Reference -Cadence应用程序图形界面接口函数,Design Framework
II SKILL Functions Reference,SKILL Custom Layout Reference,SKILL Schematic
Composer Reference分别是Cadence的Design Framework II,版图,电路的接口函数。
当然还有其他众多工具的接口函数,因此Skill需要方便的函数查阅方法,这里列出3
种:
1.最简单的方法,看~/CDS.log 文件或者 CIW 的输出区域,把 Options-> LogFilter
都选上。这里一般可以查阅在图形界面下运行的函数,如图,我们可以看到画 path 线的函
数以及输出结果等
2.在 CIW 里输入命令 startFinder,或者在 Terminal 上输入 cdsFinder& . Finder 适
用于至少知道函数名的一部分,这里可以查到函数的用法简介。例如上图我们看到画 path
的函数是 leHiCreatePath(),但这是图形方式的函数,对应 skill 方式的函数呢用法呢,可
以在 Finder 中输入 CreatePath,这样我们就可以看到包含有 CreatePath 的所有函数,如
图,leCreatePath 即是我们想找的函数,这里可以看到简单的用法介绍
3.上面我们查到的关于函数用法的介绍很简单,如何知道其详细介绍呢。当然如果
你知道函数在那个文档里,直接打开就行了,如果不知道,就需要打开 help 的 search 功
能,这里可以查到详细的功能用法。
运行 cdsdoc&, 点击 Search 打开 Cadence help 的搜索功能,工具会自动启动一个
http 服务,同时打开搜索网页,启动服务后,你也可以在 windows 的 IE 里输入
http://hostname:9000/search.htm,同样可以打开搜索页面,需要注意的是,在
C:\WINNT\system32\drivers\etc\hosts 文件中需要加入 hostname 对应的 ip,如:
127.0.0.1 localhost
10.0.10.2 host1
Cadence help 的搜索功能默认是用 Netscape 打开搜索网页,如果没有装 Netscape,
可能会打不开网页。可以先打开 firefox,mozila 等浏览器,再启动 cadence doc 搜索 http
服务,这样就可以打开搜索网页了
3. Skill 语言简介
Skill 语言的很多地方和 C 语言差不多,如变量,函数,控制结构,输入输出等,详细
的介绍可以参考 User Guide,这里只作简单介绍。
3.1. Skill 的变量不需要事先声明,Skill 第一次用到是会自动生成变量。变量可以由字
符、数字、“_” 和 “?” 组成,注意第一个字符不能是数字和”?”。由于 Cadence 所开发的
Skill 中的变量、函数都是第一个字母小写,以_为开头的是 Cadence 的专用函数,为了避
免冲突,建议大家函数和变量命名都以大写字母开头。
3.2. Skill 的函数的调用方式有三种,
strcat( "Hello" "," " everyone" "!" ) ;常见的类C格式
( strcat "Hello" "," " everyone" "!" ) ;类Lisp语言的格式
strcat "Hello" "," " everyone" "!" ;上面的括号可以省略
返回的结果都是 => "Hello, everyone!"
推荐使用第一种方式,需要注意的是函数和第一个括号之间没有空格,否则会报错
如:
strcat ( "Hello" "," " everyone" "!" )
=> *Error* eval: not a function - "Hello"
这是调用 skill 函数的一个常见问题,其它的问题还有:
a. 软件没响应,比如在 CIW 中输入段代码,软件没有反映,什么结果也没有,一般
是因为( )或者” “不成对造成的,一般可以通过键入 ] 来解决,它表示补充完不对称的括号
(可以代替任意多个右括号),如果还没有响应,键入 “] 这时大部分情况下,系统会有响应
b. 数据类型不匹配,如:
strcat( "Mary had a" 5 )
=>*Error* strcat: argument #2 should be either a string
or a symbol (type template = "S") – 5
3.3. Skill List 是 Skill 基于 Lisp(List Processing)语言的表现,它是 skill 数据对象的
一个有序集合,skill 数据甚至程序本身都可以看作是一个 list,这是 C 语言中所没有的概
念。下面是 skill list 的简单例子
List Explanation
(1 2 3) A list containing the integer constants 1, 2, and 3
(1) A list containing the single element 1
( ) An empty list (same as the special atom nil)
(1 (2 3) 4) A list containing another list as its second element
A). 创建 list 有以下几种基本的方法:
Specify all the elements of the list literally with the single quote ( ‘ ) operator.
Specify all the elements as evaluated arguments to the list function.
Add an element to an existing list with the cons function.
Merge two lists with the append function.
1).用 ' 和 list 定义一个list,注意两者的差别
a = 1 => 1
b = 2 => 2
'( a b 3 ) => ( a b 3 )
list( a b 3 ) => ( 1 2 3 )
剩余17页未读,继续阅读
silvia_wang
- 粉丝: 1
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0