1、每个always只有一个@(event-expression).
2、always块可以表示时序逻辑和组合逻辑。
3、带有posedge和negedge关键字的是表示沿触发的时序逻辑,没有的表示组合逻辑或者电平敏感的锁存器。或者两者都表示。
4、每个在always快中赋值的信号必须定义成reg型或者整形(integer[<msb> :<lsb> ] identifier)。整形变量默认是32位。
5、always块中应该避免组合反馈回路,always块中的赋值必须是明确的。否则,需要设计者在设计中加入电平敏感的锁存器,来保持赋值前的最后一个值。解释如下:
//我们不建议这样,你懂的,容易出错。
input a,b,c;
reg d,e;
[email protected](a or b or c)//电平敏感列表就是a,b,c
begin
e=d & a & b;//因为电平敏感列表里面没有d,所以在d变化时,e不能立即变化,要等到a,b,c变化时才能体现出来。也就是相当于存在一个电平敏感的透明锁存器在暂存d的数据。
d=e|c;
end
6、把某一信号值赋值为’bx,综合器把它解释成无关状态,综合器生成的硬件电路做简洁。
摘自:verilog数字系统设计教程(夏宇闻)
时间: 2024-10-11 22:06:17