CN105930554A - 一种基于Allegro的飞线自动分层的方法 - Google Patents
一种基于Allegro的飞线自动分层的方法 Download PDFInfo
- Publication number
- CN105930554A CN105930554A CN201610222975.8A CN201610222975A CN105930554A CN 105930554 A CN105930554 A CN 105930554A CN 201610222975 A CN201610222975 A CN 201610222975A CN 105930554 A CN105930554 A CN 105930554A
- Authority
- CN
- China
- Prior art keywords
- allegro
- fly line
- line
- automatic zoning
- line automatic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开一种基于Allegro的飞线自动分层的方法,属于计算机应用技术领域;本发明利用Allegro软件提供的扩展Skill接口,对此数据库进行编辑操作,根据电路板信号线的不同及其重要程度来分层,结合实际电路板的要求进行布线走线,避免线路交叉,出现憋线的情况,以这个分层方式为参考进行连线,从而实现一些程序没有提供的功能,提高Layout工作的效率,有效解决因飞线太多造成憋线的问题,方便工程师走线前的规划,节省时间,提高工作效率,减少不必要的重复工作。
Description
技术领域
本发明公开一种基于Allegro的飞线自动分层的方法,属于计算机应用技术领域。
背景技术
随着电子技术的发展,人们对信号完整性要求越来越高,从DDR2到DDR3,再到如今的DDR4,从PCI到PCIE,信号的功能不断加强,随之而来的就是电路板的复杂化,将繁多错综复杂的信号线进行正确连接比以往要增加许多工程师的工作量。对信号线进行分层可以适当简化信号线的复杂程度,但当前的Candence软件只能把飞线显示出来,却不能把他们分层,而人工分层往往容易出错,而且浪费很多时间。Allegro是PCB 设计布线工具。
Allegro 提供了良好且交互的工作接口,和Cadence结合,可以提供复杂 PCB 设计布线方案。软件中的 Constraint Manger 提供了简洁明了的接口方便使用者设定和查看 Constraint 宣告。Allegro工作环境中,自动在摆零件及布线时依照规则处理及检查,Allegro 还具有自动推挤 push 和贴线 hug 走线以及完善的自动修线功能,可以提供多用户同时处理一块复杂板子。
本发明提供一种基于Allegro的飞线自动分层的方法,利用Allegro软件提供的扩展Skill接口,对此数据库进行编辑操作,根据电路板信号线的不同及其重要程度来分层,结合实际电路板的要求进行布线走线,避免线路交叉,出现憋线的情况,以这个分层方式为参考进行连线,从而实现一些程序没有提供的功能,提高Layout工作的效率,有效解决因飞线太多造成憋线的问题,方便工程师走线前的规划,节省时间,提高工作效率,减少不必要的重复工作。
发明内容
本发明针对现有技术的问题,提供一种基于Allegro的飞线自动分层的方法,利用Allegro软件提供的扩展Skill接口,对此数据库进行编辑操作,从而实现一些程序没有提供的功能,提高Layout工作的效率。
本发明提出的具体方案是:
一种基于Allegro的飞线自动分层的方法,通过 Allegro 软件进行 PCB 布线,利用Allegro 软件接口的skill程序并依该skill程序形成飞线自动分层:在Allegro 软件的菜单栏中配置 allegro.men文件的预设路径,在工具栏项中添加相应的形成飞线自动分层的命令项目,在skill文件路径下的allegro.ilinit文件中添加用于形成飞线自动分层的命令代码,将形成飞线自动分层文件放到skill文件路径下,以完成在菜单栏中执行形成飞线自动分层的命令。
依据形成飞线自动分层的命令项目,把原理图和结构图导进Allegro中,设置层面,对飞线分层。
设置层面前,以原理图为依据对电路板中的每一根信号线进行检测,判断信号线类别,查看飞线是否有交叉,对飞线分层。
以原理图为依据对电路板中的每一根信号线进行检测,判断信号线是否为高速线,若是则继续判断其是否为数据线,否则进行表层连线,若进一步判断其为数据线则设置在同层,否则可不在同层,继续判断同层数据线的飞线是否交叉,若是则换层,否则按照飞线连接。
本发明的有益之处是:
本发明提供一种基于Allegro的飞线自动分层的方法,通过 Allegro 软件进行 PCB 布线,利用Allegro 软件接口的skill程序并依该skill程序形成飞线自动分层:在Allegro 软件的菜单栏中配置 allegro.men文件的预设路径,在工具栏项中添加相应的形成飞线自动分层的命令项目,在skill文件路径下的allegro.ilinit文件中添加用于形成飞线自动分层的命令代码,将形成飞线自动分层文件放到skill文件路径下,以完成在菜单栏中执行形成飞线自动分层的命令;
利用本发明方法,利用Allegro软件提供的扩展Skill接口,对此数据库进行编辑操作,根据电路板信号线的不同及其重要程度来分层,结合实际电路板的要求进行布线走线,避免线路交叉,出现憋线的情况,以这个分层方式为参考进行连线,从而实现一些程序没有提供的功能,提高Layout工作的效率,有效解决因飞线太多造成憋线的问题,方便工程师走线前的规划,节省时间,提高工作效率,减少不必要的重复工作。
附图说明
图1本发明方法中判断信号线类别流程示意图。
具体实施方式
一种基于Allegro的飞线自动分层的方法,通过 Allegro 软件进行 PCB 布线,利用Allegro 软件接口的skill程序并依该skill程序形成飞线自动分层:在Allegro 软件的菜单栏中配置 allegro.men文件的预设路径,在工具栏项中添加相应的形成飞线自动分层的命令项目,在skill文件路径下的allegro.ilinit文件中添加用于形成飞线自动分层的命令代码,将形成飞线自动分层文件放到skill文件路径下,以完成在菜单栏中执行形成飞线自动分层的命令。
根据上述方法及发明内容,结合附图对本发明做进一步说明。
本发明提供一种基于Allegro的飞线自动分层的方法,通过 Allegro 软件的Skill程序接口,可以实现软件基本功能之外的一些扩展操作,类似以Allegro软件为平台的第三方应用开发。
通过 Allegro 软件进行 PCB 布线,利用Allegro 软件接口的skill程序并依该skill程序形成飞线自动分层,依据形成飞线自动分层的命令项目,把原理图和结构图导进Allegro中,设置层面,对飞线分层;
在设置层面前,以原理图为依据对电路板中的每一根信号线进行检测,判断信号线类别:判断信号线是否为高速线,若是则继续判断其是否为数据线,否则进行表层连线,若进一步判断其为数据线则设置在同层,否则可不在同层,继续判断同层数据线的飞线是否交叉,若是则换层,否则按照飞线连接。
其中具体实施中,但并不局限于本发明中提供的主要的skill程序:
Create a ALLEGRO Command and registers it.
The rest of
; this SKILL code is a funtion which gets
executed when
; the command 'runscript' is invoked.
; Requires the environment variable
local_scriptpath to
; be set to the path where the scripts are
stored.
axlCmdRegister("runscript"
'pmCreateScriptForm);
**********************************************************/
putd('pmCreateScriptForm nil)
(defun pmCreateScriptForm ()
let( (ScriptForm)
**************************************************************/
putd('pmCreateformDefinitionFile nil)
(defun pmCreateformDefinitionFile ()
let( (formDefinitionFile)
;-------------------------------------------------------
; Create a temporary form definition file
for the replay
; script files selection.
; NOTE we write to CWD else we might write the file
; to another directory in our Skill Path
by mistake !!
;-------------------------------------------------------
formDefinitionFile =
outfile("./replay.form" "w")
;-------------------------------------------------------
;
Create form fields and write to form definition file
; only if file is writable.
;-------------------------------------------------------
when( formDefinitionFile
fprintf(formDefinitionFile "FILE_TYPE=FORM_DEFN VERSION=2\n")
fprintf(formDefinitionFile "FORM\n"
fprintf(formDefinitionFile "HEADER \"Replay Script-Files V
1.0\"\n")
fprintf(formDefinitionFile "TILE\n")
fprintf(formDefinitionFile "TEXT
\"Script (.scr)\"\n")
fprintf(formDefinitionFile "TLOC
2 1\n")
fprintf(formDefinitionFile "ENDTEXT\n")
fprintf(formDefinitionFile
"FLOC 2 3\n")
fprintf(formDefinitionFile "LIST
\"\" 40 5\n")
fprintf(formDefinitionFile
"ENDFIELD\n")
fprintf(formDefinitionFile
"FIELD close\n")
fprintf(formDefinitionFile "FLOC 2 13\n")
fprintf(formDefinitionFile "MENUBUTTON \"Close\" 10
3\n")
fprintf(formDefinitionFile "ENDFIELD\n")
fprintf(formDefinitionFile
"ENDFORM\n")
close(formDefinitionFile)
); when
); let
); defun pmCreateformDefinitionFile
********************************* Main
Program ***********/
;-----------------------------------------------------
; Make sure the CWD is set in the Skill
Search Path to
; enable the Form to work correctly. If
not set, add it
; to
the path
;------------------------------------------------------
if( car(getSkillPath()) != "./"
&& car(getSkillPath()) != "." then
axlUIWPrint(nil "** ERROR - Skill Path
does not include the current working directory %s.%s **"
"(" ")")
axlUIWPrint(nil "** Setting
Skill Path to include %s.%s - Please Correct! **" "("
")")
setSkillPath(cons("." getSkillPath()))
); endif
;-----------------------------------------------------
; Check if old form definition file is
present. If found
; then remove it.
;------------------------------------------------------
if(isFile(strcat(car(getSkillPath())
"/replay.form")) then
deleteFile(strcat(car(getSkillPath())
"/replay.form"))
);endif
;------------------------------------------------------
; Create the ALLEGRO form
definition file
;------------------------------------------------------
unless(
pmCreateformDefinitionFile()
error("Could not create form definition file")
); unless
;------------------------------------------------------
; Display the Replay Script form
;------------------------------------------------------
ScriptForm = axlFormCreate(
(gensym) "replay.form" nil 'pmCreateFormCallback t)
axlFormDisplay(ScriptForm)
;------------------------------------------------------
; Traverse searchpath and find all script files
;-----------------------------------------------------
axlUIWPrint(nil "** Gathering scripts from %L, please wait.
**" pmGetScriptPath() )
pmAddScriptsToForm(pmGetListOfScriptFiles(pmGetScriptPath()
".scr"))
axlUIWPrint(nil " - Done -
" )
;-------------------------------------------------------
; Clean up temp files - remove the reply.form file
;-------------------------------------------------------
if(isFile(strcat(car(getSkillPath()) "/replay.form")) then
deleteFile(strcat(car(getSkillPath())
"/replay.form"))
);endif
); let
); pmCreateScriptForm
本发明利用Allegro软件提供的扩展Skill接口,对此数据库进行编辑操作,根据电路板信号线的不同及其重要程度来分层,结合实际电路板的要求进行布线走线,避免线路交叉,出现憋线的情况,以这个分层方式为参考进行连线,从而实现一些程序没有提供的功能,提高Layout工作的效率。
Claims (4)
1.一种基于Allegro的飞线自动分层的方法,通过 Allegro 软件进行 PCB 布线,其特征是利用Allegro 软件接口的skill程序并依该skill程序形成飞线自动分层:在Allegro 软件的菜单栏中配置 allegro.men文件的预设路径,在工具栏项中添加相应的形成飞线自动分层的命令项目,在skill文件路径下的allegro.ilinit文件中添加用于形成飞线自动分层的命令代码,将形成飞线自动分层文件放到skill文件路径下,以完成在菜单栏中执行形成飞线自动分层的命令。
2.根据权利要求1所述的方法,其特征是依据形成飞线自动分层的命令项目,把原理图和结构图导进Allegro中,设置层面,对飞线分层。
3.根据权利要求2所述的方法,其特征是设置层面前,以原理图为依据对电路板中的每一根信号线进行检测,判断信号线类别,查看飞线是否有交叉,对飞线分层。
4.根据权利要求3所述的方法,其特征是以原理图为依据对电路板中的每一根信号线进行检测,判断信号线是否为高速线,若是则继续判断其是否为数据线,否则进行表层连线,若进一步判断其为数据线则设置在同层,否则可不在同层,继续判断同层数据线的飞线是否交叉,若是则换层,否则按照飞线连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610222975.8A CN105930554A (zh) | 2016-04-12 | 2016-04-12 | 一种基于Allegro的飞线自动分层的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610222975.8A CN105930554A (zh) | 2016-04-12 | 2016-04-12 | 一种基于Allegro的飞线自动分层的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105930554A true CN105930554A (zh) | 2016-09-07 |
Family
ID=56837968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610222975.8A Pending CN105930554A (zh) | 2016-04-12 | 2016-04-12 | 一种基于Allegro的飞线自动分层的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105930554A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229008A (zh) * | 2017-12-29 | 2018-06-29 | 深圳市兴森快捷电路科技股份有限公司 | 一种基于Allegro软件的走线换层和线宽调整方法 |
CN112836465A (zh) * | 2021-03-02 | 2021-05-25 | 马瑞利汽车零部件(芜湖)有限公司 | 一种pcb板上自动生成测点的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1798472A (zh) * | 2004-12-24 | 2006-07-05 | 鸿富锦精密工业(深圳)有限公司 | 引脚连接结构及其脚位定义的修改方法 |
CN101373489A (zh) * | 2007-08-23 | 2009-02-25 | 英业达股份有限公司 | 信号线的布设层面切换*** |
WO2014000688A1 (zh) * | 2012-06-29 | 2014-01-03 | 北京豹驰智能科技有限公司 | 一种多层布线式双界面ic卡天线模块 |
CN103793575A (zh) * | 2014-02-19 | 2014-05-14 | 浪潮(北京)电子信息产业有限公司 | 一种在单板上设置过孔的方法及装置 |
CN104462712A (zh) * | 2014-12-19 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 一种用于pcb布线时可控制删除线段的方法及*** |
CN105447240A (zh) * | 2015-11-17 | 2016-03-30 | 浪潮集团有限公司 | 一种自动建立pcb设计层面和底片的实现方法 |
-
2016
- 2016-04-12 CN CN201610222975.8A patent/CN105930554A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1798472A (zh) * | 2004-12-24 | 2006-07-05 | 鸿富锦精密工业(深圳)有限公司 | 引脚连接结构及其脚位定义的修改方法 |
CN101373489A (zh) * | 2007-08-23 | 2009-02-25 | 英业达股份有限公司 | 信号线的布设层面切换*** |
WO2014000688A1 (zh) * | 2012-06-29 | 2014-01-03 | 北京豹驰智能科技有限公司 | 一种多层布线式双界面ic卡天线模块 |
CN103793575A (zh) * | 2014-02-19 | 2014-05-14 | 浪潮(北京)电子信息产业有限公司 | 一种在单板上设置过孔的方法及装置 |
CN104462712A (zh) * | 2014-12-19 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 一种用于pcb布线时可控制删除线段的方法及*** |
CN105447240A (zh) * | 2015-11-17 | 2016-03-30 | 浪潮集团有限公司 | 一种自动建立pcb设计层面和底片的实现方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108229008A (zh) * | 2017-12-29 | 2018-06-29 | 深圳市兴森快捷电路科技股份有限公司 | 一种基于Allegro软件的走线换层和线宽调整方法 |
CN112836465A (zh) * | 2021-03-02 | 2021-05-25 | 马瑞利汽车零部件(芜湖)有限公司 | 一种pcb板上自动生成测点的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015517731A (ja) | Smt装置の高速プロセスシステム及び方法 | |
US20080155483A1 (en) | Database-aided circuit design system and method therefor | |
CN102338854B (zh) | 电路板测试用例生成***及方法 | |
CN102930098B (zh) | 汽车后背门四连杆铰链安装位置的确定方法和装置 | |
CN105447240A (zh) | 一种自动建立pcb设计层面和底片的实现方法 | |
CN107239617B (zh) | 一种异形版图中基于轨道的紧凑布线方法 | |
US6629307B2 (en) | Method for ensuring correct pin assignments between system board connections using common mapping files | |
CN114861581B (zh) | 基于图像识别的可编程逻辑器件的辅助编程设计方法 | |
CN100456307C (zh) | 设计错误的检查***及方法 | |
CN103593527A (zh) | 一种一键设置pcb板中不同类型布线规则bga的设计方法 | |
CN105700890A (zh) | 一种自动删除PCB设计中悬空孔的Skill程序的实现方法 | |
CN105930554A (zh) | 一种基于Allegro的飞线自动分层的方法 | |
GB2611691A (en) | Semiconductor circuit design and unit pin placement | |
CN105426609A (zh) | 一种自动删除pcb设计中悬空线的方法 | |
JP4136495B2 (ja) | 方向性結合器を含む回路の設計支援装置、その設計支援プログラム、及び回路の設計方法 | |
CN104461660A (zh) | 一种异构***的多模式动态加载方法 | |
CN110532654B (zh) | 一种印刷电路板pcb板上参数确定的方法和装置 | |
US7389486B2 (en) | Arc routing system and method | |
CN105930555A (zh) | 一种自动删除pcb设计中悬空孔的skill程序的实现方法 | |
CN107330173B (zh) | 集成电路后端设计自动化*** | |
CN112131831B (zh) | 多电源域版图布局方法及存储介质 | |
CN101201866A (zh) | 电路布设文件的管理***及方法 | |
JP4589207B2 (ja) | 回路デザイン電気的チェックシステム | |
US7519938B1 (en) | Strategies for generating an implementation of an electronic design | |
US7840929B2 (en) | Method for automatically modifying frame of circuit diagram |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160907 |