搜档网
当前位置:搜档网 › cadence约束管理器的基本介绍

cadence约束管理器的基本介绍

Cadence原理图约束管理器的基本使用

1.1 约束管理器简介

约束管理器是一个交叉的平台,以工作薄(workbook)和工作表(worksheet)的形式通过用户定义约束管理来管理设计中的各个网络和管脚对。例如控制某条网络的阻抗值和布线长度等等。约束管理器具有以下功能:

1)它以数据表格的形式与用户接口,使用户能够快速的获取,修改和删除

用户定义的约束值。

2)它能够所有的定义的约束进行语法检查。

3)它提供约束的继承,在高等级对象中定义的约束能够被低等级对象所集

成。而且低等级对象可以重新定义约束覆盖从高等级对象继承下来的所

有约束。

能够产生原理图和pcb板关于约束捕捉的报告。

2.1 原理图和pcb板间约束捕捉的同步

原理图和pcb的约束同步是指在原理图或pcb中定义或修改的约束在原理图和pcb之间可以相互传递的(原理图到pcb或pcb到原理图)。如下图1所示:

图1 原理图与pcb板约束的同步

3.1 带约束管理的设计流程

带约束管理的设计流程与传统的设计流程相比,其主要包含了约束文件,该约束文件以设计板的名字命名,文件扩展名为.dcf,该文件放在设计板目录下的constraints目录下。例如在E:\KS8695P_DEMO_V100.1目录下创建了KS8695P_DEMO_V100.1工程,设计板的名称为NETCAMERA,那么在E:\KS8695P_DEMO_V100.1\WORKLIB\NETCAMERA\CONSTRAINTS目下会产生netcamera.dcf约束文件。带约束管理的设计流程如下图2所示:

图2 约束使能的设计流程

3.1.1 从原理图导出约束管理到pcb

在使能约束管理器的设计流程中,candence会产生5个必须发送pcb板上的文件:pstchip.dat,pstrxprt.datt,pstxnet.dat,pstcmdb.dat,pstcmbc.dat,其中前3个在传统的设计中也会产生,后2个是在使能约束管理器后产生的文件。其中:

●pstcmdb.dat:包含了在当前设计中关于约束管理的相关信息。在传统的

设计流程中,约束管理的信息存储在pstxnet.dat文件中,当使能约束管理器切换到带约束管理的设计流程时,约束管理的信息才转存到pstcmdb.dat文件中。

●pstcmbc.dat:包含了用在PCB中的约束管理信息。该文件是当从PCB到

约束信息到原理图时产生的。

注:一旦设计流程切换到带约束管理的设计流程时,设计无法返回到传统的设计流程。

从原理图导出约束管理到PCB的步骤如下:

在原理图中选择【File】>【Export Physical】,则出现如下界面:

图3 约束管理原理图导出界面

选中【Package Design】,【Update Allegro Board (Netrev)】和【Electrical constrains】(如果有定义约束管理,系统会自动选中变成灰色不能修改)复选筐,在【Electrical constrains】中如果选择【overwrites current constraints】选项,意思是用原理图的约束覆盖pcb板中约束。如果选择【export changes only】表示仅传递原理图中变更的约束到pcb。

1)点击【OK】导出。

3.1.2 从PCB导出约束管理到原理图

在原理图中选择【file】>【Import Physical】,出现如下界面:

图4约束管理原理图导入界面

选择【generate feedback files】【package design】,在【feedback】一栏中选择allegro pcb edit,在【electrical constraints】一栏中如果选择【import change only】表示设计同步仅仅导入allegro中电子约束改变的部分,如果选择【overwrite current constraints】表示覆盖原理图中的电子约束。

1)点击OK进行导入。

4.1 启动约束管理器

在原理图中选择【Tools】> 【Constraints】 > 【Edit】,然后出现以下图5所示的消息对话筐:

注意:必须选择Allegro Design Entry HDL 610或者Allegro Design Entry HDL SI 610才能够获得约束管理器使用授权。

点击【OK】进入约束管理,如果原理图没有展开,则还会弹出要求展开原理图的消息对话筐,点击【是】进入约束管理器。

4.2 约束管理器的界面

进入约束管理器的界面后,可以看到界面包含了两个工作区,左边是工作簿/工作表选择区,用来选择进行约束的类型;右边是工作表区,是对应左边类型的具体约束设置值。例如点击左边的impedance类型,左边就是与impedance 相关的内容,如下图6所示:

图 5 【constraint manager】对话筐

图6 约束管理器界面

在工作簿/工作表区有两个顶层约束类型,分别为【electrical constraint set】和【net】。在【electrical constraint set】文件夹中可以定义通用的设计约束,可以创建通用的对象分组,然后将这些设计约束集指定给相应的对象;在【net】文件夹中可以创建针对指定网络对象分组,可以定义基于网络相关属性的约束集。

4.3 对象(object)

对象是约束所要设置的目标,是具有优先级的,顶层指定的约束会被底层的对象继承,底层对象指定的同样约束优先级高于从顶层继承下来的约束,一般尽量在顶层指定约束。

最顶层的对象是系统system,最底层的对象是管脚对pin–pair。对象的层次关系依次为:

系统system设计design总线bus差分对diff-pair

扩展网络xnet/网络net相对或匹配群组relative or match group

管脚对pin-pair

图 7 对象的优先级

4.3.1 系统

系统是最高等级的对象,除了包括设计(比如单板)之外,还包括连接器这些设计的扩展网络、互连电缆和连接器。

4.3.2 设计

设计代表一个单板或者系统中的一块单板,在多板结构中,每块板都是系统的一个单独的设计。

4.3.3 总线

总线是管脚对、网络或者扩展网络的集合。在总线上获取的约束被所有总线的成员继承。在与原理图相关联时,约束管理器不能创建总线,而且总线是设计层次的,并不属于系统层次。

4.3.4 差分对

用户可以对具有差分性质的两对网络建立差分对。

4.3.5 扩展网络/网络

网络就是从一个管脚到其他管脚的电子连接。如果网络的中间串接了被动的、分立的器件比如电阻、电容或者电感,那么跨接在这些器件的两个网络可以看成一个扩展网络。如下图7所示,网络ClkoutA和ClkoutB组成一个扩展网络。

ClkoutA ClkoutB

图7 扩展网络示意图

4.3.6 相对或匹配群组

匹配群组也是网络、扩展网络和管脚对的集合,但集合内的每个成员都要匹配或者相对于匹配于组内的一个明确目标,且只能在【relative propagation delay】工作表定义匹配群组,共涉及了三个参数,目标,相对值和偏差。如果相对值没有定义,匹配群组内的所有成员将是绝对的,并允许一定的偏差。如果定义了相对值,那么组内的所有成员将相对于明确的目标网络。

●目标:组内其他管脚对都要参考的管脚对就是目标,目标可以是默认的

也可以是明确指定的管教对,其他的管脚对都要与这个目标比较。

●相对值:每个成员与目标的相对差值,如果没有指定差值,那么所有成

员就需要匹配,如果此值不为0,群组就是一个相对匹配的群组。

●偏差:允许匹配的偏差值。

4.3.7 管脚对

管脚对代表一对逻辑连接的管脚,一般是驱动和接收。Pin-pair可能不是直接连接的,但是肯定存在于同一个网络或者扩展网络中

5.1 约束对象的建立

打开约束管理器后,在【electrical constraint set】工作簿栏对应的

右边工作表中会产生两种对象:system和设计(netcamera),如下图所示:

图 8 【electrical constraint set】对象示意图

在【net】工作薄对应的右边工作表区会自动产生四种类型的对象:system,设计(netcamera),总线(如ARM_ADDR)和网络( 如ADC_RESET*)。

1.建立差分对

图9 【net】对象示意图

如果在设计中有差分网络,需要对差分网络做些约束的话,必须首先建立差分对这个对象。

a)首先选择左边工作簿的任何一栏,然后在右键点击右边的工作区

object栏目下设计或网络(总线需要展开)。例如选择工作薄中【net】中的【impadence】栏,然后右键点击右边工作区的设计netcamera。

b)在弹出的对话筐中选择create,在扇出的菜单中左键点击

differential pair。如下图所示:

c)左键点击differential pair后弹出的对话对话筐如下图所示

d)在左上脚的下拉菜单中选择net,然后在网络选择筐中选择要创建差分对

的两个网络,例如USB1P+,USB1P-。

e)点击>键,USB1P+,USB1P-两个网络添加到左边的【selection】筐

中,并在diff pair的空白栏中自动添加差分对的名称,用户也可以修

图 10 创建差分对示意图

图11 差分网络选择图

改差分对的名字。如本例中产生USB1P的差分对,如下图所示:

f)点击【create】按扭进行创建。

g)另外,可以点击【delete】按钮对差分对进行删除,点击【modify】

进行修改。

h)如果继续创建差分对,先清空selection里的内容,再按照步骤d)~

f)创建差分对USB2P,USB3P;

i)点击左上脚的下拉菜单,选择diff pair可以浏览所有创建的差分对,

如下图13所示。

j)点击【close】推出

图12 创建差分对

图 13 浏览差分对示意图

2.创建总线

在原理图中打开的约束管理器不能创建新的总线对象,是由系统自动创建。

3.匹配群组和管脚对的创建

匹配群组和管脚对这两个对象主要应用于仿真,这里不再叙述。

5.2通用约束的建立

5.2.1 建立约束名

通用约束就是能够被所有对象参考的约束,它的约束优先级最低,能够被更低层的约束所覆盖。下面首先见绍约束名的建立过程:

1)点击左边工作区的【electrical constraints set】并展开,

选择【all constraints】下的【signal

integrity/timing/routing】,展开右边的工作表,右键点击工

作表的【netcamera】。

2)选择【create】—>【electrical CSet…】。如下图14所示:

图 14 创建通用约束

3)点击【electrical CSet…】,弹出命名通用约束属性对话筐,输

入general为该属性命名,如下图15所示:

4)点击【OK】完成,返回到工作区中,展开可以看到在netcamera

下有个general的约束名,如下图16所示:

5)重复步骤1)~4)建立通用约束名General_Diff,如下图16所示。

5.2.2 设置通用约束值

在命名了通用约束属性后,就可以设置约束名的约束值了,下面举例见绍一些常用约束值的设置,general约束针对一般网络,genera_diff约束是针对差分线的约束,接图16。

1)设置短桩分支线的最大长度

在右边的工作区找到【wiring】列,在与【general】行对应的【stub

length】子列中输入所需的长度值,如200mill,如下图17所示:

图15 属性命名对话筐

图 16 约束属性设置工作区

图 17 【wiring约束设置筐】

2)设置最大过孔数量

在右边的工作区找到【wiring】列,在与【general】行对应的【Max Via Count】子列中输入所需的值,如5个,如上图17所示。

3)设置表层最大走线长度

在右边工作区找到【wiring】列,在与【general】行对应的【Max Exposed Length】子列中输入所需的值1000mil,如上图17所示。

4)设置走线的阻抗值和误差

在右边的工作区找到【impedance】列,在与【general】和【general_diff】行对应的【target】子列中输入阻抗值如50Ω,在【tolerance】输入误差值15%,如下图18所示:

5)设置差分对的约束特性

在右边的工作区找到【differential pair】列,然后在与【general_diff】行对应的各个子列中输入相应的约束值。

a)差分对非耦合带的计算

在【gather control】的下拉菜单中有三个选项:【include】表

示非耦合带长度包括刚从芯片出来的走线,这些线段通常是非耦

合的;【ignore】表示非耦合带的长度不包括这个线段的长度;

【clear】表示清楚设置值。如选择【include】,如下图19所示,

图18 通用阻抗设置

图19 差分属性设置1

b)非耦合带的最大长度

在【Max Uncouple】列设置差分对的非耦合带的最大长度,该例中设置为50mil,如上图19所示。

c)差分对转换的相位误差

【phase tolerance】用来设置差分对的相位转化误差,也就是差分对成员在电平转换时的时间同步性,其值可以用长度mil为单位表示同步性,也可以用时间ns来表示转换误差。通过点击【phase tolerance】下小横条按钮,显示mil或ns,如下图20所示,点击该横条按钮弹出选择mil和ns的对话筐,该列中选择ns为单位,转换同步误差为50ns。

d)差分对成员的最小线间距

在【Min Line】子列中设置差分对的最小线间距,输入6mil。该间距一定要小于等于【Primary Gap】的值减去【(-)Tolerance】的值,也一定要小于等于【Neck Gap】的值减去【(-)Tolerance】的值,如下图21所示:

e)差分成员对的边到边的理想间距

图 20 选择差分对【phase tolerance】属性图

图21 差分属性设置2

在【Primary Gap】设置差分成员对的边到边的理想间距,(+/

-)值是允许的偏差值,如果间距在偏差范围内,差分对表示是

耦合,该列中设置为7mil,如上图21所示。

f)差分对成员的线宽

【Primary Width】中设置差分对的线宽,如7mil,如上图21

所示。

g)最小可允许的边到边的间距

【Neck Gap】下设置差分对成员最小可允许的边到边的间距,当

在比较密集的区域走线时,可能需要切换到Neck模式。如下图

22所示,设置7mil。

h)最小可允许的差分线宽

【Neck Width】设置最小的差分对线宽,当在比较密集的区域走

线时,可能切换到Neck模式。如上图22所示,设置7mil。

i)边到边理想间距的误差

【(+)Tolerance】和【(-)Tolerance】分别表示边到边理想间距

的正负误差。如上图22所示,设置1mil。

5.2.3通用约束值的分配

在建立通用约束general,general_diff之后,就可以把该约束值分配给不的对象。

1)【Wiring】和【impedance】相关约束属性的分配

选择左边工作薄【Net】->【Routing】下任何一个要约束表,右边工作区显示对象和约束属性。

例如要给总线ARM_ADDR分配的相关约束值,包括短桩分支线的最大长

图22 差分属性设置3

度,最大过孔数量,表层走线的最大长度,阻抗值等等。点击与【ARM_ADDR】行相对应的【Reference Electrical CSet】列,就会弹出【Reference Electrical CSet】对话框,在该对话筐的下拉Current Reference下拉菜单中选择general,如下图23所示。

点击【OK】完成设置,返回到先前的工作区,如下图24所示。由于总线是网络的集合,它的约束值可以继承到其各个低等级的网络中去。图24也显示其继承性。

另外,可以针对某个网络或总线直接修改约束,只要在对应对象的某个约束属性中直接输入约束值即可。例如把ARM_ADDR<0>的过孔数量修改为2。可以在ARM_ADDR<0>行对应的【Via Count】列的子列【Max】中输

图23

图24 【wiring】的约束值设定

入2即可完成修改。

2)差分约束属性的分配

1)选择左边工作薄【Net】-> 【Routing】->【Differetial Pair】,

右边的工作区显示其可以设定的约束值。

2)点击右边的工作区object列差分线USB1P的【Reference Electrical

CSet】,在弹出的对话筐的下拉菜单选择general_diff。

5.2.4低等级对象约束值的设定

对象除了通过调用事先设定的约束外,还可以直接在网络对象上设定约束值。例如给差分线USB2P设置阻抗差分阻抗为90ohm,单线的阻抗为45ohm。

1)在左边的工作簿选择【Net】->【Routing】->【Impedance】。

2)展开右边【object】列中的USB2P差分网络,在与该行对应的【Target】

列中输入90,【Tolerance】中输入15%。

3)修改USB2P+和USB2-网络的【Target】值为45,如下图25所示:

其他针对网络的约束值(如最大过孔等)设定步骤类似,这里不在见绍。

5.2.3 线间距和线宽的设置

1)选择左边工作簿的【net】文件夹,在这文件下选择【general

property】,则在左边可以只能看到三个对象:system,design(在

次例子为设计名称为netcamera)和网络。如果某个对象前面有个【+】

号,点击可以展开它的下一级的对象。如下图26所示:

图25 差分阻抗设置

2)在右边的工作区中,【physical】列定义某个网络的线宽度,单位为mil,

【spacing】列定义某个网络的线间距,可以直接输入数据进行定义。

例如在ARM_ADDR<0>网络定义了线宽8mil,线间距为9mil。

5.2.3 包地的设置

在设计中通常对某些敏感的信号线进行屏蔽处理(也称为包地),下面以对VIDEO1NP网络进行屏蔽处理为例进行说明,屏蔽地网络为AGND_VIDEO。

1)设置屏蔽网络。选择左边工作簿的【net】文件夹,在这文件下选择

【general property】。在右边的工作区中找到【VOLTAGE】列,

在对应的网络AGND_VIDEO行中填入0。如下图27所示:

2)在右边的工作区中找到【shield】列,其下面有对应的两个子列

图 26 【general property】界面

图 27 屏蔽地网络的设置

3)【shield】和【type】。【shield】子列用来选择屏蔽地网络,

【type】选择屏蔽的方式。如下图16所示:

4)点击VIDEO1N网络对应的shield列,弹出【set shield_net】

对话筐,选择AGND_VIDEO如下图17所示:

点击【ok】完成屏蔽地的选择。

5)点击VIDEO1N网络对应的type列,在下拉的菜单中选择屏蔽类型,

如下图18所示:

Para

图16 屏蔽网络示意图

图 17 选择屏蔽地网络对话筐

图 18 屏蔽类型选择

●Parallel表示屏蔽地与被屏蔽的网络在同一层并行走线。

●Tandem表示在被屏蔽的网络对应的上下层走屏蔽线。

●Coax表示Parallel和Tandem走线的集合。

Not:在使用约束管理器时,为了安全请定时保存约束文件。

相关主题