allegro skill选择和获取函数

合集下载

Cadence应用如何在allegro中使用skill

Cadence应用如何在allegro中使用skill

Cadence应⽤如何在allegro中使⽤skillCadence软件应⽤:如何在Allegro中执⾏SkillHow to Perform Skills in Allegro ToolsDoc Scope : Allegro SkillDoc Number : SFTEC11005Author : Daniel ZhongCreate Date : 2011-11-09Rev : 1.00⽬录1Skill简介 (3)2在Allegro命令⾏中加载和调⽤Skill (3)2.1命令⾏加载Skill (3)2.2命令⾏调⽤Skill (4)3在Allegro启动时加载Skill (5)3.1allegro.ilinit⽂件 (5)3.2编辑allegro.ilinit (7)4在Allegro菜单栏上调⽤Skill (8)4.1Allegro系列⼯具的菜单⽂件(.men) (8)4.2菜单⽂件搜索路径 (10)4.3定制菜单 (11)1Skill简介Skill是Allegro软件⼆次开发的接⼝,⽤此语⾔编译的⽂件可以在Allegro中载⼊和调⽤。

我们可以通过编写不同的Skill程序⽂件,在Allegro⼯具中实现各种原有命令不能实现或不⽅便实现的功能。

Skill语⾔的语法结构和C++语⾔类似,⼯程师如果有⼀定C语⾔编程基础,使⽤Skill语⾔时就会很⽅便了。

对于Skill程序的⽤户,不需要对Skill语⾔有过多的了解,只需要知道如何在Allegro中加载和调⽤Skill即可,本⽂就是介绍了如何加载和调⽤Skill,可以采⽤两种⽅式:■在Allegro命令⾏中加载和调⽤■在Allegro启动⾃动加载,在Allegro菜单上调⽤2在Allegro命令⾏中加载和调⽤Skill本章介绍如何在Allegro命令⾏中加载和调⽤Skill,分为以下两个⼩节:■命令⾏加载Skill■命令⾏调⽤Skill2.1命令⾏加载Skill以本站资源下载中的⼀个skill程序clinecut.il为例,将此⽂件移动或复制allegro设计⽂件(.brd)所在⽬录。

AllegroSkillbasic

AllegroSkillbasic
行窗口。或者执行setup->User Preferences?->Skill
勾选telskill也可以打开。
2.打开运行窗口后用load函数将写好的skill加载进来。
比如
load(“E:/GetSymbolName.il”)更好的做法是将此路径写入pcbenv文件夹下的allegro.ilinit文件里。这样每次打开Cadence时会自
且可以开发自己的基于Cadence平台的工具。2.SKILL语言支持一套类似C语言的语法大降低了初学者学习的难度同时高水平的编程者可以选择使用类似Lisp语言的全部功能。所以SKILL语言 既可以用作最简单的工具语言也可以作为开发
任何应用的、强大的编程语言。SKILL可以与底层系统交互也提
expressions ; bCondition为假(nil)的时候执行unless里面的命令
)3. Ifif( bCondition then
exp1 ;bCondition 为真的时候执行
else
if( bCondition then exp1 ;bCondition为真的时候执行elseexp2 ;bCondition 为假的时候执行)4.While
3.axlGetSelSet()获取所选择object的dbids。Thank you!
Allegro Skill Basic1.基本数据类型及操作2.基本语法结构3.执行4.实例Skill 1.Cadence的SKILL语言是一种基于通用人工智能语言—Lisp的交互式高级编程语言(LISP即List Processing表处理)熟悉Skill语言对于使用Cadence工具的用户来说不仅可以提高工作效率而
Sym_dbid=axlGetSelSet()

在Allegro环境下运行SKILL

在Allegro环境下运行SKILL

在Allegro环境下运行SKILL
1、如何在PCB Editor 环境下启动SKILL 命令行解释器界面?
 直接输入set telskill,然后你就会看到一个新的界面,这个界面就是用来运行SKILL 函数和命令的解释器。

 当然,如果你不觉得界面太小,可以直接在命令行中输入skill ,然后运行SKILL 函数和命令,也可以正常执行,退出可以直接输入exit。

 2、如何执行写在文件中的SKILL 函数和命令?
 首先,我们按照上面的方法运行SKILL 命令行解释器,然后输入getSkillPath(),回车后,可以看到返回一个路径的列表,如果我们的SKILL 文件放在这些路径下,就可以直接使用load()函数加载使用,如果你的SKILL文件没有在其中的一个路径下,就需要带上绝对路径,这个地方大家需要注意‘/’和‘’的区别,我不想做什幺理论描述,看看下面的例子:
 假如你有一个文件放在C:下,名字为test.il,一般SKILL 文件都以.il 为后缀
 使用Ultra-Editor 打开文件,输入如下内容:
 procedure( tr_Example_1()
 prog( ()
;打印一串字符
printf(“Let’s go today. “)
;弹出一个对话框
axlUIConfirm(“Hello, SKILL... “)
return(t)。

AllegroSkill加载–Layouto

AllegroSkill加载–Layouto

AllegroSkill加载–LayoutoTiny_Y如何加载skill按照Allegro的启动逻辑,软件启动时会自动加载allegro.ilinit文件,所以常规通过此文件加载skill文件(当然你也可以直接在打开的Allegro软件中直接加载,仅对此次加载生效)1.获取Skill文件,放到指定目录(见下方skill文件内容)2.打开allegro.ilinit文件,加载上方的skill文件(见allegro.ilinit文件内容)3.这样每次启动Allegro软件时,skill文件都会被加载如何调用skill功能CIW直接在Skill环境下,调用函数,如getSkillPath()是一个定义好的skill功能,在Command窗口直接输入skill getSkillPath()则可以直接执行这个程序。

skill环境内容参考后面的资料PCB Editor搭载SKILL 环境Bindkeys见后续章节axlCmdRegisteraxlCmdRegister( “20” 'BOTTOM)一般设计者会将skill程序,使用axlCmdRegister注册一个快捷命令,一同写在il文件中(但其实写在任何skill环境的文件中并被加载,都能生效),这样通过定义的快捷命令即可调用此skill功能更多见Cadence SKILL 第二节语言一览,SKILL函数调用章节内容Allegro PCB启动1.读取allegro PCB 编辑器的env 文件2.然后运行allegro.ilinit 文件3.最后自动加载菜单配置文件allegro.menallegro.ilinit文件用户在程序启动时加载的skill代码。

顺序在在加载数据库或菜单之前,如果需要在数据库打开时执行操作,请通过axlTriggerSet API 注册回调触发器Allegro默认识别两个路径X:\Cadence\SPB_XX.X\share\pcb\etc;%home%\pcbenv。

allegro skill使用说明详解

allegro skill使用说明详解
5.1.1删除无网络属性的过孔Isolating Vias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.1.2半拉线的处理Dangling Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5.1.3无连接的铜皮处理Unconnected Shapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.1测试点处理Testpoint... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.1.1增加ICT测试点Add ICT Testpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.1.2点亮无测试点网络检查Hilight no Testpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2替代和更新过孔 Replace via和unpdate via . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.3铜皮自动平衡处理Auto Balance Film . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.4数据库检查DB Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.5更新DRC Update Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.6DRC浏览 DRC Walk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6后处理阶段辅助工具POSTEDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.1光绘层设置与层说明设置Artwork Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.2自动增加层叠表处理Add Layer List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.3丝印摆放处理Refdes Place for newbrd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.3.1丝印方向规则旋转处理Rotate Refdes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.3.2丝印自动定位处理Locate All Refdes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 6.4丝印检查Refdes Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.4.1无丝印检查No Refdes Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.4.2丝印方向检查Refdes Direction Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.4.3丝印交错检查Refdes Cross Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 6.4.4丝印覆盖检查Text Overlap Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.5环回/直角走线检查Loop/90 Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

allegro加载skill函数到菜单

allegro加载skill函数到菜单

學習了一段時間allegro,你是不是也對SKILL函數有了一定的認識,也收集了不少skill 函數吧,但是不是又對函數的應用感到麻煩和被動。

現在就說一下怎樣把函數載入到應用功能表,利用滑鼠點擊輕鬆執行。

因為好多人不知道怎麼使用,我也是摸索出來的,供大家參考,獨樂樂,與人樂樂,孰樂?!1、設定環境變數:首先建立SKILL和SUTENV(這個檔案名可以隨意起,)兩個資料夾,位置可以隨意放置,不過我是放在了candence 資料夾下,這樣感覺比較整齊。

然後添加環境變數系統變數和使用者HOME 變數,如下圖。

系統變數HOME變數2、設定allegro.ilinit 文件:在SUTENV 檔下建一個PCBENV 資料夾,接著在PCBENV 下面建一個名為allegro尾碼為ilinit的文檔,可以用寫字板或者像UE 程式編譯之類的軟體,設置語法如下setSkillPath(buildString(append1(getSkillPath() "D:/Cadence/SPB_15.7/skill")));load("xxx.il");load("xxx.il");………“D:/Cadence/SPB_15.7/skill”就是設定好的SKILL 資料夾的位置,注意“/”而不是“”,“xxx.il”代表著所要載入的函數。

現在可以把所需的skill函數全部放在SKILL資料夾裡吧。

3、修改allegro中的功能表:可以選擇把設定的功能表放在HELP之前,名子自己定,內容自己添加。

設置的代碼如下:POPUP "&Sutee"BEGINMENUITEM "&Align Symbol", "align_sym"MENUITEM "&DRC Walker", "drc walk"MENUITEM "&Hilight Net without TP", "hl_ntp"MENUITEM "&Netlist Editor", "net_editor"MENUITEM "&Unit mil/mm", "cale"……………END"&Sutee"主功能表名字,"&Align Symbol"下拉式功能表內顯示的名字,"align_sym"載入的skill 函數的檔案名。

Allegro Skill详细安装及常用插件介绍指南

Allegro Skill详细安装及常用插件介绍指南

报告大纲1.安装技巧2.功能简介3.实例演示4.讨论反馈一、Stella的安裝1.新建Stella资料夹放*.il程式文件,如路径为C:\。

2.将Stella程序数据夹中的Menu中的内容copy到Allegro的安装目录中,如D:\Cadence\SPB_15.5.1\share\pcb\text\cuimenus中。

3.将Stella程序数据夹中env文件夹中Allegro .ilinit copy 至“Allegro工作路径”\pcbenv内。

4.新增环境变量Stella_skill 值为C:\Stella。

Stella的安裝(这里只介绍一种方法,都大同小异)1、新建Stella资料夹于C:\。

Stella文件夹主要用于放*.IL文件。

此文件夹名称和存放路径都可选。

Stella的安裝2、将Stella程序数据夹中的Menu中的内容copy到Allegro的安装目录中如D:\Cadence\SPB_15.5.1\share\pcb\text\c uimenus中。

实际上就是修改D:\Cadence\SPB_15.5.1\share\pcb\text\cuimenus文件夹中的allegro.men文件,增加菜单功能,增加一栏命令。

Stella的安裝POPUP "&Stella"BEGINMENUITEM "Align Symbol", "align_sym"MENUITEM "DRC Walker...", "drc walk"MENUITEM "Place Xrf", "skill xrfin"MENUITEM "Find Stubs", "find_stubs"MENUITEM "Find Dang Line/Cline", "find_dang"MENUITEM "Hilight Net without TP", "hl_ntp"MENUITEM "Hilight Via without Net", "hlvia"MENUITEM "Netlist Editor", "net_editor"MENUITEM "Mil To Mm", "conv"MENUITEM "Cal", "cal"MENUITEM "Clinecut", "clinecut"END此下面还可继续添加其它命令Stella的安裝三、将Stella程序数据夹中env文件夹中Allegro .ilinit copy 至C:\pcbenv内。

Allegro_Skill_axl函数简介

Allegro_Skill_axl函数简介

Allegro Skill axl函数简介1.allegro skill简介1.1. AXL-SKILL专用于allegro的skill被称为AXL-SKILL,只有使用这些专用的函数才可以直接访问allegro 的database。

结合skill语法和这些专用函数可以编写出实现各种功能的命令。

专用于allegro 的skill都是以axl开头,比如axlClearSelSet()。

1.2. 运行AXL-SKILL在allegro中输入skill就得到了AXL-SKILL的运行环境,在这样的环境中可以直接调用AXL-SKILL命令/函数,另外输入set telskill可以得到一个尺寸大小可调的skill开发窗口。

(万一没有弹出窗口,尝试在allegro菜单里面,选择setup->userprference->skill->telskill----OK)1.3. AXL-SKILL Databaseallegro中的每个对象object(比如IC元件,net)都有一个对应的dbid(database identifiers),AXL-SKILL操作allegro的也正是这些dbid。

dbid对象:在不同的级别上的dbid是不一样的,比如在Design以及包含的database对象有Property Dictionary,Lines,Text,Polygons,Shapes,Property Definitions,DRCs,Vias that are Padstack object types,Symbols that are Symdef object types,Components,Nets;而在Symbol级别上则是PPins that are Padstack object types,Vias that are Padstack object types,Lines,Arcs,Text,Polygons,Shapes。

allegro加载skill函数到菜

allegro加载skill函数到菜

allegro 加载skill 函数到菜
学习了一段时间allegro,你是不是也对SKILL 函数有了一定的认识,也收集了不少skill 函数吧,但是不是又对函数的应用感到麻烦和被动。

现在就说一下怎样把函数加载到应用菜单,利用鼠标点击轻松执行。

因为好多人不
知道怎幺使用,我也是摸索出来的,供大家参考,独乐乐,与人乐乐,孰乐?!
1、设定环境变量:
首先建立SKILL 和SUTENV(这个文件名可以随意起,)两个文件夹,位置可以随意放置,不过我是放在了candence 文件夹下,这样感觉比较整齐。

然后添加环境变量系统变量和用户HOME 变量,如下图。

系统变量
HOME 变量
2、设定allegro.ilinit 文件:
在SUTENV 文件下建一个PCBENV 文件夹,接着在PCBENV 下面建一个名为allegro 后缀为ilinit 的文档,可以用写字板或者像UE 程序编译之类的软件,设置语法如下
setSkillPath(buildString(append1(getSkillPath()
“D:/Cadence/SPB_15.7/skill”)));
load(“xxx.il”);
load(“xxx.il”);。

Allegroskill基本语法

Allegroskill基本语法
1.先执行一次cdr,读取后面的List单元。
2.对第1步读取的值,执行car,读取其第一元素。
3.对第2步读取的值,执行car,读取其第一元素。
实例:caaar('(((1 2 3)(4 5 6))(7 8 9))) => 1等同于car( car( car( l_list)))
caadr('(((1 2 3)(4 5 6))(7 8 9))) => 7等同于car( car( cdr( l_list)))
let( ()
println("Hello World!")
)
); end procedure
1.1.4
SKILL支持2种注释方式:
a. /*…*/用于注释多行,像C一样
b. ;用于注释单行,类似C的//
1.1.5
integer5
float5.0
string"abc defg"
list'(1 2 3 "a")
1.1 SKILL
SKILL是用于Cadence软件二次开发的语言。我们关于SKILL的介绍基于SKILL语言参考档和llegro SKILL的应用。
1.1.1
SKILL语法支持lisp格式的语法,但是我们不推荐,推荐类C的语法格式。
Lisp示例:(max 5 3) => 5
C示例:max(5 3) => 5
第一个位置保存List的首个数据元素,第二个位置保存后面的List单元(除第一个元素之外的所有元素组成的表),它可以为空数据。
用car函数可以得到保存在第一个位置的List元素:car( aList) => 2
用cdr函数可以得到保存在第二个位置的List单元:cdr( aList) => (3 4) List

allegro-skill选择和获取函数

allegro-skill选择和获取函数

allegro skill选择和获取函数对Allegro中的对象进行操作,比如移动、删除,都需要先选择和获取该对象的dbid。

选择操作包含一些选择设置比如是只选择Symbol还是Symbol和Via都可以选等等,然后通过axlSelect相关函数来选择具体的对象,然后是axlGetSelSet函数来得到那些被选择的dbid。

AXL-Skill函数支持多种选择的方式,比如单选择一个对象,或者是框选多个对象,又或者说是使用Temp Group的方式来选择多个对象,不过通常对象只有在当前可见(Visible)的情况下才可以被选择上(除非设置了invisible选项)。

选择设置和被选择了对象的有效性会一直持续到用户使用其它的系统命令,比如allegro的Add Cline命令,因为allegro的命令将会改变一些系统的dbid,所以的Skill之前获取的bdid都会变成无效的(removed)。

通常的选择和获取操作如下,设置Find Filter来控制将要被选则的对象类型;选择对象的三种模式:单选,多选或通过名字来选择;从被选择的对象中添加和移除对象3.1 Find Filter设置函数函数定义axlSetFindFilter(?enabled lt_enabled ?onButtons lt_filterOn)功能:该函数最直观的理解是,它可以设置allegro的Find Filter。

参数:lt_enabled,该参数将决定哪些Find Filter中的元素可以被选择;lt_filterOn,该参数将决定可以被选择的元素中,哪些已经被选中了。

参数支持的类型如下:"PINS","VIAS","CLINES","CLINESEGS","LINES","LINESEGS","DRCS","TEXT","SHAPES","SHAPESEGS","BOUNDARY_SHAPES","VOIDS" ,"VOIDSEGS","SYMBOLS","FIGURES","COMPONENTS","FUNCTIONS","NETS","INVISIBLE","NAMEFORM","ALLTYPES","ALL","DYNTHEMALS","GROUPS","GROUPMEMBERS"用法示例:axlSetFindFilter( ?enabled list( "vias" "pins" "nets") ?onButtons list( "vias" "pins")) => 设置Find Filter中的vias,pins,nets为可以被选择的,而其它的选项将被设置成不可操作的,默认选择了vias和pins。

allegro二次开发语法大全

allegro二次开发语法大全

allegro skill简介1. AXL-SKILL专用于allegro的skill被称为AXL-SKILL,只有使用这些专用的函数才可以直接访问allegro的database。

结合skill语法和这些专用函数可以编写出实现各种功能的命令。

专用于allegro的skill都是以axl开头,比如axlClearSelSet()。

2. 运行AXL-SKILL在allegro中输入skill就得到了AXL-SKILL的运行环境,在这样的环境中可以直接调用AXL-SKILL命令/函数,另外输入set telskill可以得到一个尺寸大小可调的skill开发窗口。

(万一没有弹出窗口,尝试在allegro菜单里面,选择setup->user prference->skill->telskill----OK)3. AXL-SKILL Databaseallegro中的每个对象object(比如IC元件,net)都有一个对应的dbid(database identifiers),AXL-SKILL操作allegro的也正是这些dbid。

dbid对象:在不同的级别上的dbid是不一样的,比如在Design以及包含的database对象有Property Dictionary,Lines,Text,Polygons,Shapes,Property Definitions,DRCs,Vias that are Padstack object types,Symbols that are Symdef object types,Components,Nets;而在Symbol级别上则是PPins that are Padstack object types,Vias that are Padstack object types,Lines,Arcs,Text,Polygons,Shapes。

allegro skill database对象类型1. database对象描述1.1 对象类型 Figure objects: Arcs,Branches ,Design Files,Drcs,Lines,Paths ,Polygons ,Ppins,Shapes ,Symbols ,Tees,Vias,Pads,Padstacks,Symdefs; Logical objects:Components ,Functions,Function Pins,Nets; Property dictionary objects; Parameter objects:Design,Display,Layer Group,Layer,Textblock Group,Textblock。

Allegro skill基本语法

Allegro skill基本语法

1.1 SKILL 语言简介SKILL 是用于Cadence 软件二次开发的语言。

我们关于SKILL 的介绍基于SKILL 语言参考档和Allegro SKILL的应用。

1.1.1 语法格式SKILL语法支持lisp 格式的语法,但是我们不推荐,推荐类C 的语法格式。

Lisp示例:(max 5 3) => 5C 示例:max(5 3) => 5Max是求最大值的函数,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 procedure1.1.4 注释SKILL支持2种注释方式:a. /* … */ 用于注释多行,像C一样b. ; 用于注释单行,类似C 的//1.1.5 基本的数据类型integer 5float 5.0string "abc defg"list '(1 2 3 "a")boolen t/nil1.1.6 变量SKILL的变量定义比较随便,不需要指定其类型,赋什么类型的值就是什么类型。

Allegro软件操作技巧

Allegro软件操作技巧

8
Allegro 软件操作技巧-lingling1350@
3) 开启 stroke 右键功能,并可在 toolsutilitiesstroke editor 中编 辑右键功能快捷键。
4) 非活动层阴影显示,设置好后在
切换。
17、script 录像机:filescript
9
Allegro 软件操作技巧-lingling1350@
在 Name 框里输入想要保存的文件名称,点击 Record 即可录制,然后去做想 做的动作,结束时再次执行 FileScript…点击 Stop 就 OK 了。 用这种方法可以把一些通用的操作录制保存下来,在新板中调出并回放,相 应的操作就自动搞定了。对于常用的操作,还可以把录制好的文件放的ENV目 录中,设置快捷键调用。 另外,还可以打开录制的脚本文件查看操作过程,可用于查看某个操作的名 字。 18、添加新的层面 SetupSubclasses,即出现以下左边对话框,选择想要建立的层 class 出现 以下右边对话框输入新建层名,回车,在显示框就可以看到所加的层了。 如果想删除某个层面,点击该层左边的 即可。注意只能删除用户自己 添加的层面。
5
Allegro 软件操作技巧-lingling1350@
2) (如上右图,其它操作同前) 3)上两步得到的网络列表分别拷到《U_管脚调整》表中。
再做成 lis 文件。
14、让两孔间的线等间距:ROUTE---RESIZE/RESPACE---SPREAD BETWEEN VOIDS。 对于两孔间有多跟线的情况同样适用。当然假如所有的线都用这种方法等间 距的话必然很费时, 修线时可以把格点改大、采用偶数小格点的方法就很容易让 两根线等间距了。 15、添加测试点 分为自动添加和手动添加两种,关键在于参数设置。 1) 自动添加

Allegro Skill axl函数简介

Allegro Skill axl函数简介

Allegro Skill axl函数简介allegro skill简介1. AXL-SKILL专用于allegro的skill被称为AXL-SKILL,只有使用这些专用的函数才可以直接访问allegro 的database。

结合skill语法和这些专用函数可以编写出实现各种功能的命令。

专用于allegro 的skill都是以axl开头,比如axlClearSelSet()。

2. 运行AXL-SKILL在allegro中输入skill就得到了AXL-SKILL的运行环境,在这样的环境中可以直接调用AXL-SKILL命令/函数,另外输入set telskill可以得到一个尺寸大小可调的skill开发窗口。

(万一没有弹出窗口,尝试在allegro菜单里面,选择setup->userprference->skill->telskill----OK)3. AXL-SKILL Databaseallegro中的每个对象object(比如IC元件,net)都有一个对应的dbid(database identifiers),AXL-SKILL操作allegro的也正是这些dbid。

dbid对象:在不同的级别上的dbid是不一样的,比如在Design以及包含的database对象有Property Dictionary,Lines,Text,Polygons,Shapes,Property Definitions,DRCs,Vias that are Padstack object types,Symbols that are Symdef object types,Components,Nets;而在Symbol级别上则是PPins that are Padstack object types,Vias that are Padstack object types,Lines,Arcs,Text,Polygons,Shapes。

AllegroSkill 跟着学-先学会用_0204

AllegroSkill 跟着学-先学会用_0204
· Skill 语言和 Lisp 语言的关系
Cadence 提供二次开发的 SKILL 语言,它是一种基于通用人工智能语言——Lisp 的交互式高级 编程语言(LISP 即 List Processing-表处理,是最早和最重要的符号处理编程语言之一,它于 1958 年由美国的 J. McCarthy 提出,LISP 在人工智能 AI 方面获得广泛应用)。
. 语法约定
在 Cadence skill 帮助中出现在语法描述中的字样:
text
说明文字必须准确输入
z_argument 说明文字用于替换相应的参数,前缀(z_)表示数据类弄的参数可以接受。
[]表示可选参数。|分离选项的选择
{}
使用竖线各封闭的选项,你必须选择一项。
...
表示重复前面的描述,
官网:
§1-11 手工修改菜单_allegro.mem................20 §1-12 动态修改菜单......................................22 §1-13 多国语言的实现 .................................25 §1-14 实例演示..............................................27 附 访问官网.邀请加入.................................. 28
.3.
=>
函数返回值,及结果
text
指示手册,菜单命令,表单按钮各表单域的名称
. 函数调用
你可以通过 键盘、窗体、菜单、命令解释器、skill 程序等方式去执行 skill 代码来实现功能。
Bindkeys 一个 Bindkeys 关联键盘事件,发送 Skill 功能 Forms 有些功能需要您填写字段,在弹出的表单中提供数据。 Menus 当您在菜单中选择一个项目时,系统会发送相关的 Skill 功能。 CIW 你可以直接输入 Skill 功能到 CIW,进行立即评估。 Skill process 您可以启动一个单独的 UNIX 的过程 ,可以直接提交 skill 功能的解释。 Skill Interpreter 您可能通过回载 skill 源码文件,对提交的 skill 功能进行集中评估。

Cadence Skill 语法详解(中文)

Cadence Skill 语法详解(中文)

常量、变量常量是它的值等于自身的表达式,如123,”abc”…变量是保存了其它值的表达式,如x=3, x即变量。

算术与逻辑操作符函数名语法对应操作符Data Accessarrayref a[index] [ ] setarray a[index] = exprbitfield1 x<bit> <> setqbitfield1 x<bit>=exprsetqbitfield x<msb:lsb>=exprquote 'expr 'getqq g.s .getq g->s -> putpropqq g.s=expr, g->s=expr putpropq d~>s, d~>s =expr ~>Unarypreincrement ++s ++ postincrement s++ ++ predecrement --s -- postdecrement s-- -- minus -n -not !expr !bnot ~x ~Binaryexpt n1 ** n2 ** times n1 * n2 * quotient n1 / n2 / plus n1 + n2 + difference n1 - n2 - leftshift x1 << x2 << rightshift x1 >> x2 >> lessp n1<n2 < greaterp n1>n2 > leqp n1<=n2 <= geqp n1>=n2 >= equal g1 == g2 == nequal g1 != g2 != band x1 & x2 & bnand x1 ~& x2 ~& bxor x1 ^ x2 ^ bxnor x1 ~^ x2 ~^ bor x1 | x2 | bnor x1 ~| x2 ~|and x1 && x2 &&or x1 || x2 ||range g1 : g2 :setq s = expr =对于既有函数名又有操作符函数,采用函数名调用和采用操作符调用的效果是一样的。

Cadenceskill语言简介

Cadenceskill语言简介

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) then1else 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_Skill_语法详解(中文)

Cadence_Skill_语法详解(中文)

常量、变量常量是它的值等于自身的表达式,如123,”abc”…变量是保存了其它值的表达式,如x=3, x即变量。

算术与逻辑操作符函数名语法对应操作符 Data Accessarrayref a[index] [ ] setarray a[index] = exprbitfield1 x<bit> <> setqbitfield1 x<bit>=exprsetqbitfield x<msb:lsb>=exprquote 'expr 'getqq g.s .getq g->s -> putpropqq g.s=expr, g->s=exprputpropq d~>s, d~>s =expr ~>Unarypreincrement ++s ++ postincrement s++ ++ predecrement --s -- postdecrement s-- --minus -n -not !expr !bnot ~x ~Binaryexpt n1 ** n2 **times n1 * n2 *quotient n1 / n2 /plus n1 + n2 + difference n1 - n2 -leftshift x1 << x2 << rightshift x1 >> x2 >>lessp n1<n2 <greaterp n1>n2 >leqp n1<=n2 <=geqp n1>=n2 >=equal g1 == g2 ==nequal g1 != g2 !=band x1 & x2 &bnand x1 ~& x2 ~&bxor x1 ^ x2 ^bxnor x1 ~^ x2 ~^bor x1 | x2 |bnor x1 ~| x2 ~|and x1 && x2 &&or x1 || x2 ||range g1 : g2 :setq s = expr =对于既有函数名又有操作符函数,采用函数名调用和采用操作符调用的效果是一样的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

allegro skill选择和获取函数
对Allegro中的对象进行操作,比如移动、删除,都需要先选择和获取该对象的dbid。

选择操作包含一些选择设置比如是只选择Symbol还是Symbol和Via都可以选等等,然后通过axlSelect 相关函数来选择具体的对象,然后是axlGetSelSet函数来得到那些被选择的dbid。

AXL-Skill函数支持多种选择的方式,比如单选择一个对象,或者是框选多个对象,又或者说是使用Temp Group的方式来选择多个对象,不过通常对象只有在当前可见(Visible)的情况下才可
以被选择上(除非设置了invisible选项)。

选择设置和被选择了对象的有效性会一直持续到用户使用其它的系统命令,比如allegro的Add Cline命令,因为allegro的命令将会改变一些系统的dbid,所以的Skill之前获取的bdid都
会变成无效的(removed)。

通常的选择和获取操作如下,
设置Find Filter来控制将要被选则的对象类型;
选择对象的三种模式:单选,多选或通过名字来选择;
从被选择的对象中添加和移除对象
3.1 Find Filter设置函数
函数定义axlSetFindFilter(?enabled lt_enabled ?onButtons lt_filterOn) 功能:该函数最直观的理解是,它可以设置allegro的Find Filter。

参数:lt_enabled,该参数将决定哪些Find Filter中的元素可以被选择;
lt_filterOn,该参数将决定可以被选择的元素中,哪些已经被选中了。

参数支持的类型如下:"PINS","VIAS","CLINES","CLINESEGS","LINES","LINESEGS","DRCS","TEXT","SHAPES","SHAPESEGS","BOUNDARY_SHAPES","VOIDS" ,"VOIDSEGS","SYMBOLS","FIGURES","COMPONENTS","FUNCTIONS","NETS","INVISIBLE",
"NAMEFORM","ALLTYPES","ALL",
"DYNTHEMALS","GROUPS","GROUPMEMBERS"
用法示例:axlSetFindFilter( ?enabled list( "vias" "pins" "nets") ?onButtons list( "vias" "pins")) => 设置Find Filter中的vias,pins,nets为可以被选择的,而其它的选项将被设置成不可操作的,默认选择了vias和pins。

3.2 点选函数
axlSingleSelectPoint() => 运行该命令之后,allegro将提示你点选一个design中
的对象。

axlAddSelectPoint()
axlSubSelectPoint()
3.3 框选函数
axlSingleSelectBox() => 在allegro中框选
axlAddSelectBox()
axlSubSelectBox()
3.4 通用选择函数
axlSelect() => 支持多种选择方式于一身,单选,框选,Temp Group
3.5 其它选择函数
axlAddSelectAll() =>不需要用户交互的选择方式,只根据Find Filter的条件
axlSubSelectAll()
axlSingleSelectName()
axlAddSelectName()
axlSubSelectName()
axlSingleSelectObject()
axlAddSelectObject()
axlSubSelectObject()
3.6 获取和清除函数
axlGetSelSet() => 获取之前的选择函数选择的dbid
axlGetSelSetCount()
axlClearSelSet() => 清除之前选择函数选择的dbid(注:当一个对象被选择了以后,将会被自动的以Temp Highlight的方式高亮,而该函数运行以后将会清除这个对象的选择
状态,同时该对象也不再高亮)
allegro skill选择和获取函数
3.7 示例:选择一个Symbol,并将其移动到另一个相对位置
axlClearSelSet() ; 清除之前可能存在的被选择函数选择的元素,避
免引入不合适的dbid,这是个好习惯
axlSetFindFilter(?enabled '("noall" "symbols" ) ?onButtons '("noall"
"symbols" )); 设置Find Filter的Symbols选项处于选中状态
axlSingleSelectPoint(); 请通过点击选择的方式,选择一个Symbol对象 dSym = axlGetSelSet(); => (dbid),将得到被选择的dbid列表,尽管这个列表只有一
个元素
axlClearSelSet(); 清理掉你自己做过的选择,避免给别的程序带来错误,同样是个好习

dSym = car(dSym); => dbid,的到Symbol的dbid
;dSym->?? ;=> 将得到这个Symbol的相关属性
ix = 100;
iy = 200;
axlTransformObject(dSym, ?move ix:iy); =>将该Symbol右移100mil,上移200mil ; axlTransformObject() 函数的作用是将一个或多个symbol由一个地方移动、翻转、旋
转到另一个新的位置。

; axlTransformObject(
; lo_dbid/o_dbid
; ?move l_deltaPoint
; ?mirror t/nil
; ?angle f_angle
; ?origin l_rotatePoint
; ?allOrNone t/nil )。

相关文档
最新文档