找回密码
 注册
查看: 378|回复: 2
打印 上一主题 下一主题

cadence 约束

[复制链接]
  • TA的每日心情
    开心
    2022-10-11 15:47
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    跳转到指定楼层
    1#
    发表于 2022-8-30 17:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    约束规则设置
    约束规则作用:allegro设计软件优势是高速信号PCB设计,而高速信号需要 考虑信号完整性(信号需要等长)、差分信号等。当约束设置完成后,PCB工具会自动根据定义 的约束对设计进行检查,不合符约束的地方会用DRC Markers 标记出来。
    操作步骤:
    ⅰ.选择“Setup->Constraints->Constraint Manager”,启动约束管理器,或者在菜单面板上直接选择快捷键图标启动。
    Allegro规则约束管理器快捷按钮
    ⅱ.Allegro中规则分为两类:DefaultConstraint和Special Constraint。用户既可以修改默认规则,还可以创建新规则
    ⅲ.约束设置方法:1 确定约束类型   2 创建或修改约束设置    3 分配约束
    PCB 设计中,设计规则主要包括: Electrical时序规则、物理规则、间距规则、相同网络名间距规则、properrties性能规则4个部分。下面重点介绍以下3个规则设置。
    8 x; T2 W3 f2 @
    1. Physical物理规则条件设置

    1 N  N9 {' F% ~1 J) R1 ]- c
    点选Physical Constraint Set 即可出现Default 的Physical 相关设定值,如Line Width线宽、Neck width..、过孔等(对于BGA封装元件,需要使用Region区域约束规则设置)。   
    Physical物理规则可以使用Defaul约束规则,也可以新建约束规则。
    1) 设置Default约束规则
    2)新建约束规则方法:以新建电源 power为例说明
    / y, Z. f+ J2 G1 l

    : T4 h' E# k/ }7 G6 x0 K8 q
    : W* {+ J. U; t* g# Y
    3)设置约束参数:设置线宽、过孔等
    线宽:一般设置Line Wdith  min、Neck min Width
    过孔:物理规则设置里面有一栏是Vias,点击即可设置,如下图所示
    4)分配约束:
    对于一般net线宽,使用默认DEFAULT线宽;而有特殊要求线宽单独设置。例如:电源相关net,先建立一个POWER的类,然后将所有电源相关net添加进去,一起设置线宽约束。
    2 Spacing间距规则条件设置1、设置间距值约束规则
    进入约束管理器,单击 Spacing,再点击AllLayers,如下图所示。右边有一个DEFAULT 就是默认规则,我们可以修改其值。也支持定义特殊间距约束,点选Default按鼠标右键,执行Create-Spacing CSet。
    1)line to line:根据3W原则,走线之间的间距不应小于两倍走线宽度。对于特殊的信号,如时钟走线,应适当增加走线的间距,至少为走线宽度的两倍,如果可以最好用地线隔离。
    2)line to hole:可参考line to line原则
    2)line to shape:可参考line to line原则
    4)shape to shape:这个间距需要考虑两个shape之间电压差。电压差低于24V,不低于0.5mm。
    2、net设置间距约束
    一般间距使用默认DEFAULT。对间距有特殊要求,建立新的间距规则,然后对其net分配该规则。
    3 Electrical电气规则条件设置
    Electrical电气规则主要关注:差分信号约束规则、等长约束规则。下面以差分和等长为例说明:
    3.1差分信号约束规则
    先说差分线相关参数
    1、  Coupled Tolerance:两条差分线间距的误差值
    2、  Min Line Spacing: 两条差分线 的最小间距
    3、  Primay Gap: 两条差分线优先线间距(边到边间距)。
    4、  Primary Width :差分线优先线宽
    5、  Line Width:差分线的线宽(在Physical Constraint Set 设置)
    6、  Neck Gap :差分对Neck模式下的线间距(边到边间距),用于差分对走线在布线密集区域时切换到Neck值。
    7、  Neck Width:差分对Neck模式下的线宽,用于差分对走线在布线密集区域时切换到Neck值。
    8、  Dynamic Phase:动态相位检查
    9、  Static Phase Tolerance  这个约束设置了两根差分线之间线长差值,单位是mil或ns
    10、Uncoupled length:该约束限制了差分对的一对网络之间的 不匹配长度。
    设置步骤如下:
    ① 建立差分规则并设置参数:打开约束管理器,定位到Routing | Differential Pair下,如下图所示
    参数设置,
    ② 建立差分对。以USB为例,选中DMDP,点击CreatDifferentialPair
    ③ 分配约束规则。
    ④ 打开差分对检查。执行Analyze-Analysis Modes,如下图,
    Analyze分析差分线
    3.2等长约束规则
    高速布线中等长设置是经常使用的约束规则,在Allegro中等长设置使用相对延时约束规则。在实际使用过程遇到:同一个Net(直接连接的)和 不同Net(XNet)情况。
    我们把连续的几段由被动元件(如电阻,电容或电感)连接的net合称为一段Xnet.。Allegro中有两个常用的走线长度设置,PROPAGATION_DELAY,RELATIVE_ PROPAGATION_DELAY 都只能针对同一Net设置。
    Xnet应用实例:
    现在要求U1 到U2 的走线Net*A + Net*B等长,误差为+/-20Mil,最简单的方式就是分别设置Net*A等长和Net*B等长,误差各为+/-10Mil,这样是可以达到要求,不过会加大Layout工程师绕线的难度,因为可能Net*A部分空间比较大有足够的绕线空间,而Net*B部分没有空间绕线,所以就比较难达到要求。如果一种设置能把Net*A与Net*B相加,然后再做等长比对,这样就可以解决问题了,好的就是Allegro都早为这些问题考虑过了,只要把Net*A与Net*B设置为一个Xnet问题就解决一半了。

    0 m# p- V/ \: J) l# J1、 同Net等长设置
    下面以我们板子上的DVP信号举例说明一下,原理图如下:
    DVP总线PCLK极限约在96M左右,而且走线长度不能过长,所有DVP最大速率最好控制在72M以下。所以几个时钟和数据线需要做等长处理,i2c控制线可以不做处理。
    即原理图中p3同u1的CMOS_D[0:7]、CMOS_XCLK、CMOS_PCLK、CMOS_HSYNC、CMOS_VSYNC等长。
    第一步:设置引脚对(pin pair)。在约束管理器Electrical|Net |Routing|Relative Propagation Dleay界面下操作:
    依次设置所有需要等长引脚。
    第二步:创建match group将所有设置等长的网络创建好的管脚对后,选中管脚对,右键选择create-match group。
    第三步:设置等长相关参数。主要设置参数如下图所示
    1)使能等长线的分析
    2)设置等长基准线和+/-误差。下面以设置CMOS_XCLK为基准线,正负误差:0-50mil
    参数说明:
    1、Scope选择Global。Scope:可以选择Local和global。Local意为仅比较同一Net或XNet内的管脚对,Global意为比较同一Match Group内的所有管脚对。一般选择Global即可。
    2、Pin delay:大多是在pin之间的延时不一致时,需要做一个补偿,那就需要设置pin delay,指的是IC包装内部的长度。需要在菜单Analyze -> Analysis Modes填入->Options。Analyze选PinDelay开启此功能。打开后,在计算线长时就会包括这段线长。另外pin delay下的Z Axis Delay指的是计算线长时是否考虑Via的长度,设置好了叠层参数后就会加上via的长度。
    一般Pin delay忽略不计。
    3、  Delta:tolerance:这项控制了match group内的线长差。单位有三种:ns,mil,%;单位%指以目标线的N%为公差。对已经走好的线,以最长值为目标线。
    1)Delta指的是基准线比目标线长还是短,长则写入+delta值,短则写入-delta值,和目标线一样长则写入0,计算公差时的基准线便是目标线长加上delta值的结果。一般等长设置中,Delta为0。
    对不满足约束的走线,显示ED”错误,如图所示。
    2) Tolerance值为于基准线的误差,是+/-误差。如果写50mil其实为+50/-50mil误差,实际为100mil的误差。一般设置等长时Delta为0,有特殊需要时可以考虑设置delta值。
    注:如何修改等长线束中  基准线 方法如下:
    2、设置Xnet等长
    下面以我们板子上的MIPI信号举例说明一下,原理图如下:
    通过之前的介绍要将上图共模电感两端的信号NET1+NET2设置为XNET即“CMOSA_SLVSC_1+CMOSA_SLVSC_”、“CMOSA_SLVS0_1+CMOSA_SLVS0_”、“CMOSA_SLVS1_1+CMOSA_SLVS1_”这三组差分信号线设置为XNET并做等长处理。
       想要创建XNET,首先需要将三个共模电感添加ESpice模型。添加模型的过程就是创建XNET的过程。
    一、创建XNET
    ① 在菜单栏中选择allegro->Analyze->Mode Assigment,打开Singal Model Assignment对话框,如下图如,
    ② 找到要设置模型的器件,可以在Refdes中输出你要创建Xnet模型的元器件,如下图,
    ③  选择器件点击>Create Model,如下图
    如上图以此点击;
    之后弹出下图,第一个MODE name 是你创建模型的名字,可以自己设置,也可以用默认;VAlue必须是不为0的任意数,之后点击OK。
    最后点击OK后就会弹出如下图,XNET就设置完毕了;
    重复到下面的页面后,点击Auto Setup,系统会把原理图中所有的带元器件的建立Xnet模型;
    二、创建Pin Pair
    由于 XNET不仅仅是发送-接收端的两个pin的链接,中间还有其他器件的pin脚,因此设置XNET等长需要首先创建Pin Pair,即要设置的等长是Xnet中的哪两个引脚的连接。下图能更好的的理解Pin Pair的意义,
    ① 进入Constraint Manager,以刚创建好的CMOSA_SLVSC_1N为例创建Pin Pair,如下图,
    分别选择发送和接收的引脚,点击OK”就创建好了Pin Pair,如下图,
    依次将所需的信号分别创建好Pin Pair,如下图,
    ② 建立Match Group,并调整等长。(同,上面“同NET”的方法一样)
    调整完成后的PCB如下图,P1连接器上面的3组差分信号线经过共模电感后到达U5芯片的管脚。

    图片39.png (83.57 KB, 下载次数: 0)

    图片39.png
  • TA的每日心情
    开心
    2023-1-11 15:38
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-8-31 13:42 | 只看该作者
    基本上把需要设置的说完了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-5-25 19:16 , Processed in 0.109375 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表