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

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

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

比較Verilog中Wire和Reg的不同之處

汽車(chē)玩家 ? 來(lái)源:CSDN ? 作者:MangoWen ? 2020-03-08 17:18 ? 次閱讀

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

功能和狀態(tài)

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

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

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

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

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

賦值方式

Wire有兩種賦值方式

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

wire wire_a = 1’b0;

2.用assign語(yǔ)句賦值,等式右邊可以是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。

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

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型。這里可以把對(duì)input的賦值看作一個(gè)assign語(yǔ)句,使用的變量相當(dāng)于等號(hào)右邊的變量,所以?xún)烧叨伎梢浴?/p>

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

位寬

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

執(zhí)行

wire wire_a = 4’he;

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

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

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

小結(jié)

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

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

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119212
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1333

    瀏覽量

    109721
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    繼電器和接觸器有什么不同之處?

    繼電器和接觸器是兩種常用的電氣元件,它們?cè)陔娐?b class='flag-5'>中起著非常重要的作用。雖然它們?cè)谀承┓矫嬗邢嗨?b class='flag-5'>之處,但它們之間還是存在一些不同之處。以下是對(duì)繼電器和接觸器的詳細(xì)比較: 定義和工作原理 繼
    的頭像 發(fā)表于 06-21 10:10 ?439次閱讀

    智能制造與傳統(tǒng)制造有什么不同之處

    、生產(chǎn)方式、管理模式等方面存在很大的不同,這些不同之處正是智能制造的優(yōu)勢(shì)和特點(diǎn)。 二、設(shè)計(jì)理念的不同 傳統(tǒng)制造設(shè)計(jì)理念 傳統(tǒng)制造的設(shè)計(jì)理念主要側(cè)重于產(chǎn)品的功能性、穩(wěn)定性和成本效益。在設(shè)計(jì)過(guò)程,設(shè)計(jì)師需要充分考
    的頭像 發(fā)表于 06-07 15:36 ?1863次閱讀

    單片機(jī)和plc有什么相同和不同之處

    某些方面具有相似之處,但在許多關(guān)鍵方面也存在顯著差異。本文將詳細(xì)探討單片機(jī)和PLC的相同和不同之處。 一、相同之處 控制功能:?jiǎn)纹瑱C(jī)和PLC都具有控制功能,可以對(duì)各種設(shè)備和系統(tǒng)進(jìn)行控制。它們可以接收輸入信號(hào),處理這些信號(hào),然后輸
    的頭像 發(fā)表于 06-06 14:05 ?695次閱讀

    AUTOSAR MCAL驅(qū)動(dòng)程序與演示程序的Libraries的驅(qū)動(dòng)程序有什么不同之處?

    1.關(guān)于 AUTOSAR MCAL 驅(qū)動(dòng)程序 與演示程序的 Libraries 的驅(qū)動(dòng)程序 有什么不同之處? 2.AUTOSAR MCAL 驅(qū)動(dòng)程序是否包含了 TC397 安全菜
    發(fā)表于 05-17 06:55

    verilog與其他編程語(yǔ)言的接口機(jī)制

    Verilog是一種硬件描述語(yǔ)言,用于描述數(shù)字電路的行為和結(jié)構(gòu)。與其他編程語(yǔ)言相比,Verilog具有與硬件緊密結(jié)合的特點(diǎn),因此其接口機(jī)制也有一些與眾不同之處。本文將詳細(xì)介紹Verilog
    的頭像 發(fā)表于 02-23 10:22 ?471次閱讀

    verilog雙向端口的使用

    輸出信號(hào)。本文將詳細(xì)介紹Verilog雙向端口的使用,并提供示例說(shuō)明其在實(shí)際應(yīng)用的作用。 第一部分:雙向端口的定義和語(yǔ)法 在Verilog,可以使用
    的頭像 發(fā)表于 02-23 10:18 ?978次閱讀

    光纖和光纜有何不同之處

    很多人會(huì)有這樣的疑問(wèn),光纖和光纜有何不同之處?主要是因?yàn)楣饫w和光纜這兩個(gè)名詞容易引起混淆。在嚴(yán)格的定義下,光纖和光纜是兩種不同的東西,然而在現(xiàn)實(shí)生活,許多人仍然會(huì)混淆這兩者。為了更好地理解光纖和光纜之間的區(qū)別,我們一起來(lái)看一下。
    的頭像 發(fā)表于 01-15 17:01 ?676次閱讀

    Linux系統(tǒng)文件比較工具集合

    在Linux系統(tǒng),文件比較是一種常見(jiàn)的任務(wù),用于比較兩個(gè)文件之間的差異。文件比較可以幫助我們找出兩個(gè)文件的不同之處,或者確定它們是否完全相
    的頭像 發(fā)表于 01-02 13:53 ?585次閱讀

    塑殼斷路器接地故障保護(hù)與剩余電流保護(hù)有哪些不同之處?

    塑殼斷路器接地故障保護(hù)與剩余電流保護(hù)有哪些不同之處?我需要詳盡、詳實(shí)、細(xì)致的最少1500字的文章 塑殼斷路器是一種常用的電氣保護(hù)設(shè)備,在電路具有重要的作用。在使用塑殼斷路器時(shí),我們通常會(huì)遇到接地
    的頭像 發(fā)表于 12-26 13:53 ?853次閱讀

    單模和多模光纖跳線(xiàn)有哪些不同之處

    單模和多模光纖跳線(xiàn)有哪些不同之處? 單模和多模光纖跳線(xiàn)是兩種不同類(lèi)型的光纖連接方式,它們?cè)趥鬏斝阅?、工作距離、適用場(chǎng)景等方面存在著一些不同之處。下面將詳細(xì)介紹單模和多模光纖跳線(xiàn)的區(qū)別,以供參考。 一
    的頭像 發(fā)表于 12-07 10:09 ?1894次閱讀

    噪音抑制與主動(dòng)降噪:有何不同之處?

    噪音抑制與主動(dòng)降噪:有何不同之處
    的頭像 發(fā)表于 11-30 17:29 ?530次閱讀
    噪音抑制與主動(dòng)降噪:有何<b class='flag-5'>不同之處</b>?

    深度學(xué)習(xí)技術(shù)與邊緣學(xué)習(xí)技術(shù)的不同之處

    的側(cè)重點(diǎn)不同,它們之間存在著差異。本文將幫助您深入理解深度學(xué)習(xí)技術(shù)與邊緣學(xué)習(xí)技術(shù)的不同之處,以便您能更有效地將它們應(yīng)用于您的行業(yè)領(lǐng)域,針對(duì)性地解決各種需求問(wèn)題。
    的頭像 發(fā)表于 11-17 10:44 ?477次閱讀

    單工通信、半雙工通信和全雙工通信三種方式的不同之處

    首先,不要被生澀的文字嚇到了,通訊在我們?nèi)粘?b class='flag-5'>中通訊是無(wú)處不在的,三種通訊方式也是隨處可見(jiàn)。下面分別舉例說(shuō)明三種方式的不同之處以及在工業(yè)和電子設(shè)備上常用的一些案例。
    的頭像 發(fā)表于 11-14 16:09 ?3841次閱讀
    單工通信、半雙工通信和全雙工通信三種方式的<b class='flag-5'>不同之處</b>

    混頻器與變頻器的不同之處

    混頻器和變頻器都是電子電路中常見(jiàn)的元件,用于處理頻率。它們有一些相似之處,也有一些不同之處。
    的頭像 發(fā)表于 11-13 09:34 ?979次閱讀

    考慮x和z在verilog條件語(yǔ)句中的使用情況

    首先,考慮x和z在verilog條件語(yǔ)句中的使用情況,然后我們?cè)倏紤]在verilog中用x和z給其他reg/wire賦值的情況。
    的頭像 發(fā)表于 11-02 09:40 ?1405次閱讀
    考慮x和z在<b class='flag-5'>verilog</b>條件語(yǔ)句中的使用情況