网上看到的觉得不错分享下 组合逻辑的always模块中使用阻塞赋值; 时序逻辑的always模块中使用非阻塞赋值; 可以这样理解,组合中计算马上赋值,时序逻辑中上升沿计算,下降沿赋值
关键是组合逻辑中是实时变化的,而时序逻辑中一个cycle才变化一次
比如:
always @(a or b)
begin
c = a + b;
end
always @(posedge clk)
begin
if(rst)
c <= 0;
else
c <= a + b;
end
在组合逻辑的always block中,a和b的变化都会引起c值的变化;
而时序逻辑中c至少会维持一个clock cycle,也就是说如果a和b的变化导致c变化的时间是在下一个clock的上升沿,而不会让c立刻改变
本文解析了组合逻辑与时间逻辑在Verilog中的应用差异。强调组合逻辑使用阻塞赋值实时响应输入变化,而时序逻辑采用非阻塞赋值,确保在一个时钟周期内状态稳定,仅在时钟上升沿更新变量。
1万+

被折叠的 条评论
为什么被折叠?



