问个敏感信号的问题
时间:10-02
整理:3721RD
点击:
如果always@()中敏感信号表中少写了一个变量,这个变量又处于内部赋值表达式的右边,综合的时候会有什么影响呢?
综合时会报一个warning,不影响综合结果。
但会造成综合后和rtl的仿真结果不一致。
RTL和综合仿真结果不一致也就是对综合产生了影响吧,在一本书上看到的会引入无意识的锁存器
综合本来就是按照你的RTL根据一定算法进行的。
有可能综合锁存器,不是全部。
组合逻辑用always @(*)好了。
这是面试MTK的时候问的问题,我说的估计会产生无意识的锁存器,结果他笑着说不会产生的,夏宇闻那本书上说会产生通明锁存器,被误导了。
是否会产生锁存器和always敏感列表列得全不全无关,而是由always
语句内的if/case语句是否覆盖全条件决定。
是否产生锁存器要具体分析。
像你说的:
always @(b)
c=a&b;
综合就是一个与门。但是这会产生验证和综合不符。
最基本的道理。
你是本科刚毕业吗?
我隐约记得,综合器是不看敏感列表的.
那个表只用来触发仿真事件.
所以说搞清楚每种编码方式所能产生的硬件很重要.
多看看出综合器的公司的文档,coding style之类的指导资料.
谢谢大家的回复,小弟基础不牢,还有待提高啊
综合的时候,工具会report warning:...but does not appear in the sensitivity list of the block
但工具会自动添加进去,从而不影响综合结果,7楼说的对
同时,还会影响formal verification
你和新人讲形式验证不大合适啊。虽然我也不懂。
受教 oo
