verilog變數reg和wire問題

時間 2021-05-02 11:30:44

1樓:匿名使用者

c3是reg型,你這個主函式是個testbench,子函式a,b,cin在testbench裡面對應的測試訊號是reg型,輸出sum,cout是wire型,你的答案是錯的,reg c1,c2,c3 ; wire c4,c5;

2樓:匿名使用者

verilog裡一般不宣告輸出型別的話 預設是wire型的如果你想在輸出處寄存一下:比如使用always語句,則必須宣告為reg型別

wire是線網,就是相當於實際中的連線線,你想assign的話就是直接連線,就是用wire型,他的值是隨時變化的。比如你想寄存一下,讓他在時鐘邊沿才變化就需要reg型別了

你的問題應該是主要討論下wire型和reg型的應用區別吧另外,團idc網上有許多產品**,便宜有口碑

3樓:長安小豆

輸入埠可以由wire/reg驅動,但輸入埠只能是wire;輸出埠可以使wire/reg型別,輸出埠只能驅動wire。

1.a,b,cin是輸入,只能是wire型的。

2.sum、cout是輸出。如果這個加法器,裡面用閘電路搭建,用assign直接寫邏輯函式,那麼輸出就是wire型的。

如果這是個用always@(a or b orcin)寫的,其實就是只有輸入變化輸出才重新計算,那麼就是說輸入都不變化的時候是要保持之前的值的,所以需要用reg型。

3. 輸入埠a,b,cin只能是wire型,但是在電路中他們是被前端其他訊號c1,c2,c3驅動的。那麼是可以由wire或者reg訊號驅動的。

舉個例子,如果cin前面連線個開關(c3),就是wire型的,如果他連線的是乙個暫存器的輸出(例如加法器輸出為reg時的級聯),那就是reg型的。

4樓:褐雨黑桐

你只要記住always裡賦值用reg,assign裡面賦值用wire

verilog中reg和wire的區別

5樓:匿名使用者

首先要先清楚一點,verilog是硬體描述語言,其最終是為了生成乙個電路,所以它的變數型別是根據實際電路來決定的。

從名字理解:

wire,線型,實際上在電路中的作用就是一根連線;

reg,暫存器型,在電路中就作為暫存器存在。

連線和暫存器是構成數位電路的基本結構,這也是verilog這兩種變數型別的**。

當然,在verilog的公升級版system verilog中提供了更多的,更一些抽象化的變數型別

verilog中如何將wire型別的變數a 與reg型別的變數b進行比較?

6樓:曾義和

先在always語句定義:reg a

之後直接再語句裡面比較:a與b的大小

7樓:匿名使用者

你把a先存入暫存器兩個資料型別就相同了!然後就可以進行比較了

verilog中的reg型變數,wire型變數初值是多少

8樓:單詞用記嗎

reg型變數需要賦初值,否則會在reset前是x,具體值要看具體的設計,reg [7:0] a='h0;wire最好不要賦初值,賦值會和assign造成多驅動的問題,從而產生x,就是wire a=0;assign a=b;那麼會在b=1的時候a的波形是x。若是後面不用assign賦值是沒問題的(以上屬於個人觀點)

9樓:匿名使用者

reg型是x,如果如果是reg型需要給他們賦初值才行,wire一般是不需要的

10樓:旗語彤潘漫

a、b**時是紅線;上板時不定,一般情況下是0。需要給其賦初值可以定義時賦值,如rega=

1;或者always塊中賦值

verilog中多次呼叫module例項

連睿子車雨靈 例項模組都是要給乙個名字的,但你可以給和模組相同的名字一般不推薦這麼做,因為有些模組會例化多次,通常例化的名字是根據模組名拓展的 例如乙個模組叫 clk gen 例化時可以 clk gen clk gen inst 褐雨黑桐 你寫mem m addr,data,out 就是呼叫了,程式...

Verilog中,符號是什麼意思

5的概念是延遲的意思。但是是行為級描述 綜合時將被過濾。一般 數字的組合在 器中產生一定的延遲。延遲結構如下 首先 timescale 1ns 100ps 這個是整個延遲的定義。timescale是關鍵字,然後後面的兩位時間 第一位是用來表示你的延遲因子的。第二位用來表示步進時間。舉例 timesc...

verilog有關wire與reg型別的一道題

簡單 cin是input,只能是wire型別 cout是output,可以是wire型別,也可以說reg型別。c3是test內部連線到cin上的訊號,由於激勵的載入,因而可以說wire,也可以說reg型別。c5是test內部直接連線到cout上的訊號,只能是wire型別。wire 線性訊號變數 re...