2011年8月30日 星期二

DC中为什么要用Uniquify?

为了在layout中进行时钟树的综合,网表在DC中必须被 uniquified.所谓uniquified 就是在设计中使子模块的实例和子模块的定义一一对应,消除一个模块的定义被多次引用的现象。因为大部分layout工具以一种flat的方式完成设计的物 理实现。对于多次引用同一定义的各个实例的物理模块的位置是不同的,而这些模块内部的flop都需要各自的时钟,从而时钟树上这些模块的 clock_net名是不同的。如果Non_ uniquified 网表,来自layout 工具的时钟树的信息和DC中原网表无法对应,因为被多次实例化模块在网表中只有一个定义,所以会出现两个不同的net和一个相同的port连结,这是不允 许的。 Uniquify 的方法如下:
dc_shell>remove_attribute find(-hierarchy design,”*”)dont_touch
dc_shell>Uniquify
DC 会认为存储区中的模块都只是被引用一次的,如果各个模块的引用的工作环境各不相同,则使用这种方法可以使得模块的各个引用可以针对他们不同的环境分别进行优化,达到最好的效果。uniquify 命令会将多次引用的模块的个数拷贝需要的数目,然后对他们分别命名而得到不同的模块名。使用的命令如下:
dc_shell-t>current_design TOP
dc_shell-t>uniquify
dc_shell-t>compile


轉貼自 http://hi.baidu.com/rfic_seu/blog/item/2e97ce0cc988a2306159f30e.html





compile-once-dont-touch相比较,uniquify有如下的特征:
要求更大的内存
需要更长的编译时间

沒有留言: