CN105930554A - 一种基于Allegro的飞线自动分层的方法 - Google Patents

一种基于Allegro的飞线自动分层的方法 Download PDF

Info

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
Application number
CN201610222975.8A
Other languages
English (en)
Inventor
卞名
卞一名
翟西斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Group Co Ltd
Original Assignee
Inspur Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Group Co Ltd filed Critical Inspur Group Co Ltd
Priority to CN201610222975.8A priority Critical patent/CN105930554A/zh
Publication of CN105930554A publication Critical patent/CN105930554A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E60/00Enabling 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的飞线自动分层的方法
技术领域
本发明公开一种基于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所述的方法,其特征是以原理图为依据对电路板中的每一根信号线进行检测,判断信号线是否为高速线,若是则继续判断其是否为数据线,否则进行表层连线,若进一步判断其为数据线则设置在同层,否则可不在同层,继续判断同层数据线的飞线是否交叉,若是则换层,否则按照飞线连接。
CN201610222975.8A 2016-04-12 2016-04-12 一种基于Allegro的飞线自动分层的方法 Pending CN105930554A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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设计层面和底片的实现方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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