一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺談Verilog中wire和reg變量類型的區(qū)別

454398 ? 來源:CSDN博主 ? 作者:MangoWen ? 2020-11-13 15:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

wire 和reg是Verilog程序里的常見的兩種變量類型,他們都是構(gòu)成verilog程序邏輯最基本的元素。正確掌握兩者的使用方法是寫好verilog程序的前提。但同時(shí),因?yàn)樗麄冊诖蠖鄶?shù)編程語言中不存在,很多新接觸verilog語言的人并不能很清楚的區(qū)別兩種變量的不同之處。這里簡單對他們做一個(gè)比較,方便在編程時(shí)區(qū)別使用。

功能和狀態(tài)

Wire主要起信號間連接作用,用以構(gòu)成信號的傳遞或者形成組合邏輯。因?yàn)闆]有時(shí)序限定,wire的賦值語句通常和其他block語句并行執(zhí)行。

Wire不保存狀態(tài),它的值可以隨時(shí)改變,不受時(shí)鐘信號限制。

除了可以在module內(nèi)聲明,所有module的input 和output默認(rèn)都是wire型的。

Reg是寄存器的抽象表達(dá),作用類似通常編程語言中的變量,可以儲存數(shù)值,作為參與表達(dá)式的運(yùn)算,通常負(fù)責(zé)時(shí)序邏輯,以串行方式執(zhí)行。

Reg可以保存輸出狀態(tài)。狀態(tài)改變通常在下一個(gè)時(shí)鐘信號邊沿翻轉(zhuǎn)時(shí)進(jìn)行。

賦值方式

Wire有兩種賦值方式

1.在定義變量時(shí)賦初值,方式是用=。如果之后沒有再做賦值,初值會一直保留,(是否可以給邏輯?)

wire wire_a = 1’b0;

2.用assign語句賦值,等式右邊可以是wire,reg,一個(gè)常量或者是邏輯運(yùn)算

Wire wire_a;
Wire wire_b;
Wire wire_c;
Reg reg_a;
assign wire_b = wire_a;
assign wire_c =reg_a;
assign wire_d =wire_b & wire_c;

如果不賦值,wire的默認(rèn)狀態(tài)是高阻態(tài),即z。

對reg的使用通常需要有觸發(fā)條件,在always的block下進(jìn)行。觸發(fā)條件可以是時(shí)鐘信號上升沿。賦值語句可以是=或者

Wire wire_a;
Wire wire_b;
Reg reg_a;
Reg reg_b;
Always @( posedge clk)
Begin
Reg_b =reg_a;
Reg_c = wire_a | wire_b;
end

Reg在聲明時(shí)候不賦初值。未賦值的reg變量處于不定態(tài),即x。

使用方式

在引用一個(gè)module時(shí),輸入端口可以是wire型,也可以reg型。這里可以把對input的賦值看作一個(gè)assign語句,使用的變量相當(dāng)于等號右邊的變量,所以兩者都可以。

而對于輸出端口,必須使用reg型,而不能是wire型。同樣用assign的角度考慮,module的輸出在等號右邊,而使用的變量成了等號左邊,assign語句等號左邊只能是wire型。

位寬

這是個(gè)使用注意事項(xiàng)。所有的wire和reg在聲明時(shí)如果不做特殊聲明,只有1位。這個(gè)對于熟悉其他編程語言的人是一個(gè)容易犯錯(cuò)的地方。

執(zhí)行

wire wire_a = 4’he;

語句最后得到的wire_a是0x1,而不是0xe。因?yàn)閣ire_a只取了0xe的最低位的值而省略掉了其他值。所以正確的語句應(yīng)該是

wire[3:0] wire_a = 4’he;

這樣wire_a輸出的結(jié)果才是一個(gè)0xe。

小結(jié)

這篇文章從功能,變量狀態(tài),賦值方式,使用方式等角度討論了wire和reg變量類型的區(qū)別。并且給出了一個(gè)在verilog中常見的使用錯(cuò)誤及解決方法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5434

    瀏覽量

    124467
  • Verilog
    +關(guān)注

    關(guān)注

    29

    文章

    1367

    瀏覽量

    112268
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1956

    瀏覽量

    36648
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    VHDL與verilogif判斷條件的一點(diǎn)小區(qū)別

    ,如果是boolean類型就能if(not a)了。verilog:if內(nèi)容不論是什么類型,比如reg 或者wire ,都可以寫成if(!a
    發(fā)表于 04-09 09:24

    wirereg 區(qū)別

    assign賦值b. 定義為reg, 只在always @(a b c d) block賦值在verilog語言中的reg 類型只是語法意
    發(fā)表于 02-20 10:51

    verilog inout的 用法

    端口使用.link_data可以通過相關(guān)電路來控制.2 編寫測試模塊時(shí),對于inout類型的端口,需要定義成wire類型變量,而其它輸入端口都定義成
    發(fā)表于 01-24 12:27

    【小白求問】verilogreg類型變量可以和integer類型變量相乘嗎?

    RT,已知integer變量為正數(shù),那么和兩個(gè)reg變量相乘有區(qū)別嗎?謝謝!
    發(fā)表于 11-29 12:34

    關(guān)于verilog 語句中變量類型的確定,例:請指出下面幾條語句中變量類型:8.1) assign A=B; 8.2) always #1 Count=C+1;

    regwire類型區(qū)別和用法,還有regwire
    發(fā)表于 01-06 17:20

    FPGA小技巧,在設(shè)計(jì)文件,如何確定信號是reg型還是wire型?

    在設(shè)計(jì)文件,如何確定信號是reg型還是wire型?當(dāng)我們使用Verilog時(shí),對于信號定義為reg型還是
    發(fā)表于 10-21 10:47

    【技巧分享】在設(shè)計(jì)文件,如何確定信號是reg型還是wire型?

    當(dāng)我們使用Verilog時(shí),對于信號定義為reg型還是wire型比較混亂,那么今天我們就來講一講如何快速的進(jìn)行信號定義。在Verilog
    發(fā)表于 03-01 23:58

    基本Verilog變量有線網(wǎng)類型和寄存器類型

    邏輯,應(yīng)在敏感信號表列出所有的輸入信號;7、所有的內(nèi)部寄存器都應(yīng)該可以被復(fù)位;8、用戶自定義原件(UDP元件)是不能被綜合的。一:基本Verilog變量有線網(wǎng)
    發(fā)表于 07-29 06:10

    Verilog 變量位的數(shù)值類型

    Verilog 變量位的數(shù)值類型Verilog變量
    發(fā)表于 08-04 09:42

    Verilog 變量聲明與數(shù)據(jù)類型

    Verilog 變量聲明與數(shù)據(jù)類型二上節(jié)介紹了wirereg數(shù)據(jù)類型及其用法,并對
    發(fā)表于 08-06 09:21

    Verilog 變量聲明與數(shù)據(jù)類型

    Verilog 變量聲明與數(shù)據(jù)類型Verilog語法中最基本的數(shù)據(jù)類型有 線網(wǎng)(wire),寄
    發(fā)表于 08-10 14:01

    FPGA的視頻教程之Verilogregwire的不同點(diǎn)詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA的視頻教程之Verilogregwire的不同點(diǎn)詳細(xì)資料說明。
    發(fā)表于 03-26 16:55 ?5次下載
    FPGA的視頻教程之<b class='flag-5'>Verilog</b><b class='flag-5'>中</b><b class='flag-5'>reg</b>和<b class='flag-5'>wire</b>的不同點(diǎn)詳細(xì)資料說明

    比較VerilogWireReg的不同之處

    wireregVerilog程序里的常見的兩種變量類型,他們都是構(gòu)成verilog程序邏輯
    的頭像 發(fā)表于 03-08 17:18 ?1.3w次閱讀

    不同情況下,在Verilog什么時(shí)候用wire,什么時(shí)候用reg

    Verilog何時(shí)用wire,何時(shí)用regVerilog HDL
    的頭像 發(fā)表于 09-28 11:26 ?1.5w次閱讀
    不同情況下,在<b class='flag-5'>Verilog</b><b class='flag-5'>中</b>什么時(shí)候用<b class='flag-5'>wire</b>,什么時(shí)候用<b class='flag-5'>reg</b>

    regwire區(qū)別

    1,regwire區(qū)別: 相同點(diǎn): 都能表示一種類型類型。 不同點(diǎn): wire 連線型數(shù)據(jù),
    的頭像 發(fā)表于 07-03 10:00 ?1.5w次閱讀