在进行后端设计时,为了使得最终的结果更加优化,也就是面积,功耗,性能更好,工具在优化时可能会把module的port改变。但是这样可能会带来一些问题。问题之一就是前端在进行仿真的时候,由于某些module port找不到了,很难找到需要监测的信号。
这种情况当然首选的建议是尽量监测特定物理cell的pin,然后对这些cell设置dont touch,而不是直接检测hierarchical port。
另外一个解决方法就是,将这些port保持住。如果我们用ICC的话,我们通常是对这些moudle的port设置dont touch。那么工具在优化的时候,会考虑到dont touch属性,从而让这些port不会被优化掉。
但是icc2中,在hierarchy port设置dont touch属性并不有效。
我在刚开始使用ICC2的时候,就曾经在项目中遇到这样的情况。当时根据ICC的使用经验,对moudle的所有的port都设置了dont touch。但是最后发现,还是有很多port不见了。
其实,ICCII中有专门的命令来解决的这个问题,那就是用set_freeze_port,请大家记住这个命令。而这个命令的具体用法,这里就不赘述了,大家可以直接使用在线帮助(man)。