为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Verilog中解释阻塞与非阻塞分配?

如何在Verilog中解释阻塞与非阻塞分配?

海绵宝宝撒 2019-09-24 16:22:05
对于绘制硬件图时如何解释阻塞和非阻塞分配,我有些困惑。我们是否必须推断出非阻塞分配会给我们一个寄存器?那么根据此陈述c <= a+b ,c将是注册权,而不是a和b?module add (input logic clock,  output logic[7:0] f);   logic[7:0] a, b, c;  always_ff @(posedge clock)  begin     a = b + c;     b = c + a;     c <= a + b;  end   assign f = c;  endmodule
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

传统的Verilog智慧全都错了。使用阻塞分配给局部变量没有问题。但是,切勿将阻塞分配用于同步通信,因为这是不确定的。

时钟总是块内的非阻塞分配将始终根据语义来推断触发器。

时钟内的阻塞分配是否始终阻塞会触发触发器,这完全取决于其使用方式。如果可以在分配变量之前读取该变量,则将推断出一个触发器。否则,这就像一个临时变量,它将导致一些组合逻辑。


查看完整回答
反对 回复 2019-09-24
  • 3 回答
  • 0 关注
  • 695 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信