用到add模块了是吗? 最后面的1 是如何做的?
如果用count<=count+1; 会有什么不同呢? 我知道一个是 阻塞的 一个是非阻塞的。我问的是实际效果?会导致不期望的逻辑错误吗?
always@(posedge clk)
begin
count=count+1;
end
我说的是这个里面的count
“<=”非阻塞赋值语句,“=”阻塞赋值语句,其表现的区别:
非阻塞赋值语句,在该块语句结束后才得到值;
阻塞赋值语句,在此语句结束之后马上得到值;
举例:
always@(posedge clock)
m=3;
n=75;
n<=m;
r=n;
语句执行结束后,r的值为75,而不是3,就是说在本块语句结束时,n的值才改变.
不知道说明白了没,希望对你有所帮助
引用: 引用 2 楼 lwenming 的回复:
“<=”非阻塞赋值语句,“=”阻塞赋值语句,其表现的区别:
非阻塞赋值语句,在该块语句结束后才得到值;
阻塞赋值语句,在此语句结束之后马上得到值;
举例:
always@(posedge clock)
m=3;
n=75;
n<=m;
r=n;
语句执行结束后,r的值为75,而不是3,就是说在本块语句结束时,n的值才改变.
不知道说明白了没,希望对你有所帮助
这我知道。我是想问 对于
always@(posedge clk)
begin
count=count+1;
end
阻塞和非阻塞都没关系吧? 都能起到计数器的作用 是吧?
楼主的例子,阻塞和非阻塞是一样的,因为block中只有一条语句。不过这个明显是一个时序逻辑,因为敏感变量表中是clock边沿触发。建议使用非阻塞<=,避免不必要的错误。也许有的仿真器会出错