请教一个关于DC综合后,VCS后仿真的问题
时间:12-12
整理:3721RD
点击:
请教一个关于DC综合后,VCS后仿真的问题,谢谢
如果添加了ungroup -flatten -all,
那么DC产生的top_gate.v中模块的层级无法看到,只有一个顶层模块
在后仿真调试过程中,是否可以分如下几步,不对的地方还请批评指正:
1.注释掉ungroup -flatten -all,在DC输出的 _gate.v 中保留所有的子模块,
然后用VCS进行后仿真,并观测各模块接口信号
2.保留ungroup -flatten -all,
但由于仍然需要观测某个模块或者某个模块内部wire,reg信号,结合使用
set_dont_touch [get_nets {*/*}]
set_dont_touch [get_cells {* */* */*}]
3.去掉set_dont_touch,只使用ungroup -flatten -all,
DC生成 _gate.v后,用VCS进行后仿真
再次感谢:)
如果添加了ungroup -flatten -all,
那么DC产生的top_gate.v中模块的层级无法看到,只有一个顶层模块
在后仿真调试过程中,是否可以分如下几步,不对的地方还请批评指正:
1.注释掉ungroup -flatten -all,在DC输出的 _gate.v 中保留所有的子模块,
然后用VCS进行后仿真,并观测各模块接口信号
2.保留ungroup -flatten -all,
但由于仍然需要观测某个模块或者某个模块内部wire,reg信号,结合使用
set_dont_touch [get_nets {*/*}]
set_dont_touch [get_cells {* */* */*}]
3.去掉set_dont_touch,只使用ungroup -flatten -all,
DC生成 _gate.v后,用VCS进行后仿真
再次感谢:)
个人理解,当使用ungroup和flatten时,是因为module没有完全做成register-out,所以timing会比较紧。
否则,还是不使用flattern的好。
你的前2个选项,与第3个,所得到的timing和logic是不一样的,没有意义分成3步。
你最终要哪个netlist,就用它做后仿。而且除非后仿出错,你也没必要看内部的信号,这个任务还是在rtl级做比较好。
DC在top-down综合中对ungroup的netlist优化程度更好,对boundary的逻辑可以更好的进行优化。
lz说的这三个方法其实是想更好的观测内部逻辑,不是三步。在gatesim里对端口信号进行观测就足够,或者只保留superblock的hierarchy