比較reg型和wire型變量的區(qū)別 eda中wire和reg本質(zhì)區(qū)別?
eda中wire和reg本質(zhì)區(qū)別?wire和reg信號類型之間的區(qū)別;1.接線數(shù)據(jù)通常用于表示assign關(guān)鍵字指定的組合邏輯信號。默認(rèn)情況下,模塊的輸入和輸出端口類型都是有線類型。默認(rèn)初始值是z。2
eda中wire和reg本質(zhì)區(qū)別?
wire和reg信號類型之間的區(qū)別;
1.
接線數(shù)據(jù)通常用于表示assign關(guān)鍵字指定的組合邏輯信號。默認(rèn)情況下,模塊的輸入和輸出端口類型都是有線類型。默認(rèn)初始值是z。
2.
Reg-type寄存器類型。always模塊中分配的信號必須定義為reg類型,它代表觸發(fā)器。
3.
默認(rèn)初始值是x:
Reg相當(dāng)于一個存儲單元,wire相當(dāng)于一個物理連接。
Verilog中變量的物理數(shù)據(jù)可以分為線性型和寄存器型。定義這兩類變量時,要設(shè)置位寬,默認(rèn)值為1位。變量的每一位可以是0、1、x、z,其中x表示沒有預(yù)設(shè)初始狀態(tài)的變量,或者由兩個或多個驅(qū)動設(shè)備試圖將其設(shè)置為不同值而導(dǎo)致的線性變量。z代表高阻態(tài)或浮動量。
4.
線性數(shù)據(jù),包括線、棒、字等。,當(dāng)由多個激勵源驅(qū)動時,不同的線性數(shù)據(jù)有其自己的解析方法來確定它們的最終值。
5.
兩者的區(qū)別在于:
寄存器數(shù)據(jù)保持最后一次賦值,而線性數(shù)據(jù)需要連續(xù)驅(qū)動。輸入端口可以用net/reg驅(qū)動,但輸入端口只能是net,比如a b amp c,輸入端口A只能是net,但它的驅(qū)動器B和C可以是net/reg。輸出端口可以是net/reg類型,輸出端口只能驅(qū)動net,比如a b amp c,模塊的輸出端口B和C可以是net/reg類型,但是它們驅(qū)動的A必須是net類型;如果輸出端口被分配在進(jìn)程塊中(總是/初始),它是reg類型,如果它被分配在進(jìn)程塊之外,它是net類型。用關(guān)鍵字inout聲明一個雙向端口。inout端口不能聲明為寄存器類型,而只能聲明為網(wǎng)絡(luò)類型。
6.
Wire代表直通,即只要輸入發(fā)生變化,輸出立即無條件反映;Reg意味著輸出必須有一個觸發(fā)器來反映輸入。
7.
如果未指定,則默認(rèn)為1位導(dǎo)線類型。特別指定線類型,它可以是多位或使程序可讀。焊線只能連續(xù)分配,而reg只能在初始和始終時分配。Wire用于連續(xù)賦值語句,reg用于過程賦值語句。
8.
在連續(xù)賦值語句中,表達(dá)式右邊的計算結(jié)果可以立即更新左邊的表達(dá)式。在理解上,相當(dāng)于在一個邏輯之后直接連接一條線,對應(yīng)表達(dá)式的右邊,這條線對應(yīng)導(dǎo)線。在過程賦值語句中,表達(dá)式右邊的計算結(jié)果在某種條件的觸發(fā)下放入一個變量中,這個變量可以聲明為reg類型。根據(jù)不同的觸發(fā)條件,進(jìn)程賦值語句可以建模不同的硬和軟。元件結(jié)構(gòu):如果這個條件是時鐘的上升沿或下降沿,那么這個硬件模型就是一個觸發(fā)器;如果這個條件是信號的高電平或低電平,那么這個硬件模型就是一個鎖存器;如果這個條件是賦值語句右邊任意操作數(shù)的變化,那么這個硬件模型就是組合邏輯。
9.
線類型變量通常是一根線。
always塊有兩種情況:reg變量在always后的敏感表中是(a或b或c)的形式,即沒有時鐘邊沿,在always后的敏感表中是(posedge clk)的形式,即有邊沿。當(dāng)它被合成時,它通常是時序邏輯,并且將包含觸發(fā)器。
10.
在設(shè)計中,一般來說,你不 t不知道上一級是寄存器輸出還是組合邏輯輸出,所以是這一級的一根線,也就是線類型。輸出信號由你決定是寄存器輸出還是組合邏輯輸出,導(dǎo)線型還是r
wire和reg的區(qū)別?
焊線和reg類型之間的區(qū)別:
接線數(shù)據(jù)通常用于表示assign關(guān)鍵字指定的組合邏輯信號。默認(rèn)情況下,模塊的輸入和輸出端口類型都是有線類型。默認(rèn)初始值是z。
Reg-type寄存器類型。always模塊中分配的信號必須定義為reg類型,它代表觸發(fā)器。
默認(rèn)的初始值是x。
Reg相當(dāng)于一個存儲單元,wire相當(dāng)于一個物理連接。
Verilog中變量的物理數(shù)據(jù)可以分為線性型和寄存器型。定義這兩類變量時,要設(shè)置位寬,默認(rèn)值為1位。變量的每一位可以是0、1、x、z,其中x表示沒有預(yù)設(shè)初始狀態(tài)的變量,或者由兩個或多個驅(qū)動設(shè)備試圖將其設(shè)置為不同值而導(dǎo)致的線性變量。z代表高阻態(tài)或浮動量。
線性數(shù)據(jù),包括線、棒、字等。,當(dāng)由多個激勵源驅(qū)動時,不同的線性數(shù)據(jù)有其自己的解析方法來確定它們的最終值。
兩者的區(qū)別在于寄存器數(shù)據(jù)保持最后一次賦值,而線性數(shù)據(jù)需要連續(xù)驅(qū)動。
輸入端口可以用net/reg驅(qū)動,但是輸入端口只能是net,比如a b c,輸入端口A只能是net類型,但是它的驅(qū)動B和C可以是net/reg類型;輸出端口可以是net/reg類型,輸出端口只能驅(qū)動net,比如a b c,模塊的輸出端口B和C可以是net/reg類型,但是它們驅(qū)動的A必須是net類型;如果輸出端口在進(jìn)程塊中(總是/初始l)中的賦值是reg類型,進(jìn)程塊外的賦值是net類型。用關(guān)鍵字inout聲明一個雙向端口。inout端口不能聲明為寄存器類型,而只能聲明為網(wǎng)絡(luò)類型。
Wire代表直通,即只要輸入發(fā)生變化,輸出立即無條件反映;Reg意味著輸出必須有一個觸發(fā)器來反映輸入。
如果未指定,則默認(rèn)為1位導(dǎo)線類型。特別指定線類型,它可以是多位或使程序可讀。焊線只能連續(xù)分配,而reg只能在初始和始終時分配。Wire用于連續(xù)賦值語句,reg用于過程賦值語句。
在連續(xù)賦值語句中,表達(dá)式右邊的計算結(jié)果可以立即更新左邊的表達(dá)式。在理解上,相當(dāng)于在一個邏輯之后直接連接一條線,對應(yīng)表達(dá)式的右邊,這條線對應(yīng)導(dǎo)線。在過程賦值語句中,表達(dá)式右邊的計算結(jié)果在某種條件的觸發(fā)下放入一個變量中,這個變量可以聲明為reg類型。根據(jù)不同的觸發(fā)條件,進(jìn)程賦值語句可以建模不同的硬件結(jié)構(gòu):如果這個條件是時鐘的上升沿或下降沿,那么這個硬件模型就是一個觸發(fā)器;如果這個條件是信號的高電平或低電平,那么這個硬件模型就是一個鎖存器;如果這個條件是賦值語句右邊任意操作數(shù)的變化,那么這個硬件模型就是組合邏輯。
線類型變量一般是一根線;
always塊有兩種情況:reg變量在always后的敏感表中是(a或b或c)的形式,即沒有時鐘邊沿,在always后的敏感表中是(posedge clk)的形式,即有邊沿。當(dāng)它被合成時,它通常是時序邏輯,并且將包含觸發(fā)器。
在設(shè)計中,一般來說,你不 t不知道上一級是寄存器輸出還是組合邏輯輸出,所以是這一級的一根線,也就是線類型。輸出信號由你決定是寄存器輸出還是組合邏輯輸出,導(dǎo)線型還是reg型。但總的來說,整個設(shè)計的外部輸出(也就是頂層模塊的輸出)需要寄存器輸出,穩(wěn)定,扇出能力好。