verilog中reg只能在always塊內使用_always塊能只能用reg

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章