用syonpsys工具试着研究了一下,也把自己的感悟分享出来,欢迎指正;
综合用的dc,后仿真用的vcs;
对于非展平的网表:
1. 子模块内部的触发器类型,比如时序逻辑reg[7:0] temp;非展平之后,必然存在与之对应的wire[7:0] temp数据类型,并且命名完全相同,连接std cell的连线;
2. 子模块内部定义的wire类型,全部被工具定义的std cell 线网取代,找不到相同线网的命名;
3. 模块间的wire数据类型,由于综合保留Hierarchy结构,所以这些线网可以找到,并且完全相同;
4. 关于后仿真,使用top.u1.u2.temp == 8‘d8;类似的内部寄存器变量,不影响仿真,但是不能用子模块内部的wire变量作为事件的触发的条件;因为保留了Hier结构和变量名字,vcs可以正确找到;
对于展平的网表:
1. 子模块内部的触发器类型,比如时序逻辑reg[7:0] temp;展平之后,命名会以Hier的形式给出,并且是wire型变量,连接std cell;比如wire [7:0] top_u1_u2_temp(我的理解是,如果其它的子模块也写了reg [7:0] temp,工具不至于展平的时候命名相同);
2. 子模块内部定义的wire类型,全部被工具定义的std cell 线网取代,找不到相同线网的命名;
3. 模块间的wire数据类型,尽管展平的网表不具备Hier结构,但是模块间的wire连线,保留了原有的命名;但是不具备Hier属性;
4. 关于后仿真,必须由Port或者第一级Hier的pin作为触发事件,添加正确激励;像使用top.u1.u2.temp == 8‘d8之类的语法,工具无法识别;
原文地址:https://www.cnblogs.com/godlovepeng/p/10176363.html