让人又爱又恨的综合 ungroup

在synthesis时候 很多时候compile时候ungroup是关掉的。

大家都知道打开ungroup 拆掉hinst的层级是对ppa有好处的。
但是痛苦的是ungroup会带来。sdc 命名层级改变。upf命名层级改变。 一些syn pr 命令命名层级改变。 等一系列问题。那么如果让dc在 ungroup后名字还保持原来层级的名字呢?

修改默认的default verilog name rule

define_name_rules verilog -type port -allowed ‘a-zA-Z0-9_/’

define_name_rules verilog -type cell -allowed ‘a-zA-Z0-9_/’

define_name_rules verilog -type net -allowed ‘a-zA-Z0-9_/’

change_names -hier -rules verilog

改后的verilog netlist类似

其实我的I_COUNT 已经被打平了。但是从命名上层级仍然存在

不过从验证后仿的角度来看。一样存在难以debug的问题。
因为本质上层级是被打散了的。hinst不存在了。只不过从名字上看起来像hinst而已。

另外对于实例化前面加\的情况。我咨询了朋友从ai 上搜到了这样的回答。

1 个赞