一、Skill语言简介
Cadence SKILL语言是一种高级的、交互式的编程语言,它是Cadence软件平台用于二次开发和自动化设计流程的关键工具。SKILL语言基于LISP(List Processing)语言发展而来,用于开发Cadence Design Systems的EDA(电子设计自动化)工具套件中的定制脚本和宏。它是一种功能强大的脚本语言,用于自动化和扩展EDA工具的功能,包括Virtuoso、Encounter、Allegro等。
以下是SKILL语言的一些主要特点:
- 交互性:SKILL提供了一个交互式环境,允许用户在Cadence的Command Interpreter Window(CIW)中直接输入和执行命令。
- 数据结构:SKILL以列表(list)作为其核心数据结构,这与LISP语言的特点一致,使得它在处理复杂数据结构时非常灵活。
- 函数式编程:SKILL支持函数式编程范式,允许用户定义和使用高阶函数,以及通过函数传递函数作为参数。
- 内置函数:Cadence为SKILL提供了大量的内置函数,这些函数可以操作设计数据结构,如网络(nets)、实例(instances)、单元(cells)等。
- 扩展性:SKILL语言具有强大的扩展能力,用户可以根据需要开发新的函数和应用程序,以扩展Cadence工具的功能。
- 应用广泛:SKILL语言在Cadence工具中应用广泛,包括布局(layout)、原理图(schematic)、仿真(simulation)和数据后处理(post-processing)等。
- 易于学习:对于有编程背景的用户来说,学习SKILL语言相对容易,尤其是那些熟悉LISP或函数式编程的用户。
- 脚本自动化:SKILL可以编写脚本来自动化复杂的设计任务,提高设计效率和减少人为错误。
- 与Cadence工具集成:SKILL与Cadence的设计工具集紧密集成,使得用户可以在Cadence环境下无缝使用SKILL进行设计和开发。
- 文档和社区支持:Cadence提供了详尽的SKILL语言参考手册和用户指南,同时有一个活跃的社区和论坛,用户可以在其中获取帮助和分享经验。
二、skill API函数理解
Skill API函数案例解析:
dbOpenCellViewByType(
{ gt_lib | nil } # separated choice argument, must choose one
t_cellName # required argument
lt_viewName
[ t_viewTypeName # optinal keyword argument
[ t_mode
[ d_contextCellView ] ] ]
)
=> d_cellView / nil # return value
第一个参数:必须从列出的参数中选择一个;
第二、三个参数:必选参数;
第四、五、六参数:可选参数;
三、SKILL API Finder使用
使用API Finder:
路径:Tools-> SKILL API Finder
输入需要查询的函数,点击“Go”;
双击,展示详细解释。