FPGA的wire和reg類型變量

        1:wire型

        網絡類型變量表示結構實體(如門)之間的物理鏈接。網絡類型變量不能存儲值,並且它必需要受到驅動器(如門或連續賦值語句,如assign)的驅動。若是沒有驅動器鏈接到網絡類型變量上,則該變量就是高阻的,即值爲Z。經常使用的網絡類型變量有wire和tri型。這兩種網絡類型變量都是用於鏈接器件單元。它們有相同的語法格式和功能。之因此提供wire和tri兩種網絡類型變量,是爲了與模型中所使用的變量的實際狀況一致。 wire型變量表示單個門驅動或連續賦值語句(如assign)驅動的網絡型數據,tri型變量多驅動器驅動的網絡類型數據。若是wire和tri型變量沒有定義邏輯強度,在多驅動源的狀況下,邏輯值會發生衝突,從而產生不肯定值。網絡

        wire型數據經常使用來表示用以assign賦值語句指定的組合邏輯信號。VERILOG程序模塊中的輸入、輸出信號默認爲wire型。wire型信號能夠用做輸入,也能夠用做assign語句或實例元件的輸出。格式以下:spa

wire a; //定義一個1位的wire型變量

wire[7:0] a;//定義一個8位的wire型變量

wire[4:1] a;//定義了二個4位的wire型變量

        2:reg型

        寄存器是數據存儲單元的抽象。寄存器數據類型的關鍵字是reg。經過賦值語句能夠改變寄存器存儲的值,其做用與觸發器儲存的值至關。設計

reg型數據經常使用來表示"always"模塊內的指定信號,常表明觸發器。一般,在設計中要由always模塊中的行爲描述語句來表達邏輯關係。在always模塊中內被賦值的每個信號都必需要定義成reg型。

reg a;//定義一個1位的reg型數據變量

reg[3:0] a;//定義一個4位的reg型數據數據類型

reg[4:1] a,b; //定義二個4位的reg型數據語法

reg型數據的初始值是不肯定的。reg型數據能夠爲正值,也能夠爲負值。但當一個reg型數據是表達式中的操做數據時,它的值被看成無符號數值,即正值。如reg[3:0] a被用做操做數表達式中時,-1表示+15.

        注意:reg型中表示被定義的信號將用在always模塊內,理解這點很重要。並非說reg型信號必定是寄存器或觸發器的輸出,雖然reg經常是寄存器或觸發器的輸出,但並不必定老是這樣。

相關文章
相關標籤/搜索