
今天公司年会,中了三等奖,虽然是末等奖,但是也比没有强。相比往年,也算是不错了。
今天上午因为项目需要,查了一下skip route的设定,这里就顺便总结一下PR中对单独的net的约束方法:

skiping route:
命令:set_attribute -object $net -name physical_status -value locked
没有类似于set_dont_touch之类的直接命令来设置skip route,而是通过一个叫physical_status的属性来设置。
如果physical_status为locked,那么这个net将会被freeze,也就是说,如果没有绕线,那么它相当于skip route。
如果已经绕线,则相当于将shape和via fix住,router也不会去动。

dont touch:
命令:set_dont_touch [get_nets $net -segment]
这个一般是为了放置工具再net上加buffer。注意这里的segment option不能丢掉。

set_ideal_net:
客观上也会阻止工具对net进行优化,实际使用中一般在综合阶段使用。除非特殊情况(例如DDR某些net),都需要在PR阶段开始之前注释掉。

set_ideal_network -no_propagate:
类似于set_ideal_net, 但是可以对pin和port进行设置。

routing rule:
命令:
create_routing_rule
set_routing_rule
主要用于设置clock以及一些特殊要求的net,例如double width, double spacing。
联系作者

本文总结了在布局布线(Place and Route, PR)过程中,针对单个net的物理约束方法,包括skip route的设定、dont touch的使用、set_ideal_net及routing rule的创建。通过set_attribute命令设置net的physical_status为locked可实现skip route效果,而set_dont_touch则用于防止工具在net上添加buffer。同时介绍了set_ideal_net和set_ideal_network -no_propagate的作用,以及如何利用create_routing_rule和set_routing_rule创建定制化的路由规则来满足特定net的需求。"
123795416,13068726,Java编程命名规范详解,"['Java', '编程规范']
996

被折叠的 条评论
为什么被折叠?



