FPGA_VerilogHDL - reg 和 wire

reg 和 wire 的用法討論

1. 線路 (Nets) : 代表連線,不能儲存內容,代表閘或模組之間的連線,不可以被指定 (assign)。

範例:wire、input、output。

2. 暫存 (Reg) :代表存儲空間,就像暫存器一樣,儲存某值,直到下次被指定 (assign) 為止。

範例:reg、input reg、output reg。(可以用來代表正反器 latch、flip-flop)。

注意:Reg 不可與某個元件連結 (Never connected to something)。

備註;

reg和wire的主要區別是,reg類型的訊號只能在過程塊(後面會談到)中賦值,而wire類型的訊號只能在過程塊外賦值。這兩種訊號類型都可以出現在過程塊內部和外部的賦值運算符右邊。

使用關鍵字reg並不一定意味著編譯器會製作一個暫存器,理解這一點是非常重要的。清單2的程式碼中有一個reg類型8位元寬的內部訊號out。該模組使用暫存器源於always模組(過程塊的一種)的編程方式。值得注意的是,訊號a是一個wire類型,因此只能在連續賦值(continuous assignment)語句中賦值,而reg類型的out訊號只能在always塊中賦值。

引用資料:

Verilog 基礎