Cadence设计规则踩坑实录 手把手带你避开DRC报错

发布于 更新于
2,438
详情介绍
智行者IC社区持续更新技术干货、实操教程、案例分享与常见问题解答,为学习者提供实用的学习参考资料。

测过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检查关掉。在工程方面,不要一味地追求规则越严格便越好,恰当合适才堪称是王道。

常见问题(FAQ)

创建了约束集但规则不生效是怎么回事?
通常是新建的约束集没有分配到网络上。要在Net一栏右键选择Assign,把它拖到目标网络上,否则DRC不报错而走线其实并不受规则约束。
相对传播延时的容差设多少比较合适?
100MHz以下的时钟推荐±50ps,足以满足时序要求并减少虚假DRC报错。设成±20ps会让许多正常走线都报错,另外要把单位从默认的mil手动改成ps。
DRC报网络未连通但看着已经连上,怎么办?
先展开Display打开Status,查看Unrouted Nets的数量。按R激活Route命令并在Options里勾选允许DRC违规,重新拉动报错走线保证过孔两端完全连接,最后做一次Database Check再跑DRC。
0 / 600
0 讨论
热门最新
总结
暂无总结
嗨,下午好!
学硬件设计・来智行者 IC 社区
相关文章