天天看點

Verilog 多路選擇器(MUX),鎖存器(Latch)推薦寫法

Veriog中二選一MUX推薦寫法:

always @(a, b, sel)
   if (sel == 1'b1)
         z = a;
   else  z = b;
           

        MUX為組合邏輯,用always來描述的時候,敏感變量清單中要包含在塊中出現的所有變量,如上面代碼中的 “ a,b,sel ”,如果不包含 sel ,則代表了一個抽象意義上的鎖存器,它鎖存的是選擇信号,而不是輸入值。

本文引用自:https://blog.csdn.net/llxxyy507/article/details/82811992

Verilog中D鎖存器的推薦寫法:

always @ (D, sel)
   if  (sel == 1'b1)
       Q  =  D;
           

     上面的代碼中,if 和 else 沒有配對,系統綜合的時候會預設在 sel == 1'b0 的情況下,輸出是不變的 ,即 Q = Qn ,故上面的代碼會被綜合成D鎖存器,sel 作為 D 鎖存器的使能端。

繼續閱讀