verilog里面count=count+1;的硬件电路是什么样子的?

ganzhifang   2010-3-19 12:57 楼主
用到add模块了是吗? 最后面的1 是如何做的?

如果用count<=count+1; 会有什么不同呢? 我知道一个是 阻塞的 一个是非阻塞的。我问的是实际效果?会导致不期望的逻辑错误吗?

回复评论 (7)

always@(posedge clk)
    begin
       count=count+1;
    end

我说的是这个里面的count
点赞  2010-3-19 12:59
“<=”非阻塞赋值语句,“=”阻塞赋值语句,其表现的区别:
非阻塞赋值语句,在该块语句结束后才得到值;
阻塞赋值语句,在此语句结束之后马上得到值;
举例:
always@(posedge clock)
  m=3;
  n=75;
  n<=m;
  r=n;
语句执行结束后,r的值为75,而不是3,就是说在本块语句结束时,n的值才改变.
不知道说明白了没,希望对你有所帮助
点赞  2010-3-19 14:21
引用: 引用 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

阻塞和非阻塞都没关系吧? 都能起到计数器的作用 是吧?
点赞  2010-3-19 16:27
引用: 引用 3 楼 delacroix_xu 的回复:

引用 2 楼 lwenming 的回复:
“<=”非阻塞赋值语句,“=”阻塞赋值语句,其表现的区别:
非阻塞赋值语句,在该块语句结束后才得到值;
阻塞赋值语句,在此语句结束之后马上得到值;
举例:
always@(posedge clock)
m=3;
n=75;
n<=m;
r=n;
语句执行结束后,r的值为75,而不是3,就是说在本块语句结束时,n的值才改变.
不知道说……


a=a+1是组合电路 一只是不稳定态
a<=a+1是时序电路 跟着clk走
点赞  2010-3-19 17:33
习惯使用阻塞语句
点赞  2010-3-19 17:34
阻塞语句不太好吧?容易fail
点赞  2010-3-22 16:10
楼主的例子,阻塞和非阻塞是一样的,因为block中只有一条语句。不过这个明显是一个时序逻辑,因为敏感变量表中是clock边沿触发。建议使用非阻塞<=,避免不必要的错误。也许有的仿真器会出错
点赞  2010-3-26 21:28
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复