verilog - 在 Verilog 中赋值 : difference between assign, <= 和 =

标签 verilog assign

我刚刚开始学习 Verilog,我从不同的来源看到了这三行。我对三者之间的区别感到困惑:

  • c <= a&b;
  • 分配 c = ~a;
  • c = 1'b0;

  • 这些行似乎为 c 分配了一个值,但有什么区别?谢谢。

    最佳答案

    1) <= 非阻塞,在时钟的每个上升沿执行。这些是并行评估的,因此无法保证顺序。这方面的一个例子是寄存器。

    2) assign = 持续分配到 always 语句之外。当 RHS 改变时,LHS 的值会更新。

    3) = 阻塞赋值,在always 语句中强制执行顺序。

    关于verilog - 在 Verilog 中赋值 : difference between assign, <= 和 =,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27435703/

    相关文章:

    c++ - C++中对象的赋值

    r - 通过 vector 分配多个列而不回收

    c - 在多个结构指针和数组中为结构指针的成员赋值

    java - 用分母拆分字符串不起作用

    verilog - RISC-V 异常与中断

    verilog - Vivado 2016.2 模拟器不支持 System Verilog $cast 或 $sformatf

    r - 将代码块放在 if 语句中会更改分配行为 R

    verilog - systemverilog 中逻辑语句的非常量索引

    verilog - 实现处理器(mips单周期)

    hardware - 移位寄存器与多路复用器