测过Cadence 17.4这个版本,在里面踩了无数有关设计规则设置方面的坑,尤其是那个能让人崩溃的DRC报错。
第一步 打开约束管理器并创建电气规则
将你的PCB Editor打开,在菜单栏那儿寻觅Setup -> Constraints -> Constraint Manager,这种的操作路径有好多人寻觅不到,实际上在工具栏当中存在一个小图标,其模样好似一个带有锁的表格。鼠标点击进入之后,在左侧名为Electrical Constraint Set的区域里,运用右键操作,从中选择Create -> Electrical CSet,为其取一个随意的名字,像是“DDR3_100M”。
许多人在创建完CSet之后,便直接将窗口关闭,等回去一看,却发觉规则并未生效。其核心原因在于,没有把CSet分配至相应的网络。正确的操作应当是:在Net那一栏,通过右键点击选择Assign,接着把新建的CSet拖拽到目标网络上。而报错的现象是, DRC并未报错,然而信号却四处乱跑,实际上是规则根本就没有绑上去。
第二步 设置关键参数推荐最优值
在Constraint Manager里寻得Routing -> Min/Max Propagation Delay之处,在此处存在一个关键参数Relative Propagation Delay,而我所推荐的数值是±50ps。理由十分简单,针对100MHz以下的时钟信号而言, 50ps的容差足以满足时序所需条件,并且能够有效地减少虚假DRC报错情况。一旦你将其设置为±20ps,许多正常的走线便都会出现报错现象,排查这些报错会把人逼到疯狂状态。
先双击你所要调整的那个网络,当处于Tolerance栏面前时,直接输入50ps,可千万别把单位选错哟,其默认的是mil,得手动将其改成ps才行。随后回到PCB Editor上,运行一下Update DRC,瞧瞧报错的数量是不是显著地下降了。
若要躲避新手常遇到坑,修改参数之后,务必要先点击Apply,接着再点击OK才行,好多人会直接关闭窗口,最终导致参数未能保存。其报错呈现的现象是,参数明明已经更改好了,然而DRC结果却并未改变,其中最为关键的原因就是没有点击Apply按钮。快速将问题解决的办法是,重新把Constraint Manager打开,确认一下数值有没有发生变化,之后再去运行一次DRC。
第三步 两种实操方案对比与选择
针对高速信号走线这项内容,像DDR3这种情况,存在两种常见的设计规则方案,方案A是按照长度匹配来布置走线呢,要在Routing -> Length当中去设定最大最小长度,举例来说就是大概3000mil±100mil,方案B这边,则是依据等长来走线,需要在Relative Propagation Delay里去设置目标网络以及参考网络。
适用于时钟频率低于200MHz场景的方案A,操作比较简单,跑DRC速度快,然而精度平常。适合200MHz以上高频信号的方案B,能够精确地控制时序,不过设置烦琐,每一对信号都需要手动去指定参考网络。依据我的实际操作经验,要是你做的是普通消费电子,直接运用方案A便可,不要为了追求完美而去弄方案B,因为方案B极其容易引发那个高频完整报错。
高频完整报错与解决流程
“DRC Error: Unrouted Net Constraint”是最为常见的报错,此报错所表达的意思是网络并非完全连通,然而不少人明明看着走线已然连上,它却依旧在报错,其核心原因在于你的走线被错误地判定为“未连接”,这种情况通常发生于换层过孔的附近。
关于解决流程,先是在PCB Editor里,将Display展开前往Status,而后查看顶部位置的Unrouted Nets所对应的数值。要是数值大于零,那就按下快捷键R来激活Route命令,在Options面板里勾选Allow DRC Violations,接着 使用鼠标去点击出现报错现象的那根走线,再重新拉动一下,以保证过孔两端达成完全连接。最后进行一次 Tools -> Database Check 的操作,在修复数据之后,接着运行 DRC,当报错消除时就完成了。
此套设置方式于Cadence 17.2至22.1版本上均已进行过测试,大体具备通用性。然而存在一个特殊情况:要是你的板子所采用的是柔性材料或者超薄基板,那么DRC规则就需要进行大幅度的放宽,不然报错数量将会多到令人无法直视。替代的方案是,直接在Constraints当中,将Minimum Line Width改成5mil,同时把Same Net Spacing检查关掉。在工程方面,不要一味地追求规则越严格便越好,恰当合适才堪称是王道。











