reg只能用在always塊內:
嘗試在modelsim中編譯:
reg [3:0] c;
c <= 4'b1100;
//報錯如第一張圖
reg [3:0] c;
c = 4'b1100;
//報錯如第二張圖
always塊內只能用reg:
大體來說,reg和wire類似於C、C++的變量,但若此變量要放在begin...end之內,則該變量只能是reg型;在begin...end之外,則用wire型; 使用wire型時,必須搭配assign;reg型可以不用。 input、output、inout預設值都是wire型。 在Verilog中使用reg型,並不表示綜合出來就是暫存器register:在組合電路中使用reg,組合後只是net;在時序電路中使用reg,合成後纔是以Flip-Flop形式表示的register觸發器。(藍色的這部分文字出自這篇博客https://blog.csdn.net/u012158332/article/details/80965063)