Cadence Skill 论坛
标题: 各位前辈,求指个方向 [打印本页]
作者: bluroot 时间: 2013-7-1 22:05
标题: 各位前辈,求指个方向
想深入学学SKILL方面的(补充一下,我有软件基础,会写C、C++代码),请前辈们介绍下SKILL方面哪些教程或书藉比较好,先谢谢诸位了
作者: XYX365 时间: 2013-7-2 08:58
本帖最后由 XYX365 于 2013-7-2 09:10 编辑
最好的资料就是自带的帮助文档了,里面对每个函数的用法及举例都有详细的说明,下面列出几本常用的帮助文档:
==============================================================================
SKILL Language User Guide SKILL的基本概念,特点,写法等。
SKILL Language Reference 作为SKILL Language User Guide的手册文件,具体列出了每一个函数的使用方法。
Allegro PCB and Package User Guide:Skill Reference AXL-SKILL函数手册 AXL=(Allegro eXtension Language),
AXL-SKILL是 CADENCE SKILL核心, 在ALLEGRO中的一个扩充,
用来访问与操作 PCB_Editor 及其数据文件。
SKILL Development Help SKILL程序开发教程
SKILL Development Functions Reference 作为SKILL程序开发教程的手册文件,具体列出了开发调试函数的使用方法
Interprocess Communication SKILL Functions Reference IPC函数手册
SKILL++ Object System Functions Reference SKILL++函数手册
==============================================================================
==============================================================================
看帮助手册时候的一些格式表示
| 竖线表示单个argument的不同取值可能
{ } 和竖线配合使用,用于超过三个以上的不同取值可能的情况。
[] 方括号表示可选的
... 三点省略号表示可以重复先前的参数
argument... 表示至少要一个参数,但是也可以多个
[argument]... 表示可以多个参数,但也可以是一个都没有
=> 向右的箭头表示函数运行后的返回结果
/ 斜线表示函数返回的不同可能结果
例子:
list( g_arg1 [g_arg2] ...) => l_result
needNCells( s_cellType | st_userType x_cellCount) => t / nil
==============================================================================
一、SKILL语言简介
SKILL语言是CADENCE公司为其软件提供的二次开发语言,通过编写SKILL程序,可以查询和操作ALLEGRO中的各种对象,例如走线、元件、过孔等。在ALLEGRO中的一些默认的功能就是使用SKILL语言写出来的程序;该语言的语法类似于C和C++,有这两种语言编程经验的人可以比较快的上手。
二、SKILL程序加载及执行
1)要使用SKILL程序,首先要了解SKILL程序的加载机制,在CADENCE的安装路径中有两个路径与加载SKILL程序有关,也即SKILL的默认加载路径,它们是:$allegro_dir\share\local\pcb\skill 和 $allegro_dir\share\pcb\etc\skill ,其中,$allegro_dir表示ALLEGRO的安装目录。在ALLEGRO程序启动的时候,会到这两个目录中去寻找初始化文件。
2)初始化文件:该文件的名为 Allegro.ilinit ,这个文件在SKILL程序的加载中具有至关重要的作用,其内容本身就是可以是SKILL程序,通常这个文件被用来加载其他的SKILL程序,语法如下:
load("xxx.il")
或者,对于源代码加密过的SKILL程序:
load("xxx.il" "pwd")
其中,"pwd" 表示加密时使用的密码,由程序的加密者提供。
"xxx.il" 表示需要加载的SKILL程序的文件名,如上所述,SKILL程序的默认加载路径有两个,只需要将需要加载的SKILL程序放在这两个目录中,并在Allegro.ilinit中添加相应的LOAD语句,则ALLEGRO在启动的时候就将自动加载这些SKILL程序。
3)执行程序:SKILL程序的执行可以有下列三种方式:
a)在skill程序中使用 axlCmdRegister 函数,将SKILL程序中的主函数注册成一个命令,然后在命令行中输入这个命令,回车就可以执行这个函数。例如在附录示例的程序中,主函数名称是“grids” 则在程序中使用:
axlCmdRegister( "grids_cmd" `grids)
注册一个名为 grids_cmd的命令,然后在ALLEGRO的命令行中输入grids_cmd并回车即可执行该程序。
b) 如果在SKILL程序中没有使用注册命令的函数,则如果需要在allegro平台下执行某一个函数,需要使用以下的格式: skill function_name
c) 通过菜单执行:在使用SKILL程序的过程中,为了不需要记忆命令,可以通过将命令添加进菜单的方式来执行程序,菜单文件的路径在 $allegro_dir\share\pcb\text\cuimenus目录中,文件名为allegro.men ,用文本编辑器打开这个文件,其基本格式很简单:
MENUITEM "command_display", "command_name"
"command_display" 表示菜单显示的文字,如下图所示:
"command_name" 表示点击此菜单的时候所执行的命令。
三、SKILL程序开发
Skill程序同C语言程序一样,是一种面向对象编程语言,其基本单位是函数,整个skill程序构筑在函数的基础之上。
<一>、参考书籍(按重要性排序)
1、《SKILL Language User Guide》: SKILL的基本概念,特点,写法等;
《SKILL Language Reference》: SKILL Language User Guide的手册文件,具体列出了每一个函数的使用方法。
2、《Allegro PCB and Package User Guide:Skill Reference》AXL-SKILL函数手册 AXL=(Allegro eXtension Language);AXL-SKILL是 CADENCE SKILL 核心 在ALLEGRO中的一个扩充。用来访问与操作 PCB_Editor 及其数据文件;
3、《SKILL Development Help》:SKILL程序开发教程;
《SKILL Development Functions Reference》:作为SKILL程序开发教程的手册文件,具体列出了开发调试函数的使用方法;
4、《Interprocess Communication SKILL Functions Reference》:IPC函数手册;
5、《SKILL++ Object System Functions Reference》:SKILL++函数手册。
<二>、源程序编辑、调试环境
skill程序源代码编辑可以采用任何文本编辑器,但是为了提高编码的效率和查看程序的方便,推荐采用带语法高亮的文本编辑器,比如ULTRAEDIT或者NOTEPAD++,使用这两种编辑器的时候需要手动将SKILL语言的关键字输入进配置文件,否则该编辑器的语法高亮功能将不能使用,具体操作方法见编辑器本身的帮助文档。
由于skill语言是一种解释执行的语言,也即脚本语言,在执行程序的时候不需要编译成二进制代码,而是通过CADENCE提供的skill解析器来进行即使解析执行,因此,不同于C语言,SKILL语言的开发过程中没有编译环境,启动SKILL命令解释器的方法是在命令行输入skill并回车即可,在这种状态下,即可输入SKILL命令(函数)进行skill程序的调试和执行。
调试的过程因为skill的调试环境需要单独的LISENCE支持,而我们现有的授权文件均不具备这个条目,因而给SKILL程序的调试带来比较大的麻烦,目前唯一的调试途径就是逐条执行SKILL程序,然后查看skill解释器本身给出的出错信息进行判断,虽然效率不高,但是如果方法得当,还是可以迅速定位绝大部分的程序错误。
作者: XYX365 时间: 2013-7-2 09:07
一、SKILL语言简介
SKILL语言是CADENCE公司为其软件提供的二次开发语言,通过编写SKILL程序,可以查询和操作ALLEGRO中的各种对象,例如走线、元件、过孔等。在ALLEGRO中的一些默认的功能就是使用SKILL语言写出来的程序;该语言的语法类似于C和C++,有这两种语言编程经验的人可以比较快的上手。
二、SKILL程序加载及执行
1)要使用SKILL程序,首先要了解SKILL程序的加载机制,在CADENCE的安装路径中有两个路径与加载SKILL程序有关,也即SKILL的默认加载路径,它们是:$allegro_dir\share\local\pcb\skill 和 $allegro_dir\share\pcb\etc\skill ,其中,$allegro_dir表示ALLEGRO的安装目录。在ALLEGRO程序启动的时候,会到这两个目录中去寻找初始化文件。
2)初始化文件:该文件的名为 Allegro.ilinit ,这个文件在SKILL程序的加载中具有至关重要的作用,其内容本身就是可以是SKILL程序,通常这个文件被用来加载其他的SKILL程序,语法如下:
load("xxx.il")
或者,对于源代码加密过的SKILL程序:
load("xxx.il" "pwd")
其中,"pwd" 表示加密时使用的密码,由程序的加密者提供。
"xxx.il" 表示需要加载的SKILL程序的文件名,如上所述,SKILL程序的默认加载路径有两个,只需要将需要加载的SKILL程序放在这两个目录中,并在Allegro.ilinit中添加相应的LOAD语句,则ALLEGRO在启动的时候就将自动加载这些SKILL程序。
3)执行程序:SKILL程序的执行可以有下列三种方式:
a)在skill程序中使用 axlCmdRegister 函数,将SKILL程序中的主函数注册成一个命令,然后在命令行中输入这个命令,回车就可以执行这个函数。例如在附录示例的程序中,主函数名称是“grids” 则在程序中使用:
axlCmdRegister( "grids_cmd" `grids)
注册一个名为 grids_cmd的命令,然后在ALLEGRO的命令行中输入grids_cmd并回车即可执行该程序。
b) 如果在SKILL程序中没有使用注册命令的函数,则如果需要在allegro平台下执行某一个函数,需要使用以下的格式: skill function_name
c) 通过菜单执行:在使用SKILL程序的过程中,为了不需要记忆命令,可以通过将命令添加进菜单的方式来执行程序,菜单文件的路径在 $allegro_dir\share\pcb\text\cuimenus目录中,文件名为allegro.men ,用文本编辑器打开这个文件,其基本格式很简单:
MENUITEM "command_display", "command_name"
"command_display" 表示菜单显示的文字,如下图所示:
"command_name" 表示点击此菜单的时候所执行的命令。
三、SKILL程序开发
Skill程序同C语言程序一样,是一种面向对象编程语言,其基本单位是函数,整个skill程序构筑在函数的基础之上。
<一>、参考书籍(按重要性排序)
1、《SKILL Language User Guide》: SKILL的基本概念,特点,写法等;
《SKILL Language Reference》: SKILL Language User Guide的手册文件,具体列出了每一个函数的使用方法。
2、《Allegro PCB and Package User Guide:Skill Reference》AXL-SKILL函数手册 AXL=(Allegro eXtension Language);AXL-SKILL是 CADENCE SKILL 核心 在ALLEGRO中的一个扩充。用来访问与操作 PCB_Editor 及其数据文件;
3、《SKILL Development Help》:SKILL程序开发教程;
《SKILL Development Functions Reference》:作为SKILL程序开发教程的手册文件,具体列出了开发调试函数的使用方法;
4、《Interprocess Communication SKILL Functions Reference》:IPC函数手册;
5、《SKILL++ Object System Functions Reference》:SKILL++函数手册。
<二>、源程序编辑、调试环境
skill程序源代码编辑可以采用任何文本编辑器,但是为了提高编码的效率和查看程序的方便,推荐采用带语法高亮的文本编辑器,比如ULTRAEDIT或者NOTEPAD++,使用这两种编辑器的时候需要手动将SKILL语言的关键字输入进配置文件,否则该编辑器的语法高亮功能将不能使用,具体操作方法见编辑器本身的帮助文档。
由于skill语言是一种解释执行的语言,也即脚本语言,在执行程序的时候不需要编译成二进制代码,而是通过CADENCE提供的skill解析器来进行即使解析执行,因此,不同于C语言,SKILL语言的开发过程中没有编译环境,启动SKILL命令解释器的方法是在命令行输入skill并回车即可,在这种状态下,即可输入SKILL命令(函数)进行skill程序的调试和执行。
调试的过程因为skill的调试环境需要单独的LISENCE支持,而我们现有的授权文件均不具备这个条目,因而给SKILL程序的调试带来比较大的麻烦,目前唯一的调试途径就是逐条执行SKILL程序,然后查看skill解释器本身给出的出错信息进行判断,虽然效率不高,但是如果方法得当,还是可以迅速定位绝大部分的程序错误。
作者: Johnny 时间: 2013-7-3 22:51
有相应的书籍没
作者: vivienluo 时间: 2013-7-4 21:35
市面上目前还没有出这样的书籍。
建议多看看文档。
入门了就好了。大家都是这么过来的。
刚开始可以试着编写小功能。
作者: funnycheng 时间: 2013-7-16 18:25
vivienluo 发表于 2013-7-4 21:35 
市面上目前还没有出这样的书籍。
建议多看看文档。
入门了就好了。大家都是这么过来的。
深入学习!深入学习!
作者: 冷青瓷 时间: 2013-7-18 15:48
Allegro PCB and Package User Guide:Skill Reference在哪里找到呢?
作者: XYX365 时间: 2013-7-19 08:04
冷青瓷 发表于 2013-7-18 15:48 
Allegro PCB and Package User Guide:Skill Reference在哪里找到呢?
在這個路徑下 X:\Cadence\SPB_16.5\doc\algroskill\algroskill.pdf,
其中16.5要看你安裝的版本
作者: 冷青瓷 时间: 2013-7-19 08:52
嗯,找到了
作者: amy4616 时间: 2014-9-11 11:32
学习!学习!
作者: owencai 时间: 2014-9-18 22:40
2楼讲的很对,他和版主都很厉害,你有基础学起来应该很快,加油
作者: steven 时间: 2014-10-7 11:07
{:soso_e179:}
作者: wintonlee 时间: 2016-5-10 11:47
受教了,对初学者帮助很大
作者: YSU 时间: 2017-11-28 20:37
好东西啊!我顶,我再顶!!!!
欢迎光临 Cadence Skill 论坛 (http://www.allegro-skill.com/) |
Powered by Discuz! X3.4 |