ALLEGRO 约束规则设置步骤(以DDR 为例)
- 格式:pdf
- 大小:253.34 KB
- 文档页数:10
ALLEGRO约束规则设置步骤ALLEGRO是一种领先的约束规则语言,用于描述和验证系统的行为和约束。
当开发者需要实施软件规范、验证设计是否符合预期、检查和修复编码错误时,ALLEGRO约束规则设置就可以发挥作用。
本文将介绍ALLEGRO约束规则设置的步骤。
步骤一:确定需求和约束在使用ALLEGRO进行约束规则设置之前,首先需要明确系统的需求和约束。
开发者和相关利益相关者需要明确系统的预期行为,包括正确性、安全性、性能等方面的要求,并将其转化为具体的需求和约束。
步骤二:了解ALLEGRO约束规则语法和语义ALLEGRO具有自己的约束规则语法和语义,开发者需要学习并了解这些语法和语义,以便正确地编写和解释约束规则。
ALLEGRO支持丰富的逻辑和数学运算符,包括布尔运算符、比较运算符、逻辑运算符等。
开发者还需要了解ALLEGRO中的常用函数和谓词,以便在编写约束规则时能够充分利用这些工具。
步骤三:编写约束规则在了解ALLEGRO约束规则语法和语义之后,开发者可以开始编写约束规则了。
约束规则可以分为两类:静态约束规则和动态约束规则。
静态约束规则用于验证设计和代码的合法性,例如检查变量的取值范围、函数的输入输出关系等。
动态约束规则用于检查系统的运行时行为,例如检查系统的状态转换是否满足预期、检查事件序列是否符合特定的规范等。
步骤四:验证约束规则在编写完约束规则之后,需要对其进行验证,以确保规则的正确性和有效性。
可以使用ALLEGRO提供的工具和命令对约束规则进行验证,检查是否存在语法错误、语义错误或者其他逻辑错误。
如果发现错误,需要及时进行修复和调试,直到规则能够正确地验证系统的行为和约束。
步骤五:应用约束规则一旦约束规则通过了验证,并且开发者对规则的正确性和有效性有足够的信心,就可以将规则应用到实际的系统开发中。
可以将约束规则集成到开发工具中,实时检查代码的合法性,并及时给出错误和警告。
也可以将约束规则作为一种文档形式,用于规范开发过程中的行为和约束。
allegro 约束规则设置摘要:1.Allegro 约束规则的概念与作用2.Allegro 约束规则的设置方法3.Allegro 约束规则的实际应用4.Allegro 约束规则的优点与局限性正文:【1.Allegro 约束规则的概念与作用】Allegro 是一款专业的PCB 设计软件,其中的约束规则设置是PCB 设计过程中至关重要的一环。
约束规则是指在设计过程中,对元件、走线等进行布局和布线的限制条件,以确保设计满足电路功能和性能要求。
通过设置约束规则,可以有效地提高设计效率和准确性,降低设计风险。
【2.Allegro 约束规则的设置方法】在Allegro 中设置约束规则,可以分为以下几个步骤:(1)打开Allegro 软件,导入或创建PCB 设计文件。
(2)在设计界面中,选择需要设置约束规则的元件或走线,可以在原理图或布局视图中进行操作。
(3)点击鼠标右键,选择“约束规则”选项,打开约束规则对话框。
(4)在约束规则对话框中,根据需要设置的约束条件,分别设置“宽度”、“间距”、“角度”等参数。
同时,可以设置约束规则的优先级,以满足不同设计需求。
(5)点击“确定”按钮,完成约束规则设置。
【3.Allegro 约束规则的实际应用】Allegro 的约束规则在实际应用中具有广泛的作用,主要包括:(1)设置元件布局位置:通过设置约束规则,可以控制元件在布局中的位置,确保布局的合理性和美观性。
(2)设置走线宽度和间距:通过设置约束规则,可以保证走线的宽度和间距满足设计要求,降低电路故障的风险。
(3)设置元件和走线的角度:通过设置约束规则,可以控制元件和走线的摆放角度,以满足散热、信号传输等性能要求。
【4.Allegro 约束规则的优点与局限性】Allegro 的约束规则具有以下优点:(1)提高设计效率:通过设置约束规则,可以减少手动调整的时间和精力,提高设计效率。
(2)提高设计准确性:约束规则可以确保设计满足电路功能和性能要求,降低设计失误的风险。
Allegro中设置等长规则的通用方法在当今高速PCB设计中,一组走线的等长越来越重要。
Allegro为 工程师提供了功能强大的Constrain Manager,即约束管理器,工程师可以很方便地进行各种规则的设定,包括等长规则。
在无线时代早前发表的《DDR布线规则与过程》一文中,已经给出了一种设置等长规则的方法,但这种方法具有一定的局限性,一旦某条网络的拓补不符合规律, 将出现异常。
本文以朋友设计的EMMC 小卡为例,给出一种相对通用的等长规则设置方法,希望对读者有帮助。
1. 本例中需要实现PCI-e金手指到EMMC芯片等长,包括D0-D7,CLK,CMD这10条网络。
查看各条网络,确认是否存在串联匹配电阻。
本例中,仅在时钟线上存在,如下图的高亮器件。
2. 为串联匹配电阻分配仿真模型,这样做的目的只有一个:建立Xnet。
因为我们要实现的是金手指到达EMMC芯片的引脚等长,所以必须将串联匹配电阻的两端网络视为同一条。
点击Analyze—>Model Assignment,如下图,3. 在16.6版本中会弹出一个对话框,就是一些设计错误,直接点击Ignore Errors下面的“All”,然后再点击“OK”即可,如下图。
4. 勾选右侧Find窗口中的Symbols,如下图。
5. 点击时钟线上的串联匹配电阻R9,会出现Signal Model Assignment的界面,如下图。
6. 点击“Create Model,如下图。
7. 在弹出的Create Device Model对话框中点击“OK”,如下图。
8. 在弹出的Create ESpice Device Model对话框中点击“OK”,如下图。
9. 此时返回Signal Model Assignment界面,发现R9已具备Model,如下图。
10. 点击Show Element快捷按钮,选中EMMC CLK网络,发现已具备Xnet,如下图。
allegro差分线分组约束规则设置【最新版】目录1.Allegro 软件概述2.差分线分组约束规则的概念3.差分线分组约束规则的设置方法4.差分线分组约束规则的应用实例5.总结正文一、Allegro 软件概述Allegro 是一款专业的 EDA(电子设计自动化)软件,广泛应用于 PCB (印刷电路板)设计领域。
通过 Allegro 软件,设计人员可以轻松实现电路原理图的绘制、PCB 布局布线以及各种设计规则的检查等功能。
在PCB 设计过程中,设计规则的合理设置是保证电路板性能和可靠性的关键。
二、差分线分组约束规则的概念差分线分组约束规则是 Allegro 软件中一种用于控制差分线(Differential Pair)布局布线的设计规则。
差分线是指在高速信号传输过程中,通过两条走线进行数据传输,以降低外部干扰和信号衰减的影响。
在实际应用中,为了保证差分线的传输性能,需要对差分线的布局布线进行分组约束。
三、差分线分组约束规则的设置方法在 Allegro 软件中,设置差分线分组约束规则的方法如下:1.打开 Allegro 软件,载入需要设置差分线分组约束规则的 PCB 设计文件。
2.在顶部菜单栏中,依次点击“规则”(Rules)→“约束规则”(Constraints)→“新建”(New),打开“新建约束规则”对话框。
3.在“新建约束规则”对话框中,设置差分线分组约束规则的名称、描述等信息,然后点击“添加”(Add)按钮。
4.在弹出的“添加约束规则”对话框中,设置差分线分组约束规则的具体参数,包括差分线分组名称、走线宽度、间距等,点击“确定”(OK)按钮。
5.在“新建约束规则”对话框中,点击“确定”(OK)按钮,完成差分线分组约束规则的设置。
四、差分线分组约束规则的应用实例在实际的 PCB 设计过程中,我们可以通过以下实例应用差分线分组约束规则:假设某高速信号传输系统,需要设计两条差分线,分别为 A 和 B。
如何在Allegro中对器件高度设定规则在有的设计中,需要设定PCB板上所贴器件的高度规则。
比如,超过一定高度,会对该产品在今后的装配带来不便或麻烦。
所以,如果我们在项目设计之前就知道类似的一些相关尺寸规定,就可以在设置规则的时候增加一些约束条件。
首先,在制作器件封装的时候,就需要给每个器件定义它的高度:package height。
具体操作是:打开.dra文件,点击Setup—Areas—Package Height,点击器件的Place Bound Top,在Options里面会看到设定器件高度的图示。
在相应的位置填入器件的min、max的值,就可以把这些信息记录在该器件的封装里了。
接下来,在.brd里面设置相关规则。
具体操作是:在需要设定相关规则的区域添加一层Route Keepout层,或者Place Bound Top层。
然后,同样的按照上面的操作,点击Setup—Areas—Package Height,在Options里面按照示意图,设定相关的规则就行了。
需要注意的是:(1)首先应该确保所有器件的.dra文件里面都包含了器件高度的设定,否则默认状态下,在placement的时候每个器件都会产生DRC的。
如果不知道器件的高度,又不希望那些规则作用在这个器件上,那么可以把最大值设置为0,就可以避免出现不希望看到的DRC。
(2)如果是采用在Place Bound Top层设定该规则,那么,DRC会产生在相应的Top或者Bottom层;而如果是采用在Route Keepout层设定该规则,那么,DRC会产生在DRC这一列下方的Place_Top或者Place_Bottom。
(3)在用不同的层设定该规则的时候示意图的尺寸指示是有所区别的,在设定规则的时候需要注意规则的正确性。
(4)这种关于器件高度的规则设定是不能够在Setup--Constraints里面通过添加一个Area再在Area里面设定规则来实现的。
Allegro 16.3约束规则设置约束管理器是一个交叉的平台,以工作簿和工作表的形式在 Cadence PCB设计流程中用于管理所有工具的高速电子约束。
可以使用约束管理器和SigXplorer Expert 开发电路的拓扑并得出电子约束,可以包含定制约束、定制测量和定制激励。
所谓约束就是用户定义的限制条件,当在板上走线和放置元件时会遵守这些约束。
电子约束(ECSets)就是限制PCB 上与电行为有关的对象,比如可以设置某个网络最大传输延迟为2ns。
以下图为一约束设置窗口。
一、说明先解释一下约束的类型以及约束中用到的简写名词,如下图所示:1、NCIs(NET CLASS)由众多nets或者buses、differential pairs、Xnet所组成的类,可对其赋予相似的约束。
如下图所示。
2、NCC(Net Class-Class)一般用在约束组与组之间的间距的时候使用,如下图。
3、DPr(Differential Pairs)差分对一组差分对一般由两条Xnet或者net以差分走线的方式组成,如下图。
差分对的形成有两种方式:一是由模型指定的差分对,再者就是由用户自己定义的差分对。
•模型定义的差分对:可以在器件信号模型中指定差分对,可以使用PCB Design,PCB SI,SigXplores 来将模型指定给相应的元件。
•用户定义的差分对:可以在约束管理器中 Net 一级的对象中创建差分对,可以灵活的更改差分对命名和更改差分对成员,但是没有模型指定差分对的精确性。
以下是设置差分对规则时,需要赋予约束的项。
针对以上约束中用到的一些约束点进行解释说明:差分对的worksheets包含5个主要的约束目录:(1)Pin Delay此值指一对网络之间管脚封装上的延迟,单位是时间ns 或者长度mil。
(2) 不耦合长度(Uncoupled Length)不耦合长度约束是用来限制差分对的一对网络之间的不匹配长度。
A llegro中的约束规则设置Allegrophan刚好五个字修订记录日期版本描述作者2008-12V1.0初版,学完的总结。
适用于Cadence15.5版本。
Allegrophan 2009-09-08V1.1小改,修改部分措辞Allegrophan2009-10-14V1.2小改,更正、修改几个错漏之处。
添加一些说明性文字。
感谢群里的佳猪、梦姑娘等朋友的指正!Allegrophan目录一:Physical(Line/vias)rule物理特性(线宽和过孔)约束设置: (4)1)“Set values”设置约束特征值 (5)2)“Attach property”绑定约束 (6)3)“Assignment table”约束规则分配 (8)二“Spacing rule”间距约束设置 (9)1)“Set values”设置约束特征值 (9)2)“Attach property”绑定约束 (10)3)“Assignment table”约束规则分配 (11)三Constraint areas区域约束设置 (12)四Allegro中走线长度的设置 (13)1)差分线等长设置 (13)2)一组Net等长 (16)3)XNet等长 (17)线宽、线距、区域的约束主要在“Constraints Sys ”中设置,点击“Setup/Constraints ”或点击图标打开“Constraints Sys”窗口,如下:“Constraints Sys ”窗口分两个级别,第一级别有两类:Standard design rules 和Exte Extendednded design rules 。
Standard design rules 仅有一级分类,点击“Set standard values ”设置默认约束值,如下:“Extended design rules”下一级分为三类不同约束设置:Spacing rule间距约束设置、Physical(Line/vias)rule物理特性(线宽和过孔)约束设置和Constraint areas区域约束设置。
Allegro16.3约束设置Allegro16.3约束设置差分对的约束设置第一步,差分对的设置差分对的设置有很多方法,下面介绍两种最常用的方法。
1.点击菜单Logic→Assign Differential Pair... 弹出以下对话框。
点击你想要创建差分对的Net1和Net2,填入差分的名字,点击Add后就成功创建了差分对。
点击Auto Generate按钮后,弹出以下对话框:在第一个输入框填入Net的主要名字后,在下面的框中填入差分线的标志如N,P。
点击Generate即可自动产生差分对。
2.在约束管理器中设置差分对。
在DSN上点击右键,在菜单中选择Create→Differential Pair。
即可弹出下面的对话框。
和上一种方法的设置差不多,这里就不再叙述了。
第二步差分对约束规则的设置差分对各项约束可以在约束管理器中的Electric→Net→routing→Differential Pair中直接在各差分对上填入各项约束数值就可生效,但更好的方法是创建约束规则后赋给各个差分对。
在DSN上点击右键,在菜单中选择Create→Electrical CSet后,弹出下面的对话框;输入规则名后点Ok,在Electric→constraimt set→outing→Differential Pair中可以看到新规则。
在表格中输入各项数值即可完成新规则的设置。
如图所示差分对约束参数主要有以下几个:1coupling paramaters 主要包括了Primary Gap 差分对最优先线间距(边到边间距)。
Primary Width 差分对最优先线宽。
Neck Gap 差分对Neck模式下的线间距(边到边间距),用于差分对走线在布线密集区域时切换到Neck值。
Neck Width差分对Neck模式下的线宽,用于差分对走线在布线密集区域时切换到Neck值。
如图所示设置数值时在表格中右键菜单中选择change,会出现以下各层数值表格,可以在每一层上设置不同的数值。
7.2、过电阻的XNET 等长这里关键是设置XNET。
假设有一排过电阻的线需要等长。
首先创建电阻模型。
单击Signal Model 图标,如下图所示点击电阻,如下图所示,单击RN0603 10所有这种模型的电阻都高亮了,如下图所示单击Create Model。
按钮。
默认,单击OK默认单击OK。
如下图所示。
再单击OK 结束命令。
假设我们要将DR_MD49 到DR_MD53网络等长。
打开约束管理器,选择相对延迟,这里可以看到我们刚才设置的XNET。
我们在DR_MD49 网络上右键创建PIN PAIR选择2 个端点,如上图所示,单击OK。
同理,其他需要设置等长的网络,也创建PIN PAIR。
然后按住Ctrl 键选择这些PIN PAIR,右键创建MATCH GROUP 如下图所示设定约束值,及目标网络,方法同不过电阻网络等长设置。
7.3、T 型等长T 型等长设置,比如两个D DR 之间的等长就属于T 型等长,设置方法如下(以text_drr 举例)。
首先添加T 型连接点。
点击Logic-Net Schedule,单击你要设置网络的一个pin。
如下图。
在中间右键Insert T,加入T 型连接点,如下图所示然后去点击第二个pin,再回到T 型连接点,然后去点击第三个pin,右键done 即可。
创建的T 型连接点如下图所示这只是创建了一个网络的T 型连接点,如果需要创建多个,可点击进入约束管理器设置。
在N et-Routing——Wiring 下面,刚才设置的网络拓扑便会显示成UserDefined。
如下图所示选中那个网络,右键创建Creat-Electrical CSet,如下图然后将你需要设置T 型结构的网络选择刚才设置的ECSet 作为参考,Verify Schedule 选择yes 即打开验证,如下图所示。
然后打开检查模式,在约束管理器Analyze-Analysis Modes弹出的对话框中,将Stub length/Net 的检查模式选择为on 如下如所示。
Allegro16.6约束规则设置详解(图文并茂)此文章由丹心静居整理--- 2014.10.13(为了不侵犯别人的成果,所以在这里做了特殊说明,以示敬意)首先感谢詹书庭编写这篇文章,为我们学习交流Cadence al l egr o软件提供了丰富的知识和方法。
请大家认真学习,不要辜负作者的良苦用心!这篇文章写得很好,操作步骤详细,截图一目了然,通俗易懂,唯一的缺点就是部分截图不是很清晰,我对个别图片做了调整和替换,不易替换的不清晰图片,仔细看下也能明白其中的意思。
俗话说的好,社会在发展,技术在进步,技术的进步在于不断的学习交流和实践。
所以为了方便大家学习交流,为大家提供一个良好的交流平台,在这里留下我们的Q Q群( 原文作者的Q Q群拒绝任何人加入)。
对原文作者表示歉意!学习交流Cadence al l egr o请加Q Q群: 一起来学A l l egRo【2】. 群号:331730476 .以下是正文前言:本文主要讲解Allegro16.6 约束管理器的使用,从基本约束规则到高级约束规则的设置。
目录:一、基本约束规则设置1、线间距设置2、线宽设置3、设置过孔4、区域约束规则设置5、设置阻抗7、设置等长7.1 NET、不过电阻的等长7.2 XNET、过电阻的等长7.3、T型等长8、设置通用属性9、差分规则设置9.1、创建差分对9.2、设置差分约束10 Pin Delay、二、高级约束规则设置11、单个网络长度约束12、a+b 类长度约束13、a+b-c 类长度约束14、a+b-c 在最大和最小传播延迟中的应用第 2 页1、线间距设置(1)、设置默认间距规则点击CM 图标,如下图所示,打开约束管理器。
单击Spacing,再点击All Layers,如下图所示。
右边有一个DEFAULT 就是默认规则,我们可以修改其值。
按住Shift 键,点击第一个和最后一个即可选中所示,然后输入一个值,这样就都修改了,如下图所示(2)、定义特殊的间距约束点选Default 按鼠标右键,执行Create-Spacing CSet加入新规则。
ALLEGRO约束规则设置步骤(以DDR为例)
Dyyxh@pcbtech
tzyhust@
本文是我对约束规则设置方面的一些理解,希望对新手能有所帮助。
由于本人水平有限,错误之处难免,希望大家不吝赐教!
在进行高速布线时,一般都需要进行线长匹配,这时我们就需要设置好constraint规则,并将这些规则分配到各类net group上。
下面以ddr为例,具体说明这些约束设置的具体步骤。
1.布线要求
DDR时钟: 线宽10mil,内部间距5mil,外部间距30mil,要求差分布线,必需精确匹配差分对走线误差,允许在+20mil以内
DDR地址、片选及其他控制线:线宽5mil,内部间距15mil,外部间距20mil,应走成菊花链状拓扑,可比ddrclk线长1000-2500mil,绝对不能短
DDR数据线,ddrdqs,ddrdm线:线宽5mil,内部间距15mil,外部间距20mil,最好在同一层布线。
数据线与时钟线的线长差控制在50mil内。
2.根据上述要求,我们在allegro中设置不同的约束
针对线宽(physical),我们只需要设置3个约束:DDR_CLK, DDR_ADDR, DDR_DATA
设置好了上述约束之后,我们就可以将这些约束添加到net上了。
点击physical rule set 中的attach……,再点击右边控制面板中的more,
弹出对话框
如上图所示,找到ckn0和ckp0,点击apply,则弹出
选中左边列表中的NET_PHYSICAL_TYPE, 在右边空格内输入DDR_CLK, 点击apply,弹出
即这两个net已经添加上了NET_PHYSICAL_TYPE属性,且值为DDR_CLK.
类似的,可以将DDR数据线,数据选通线和数据屏蔽线的NET_PHYSICAL_TYPE设为DDR_DATA, DDR地址线,片选线,和其他控制线的NET_PHYSICAL_TYPE设为DDR_ADDR.
上述步骤完成后,我们就要将已经设好的约束分配到这些net group上。
如下图点击assignment table……
弹出对话框
如下图所示,我们对不同的信号组选择各自的physical约束
有人可能会问,为什么你这还有area0,area1啊?这是因为你的这些约束有的地方不可能达到的,比如在bga封装的cpu内,你引线出来,线间距不可能达到30,20甚至10个mil。
在这些地方,如果你也按照这个约束那么你的pcb中的drc就不可能消的掉。
这时一个解决办法就是把这些地方划为一个room,然后给他加上room属性(即为room 的名字area0,1等等)。
针对这些room内,设定合适的约束(同上)。
针对线间距,由于每个都分为组内间距和组外间距,所以共有6个约束:DDR_CLK_INNER,DDR_CLK_OUTER,…………………………
我们只要对这六个约束设置line to line 和line to shape就可以,分别按上述要求设置就可以了。
剩下的步骤和physical中设置是一样的。
不过这时assignment table变成了下面这样。
下面就是设置线的等长。
这个需要我们到Ecset中设置。
这些高速线一般都需要端接匹配(数据线由于是双向的,两端都有匹配电阻),所以你的整个etch被分成了好几个net,这时候这些net的长度计算就比较麻烦。
一种情况就是你设置XNET,然后对Xnet计算长度,我认为这是最省事也是最好的一种办法,还有就是你不管什么Xnet,分别将各段的长度加起来,算等长。
注:这个时候有个很矛盾的事情,就是你的时钟线如果想定义为差分线来走,即让allegro自己等间距的一次拉差分线,你就不能将之定义为Xnet,我自己用的时候是这样的,我在将时钟线对应的xnet删除后,时钟线就可以成对的拉,而之前尽管设置好了差分属性,系统也是不认的。
不知道大家有没有这个经验。
下面我就讲讲如何设置这些约束,并将这些约束加到对应的xnet上。
点击或setup》electrical constraint spreadsheet,弹出
点击electrical constraint set》routing》total etch length,右边如上图所示出现brd名字,右键点击brd名字,弹出如下右键菜单
如上图点击create ECset,则弹出
输入DDR_ADDR, 点击ok,则brd名字前出现+号,打开之,可以见到设置好的DDR_ADDR.
现在针对DDR_ADDR,就可以设定具体的参数了。
比如,你可以将最小长度设定为1600mils,最大长度设为2500mils。
这个参数的取得其实取决于你的时钟走线拓扑,因为按照走线要求,数据线,地址线等
除非你能保证时钟线走线长度不变。
这里我们假设你的时钟线长为1550mil+10mils,则显然你的地址线不能短于1560mils,我们取为1600mils。
类似我们设置好时钟和数据线的约束。
至此,我们设置好了线长约束规则。
下面的问题就是如何应用这些规则到net上去。
设定好了Xnet以后,我们就可以在约束管理器中给这些Xnet添加约束。
这时,打开net》routing》total etch length,将右边brd名前+打开,下面则是所有的net 名,拖动鼠标选中需要设置约束的那组信号,点击右键,弹出邮件菜单,选中菜单中的ECset Reference ,见下图。
弹出对话框
选中下拉列表中的DDR_ADDR,则对刚才选中的哪些xnet添加上了DDR_ADDR约束。
类似的可以添加DDR_DATA,DDR_CLK约束。
设置Xnet主要就是给相关的电阻加上model就可以了。