微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 问个敏感信号的问题

问个敏感信号的问题

时间: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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top