Verilog vs Vhdl差異

目前全球以 Verilog 為主流硬體描述語言,而 VHDL 則主要在歐洲較為普及。兩者之間最大的差異在於 blocking assignment 的概念及應用。

Verilog 的特性

1.Blocking 與 Non-blocking Assignment

      Blocking Assignment (=)

      • 程式按照從上到下的順序執行,類似於一般程式語言中的順序執行。
      • 適合描述組合邏輯或順序執行的運算。
      • 範例:
      • a = b; // 先執行
      • c = a; // 再執行
      • 最後a=b=c

      Non-blocking Assignment (<=)

      • 程式中的多個運算可同時執行,與執行順序無關,適合描述時序邏輯。
      • 範例:
      • a <= b; // b 的值在執行時立即保存
      • c <= a; // c 的值不受執行順序影響
      • 最後c為原本的a,a為b

      2.方便的 Testbench 撰寫

      Verilog 支援 initial 搭配 beginend,能快速撰寫與模擬 Testbench。

      設rst為負緣觸發,假設單位時間為ns

          initial begin
              rst = 0;     //電路重置
              #10 rst = 1; //電路啟動
              #90 $finish; //在100ns結束模擬
          end

      待續……

      發佈留言

      發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *