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

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

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

不同情況下,在Verilog中什么時候用wire,什么時候用reg

電子工程師 ? 來源:FPGA設計論壇 ? 作者:FPGA設計論壇 ? 2020-09-28 11:26 ? 次閱讀

Verilog中何時用wire,何時用reg?

Verilog HDL中的變量可以定義為wire型和reg型,這兩種類型的變量在定義時要設置位寬,缺省為1位,變量的每一位可以取0、1、x、z,其中x代表未預置初始狀態(tài),z代表高阻狀態(tài)。
reg相當于存儲單元,wire型相當于物理連線,即reg型變量保持最后一次的賦值,而wire型變量需要持續(xù)的驅(qū)動。

那么,在Verilog HDL中何時用wire,何時用reg型變量呢?
wire為連線,本身不帶邏輯性,所以輸入什么輸出就是什么
若變量放在begin…end內(nèi),則聲明為reg型;否則,聲明為wire型
在always塊中的變量,只能是reg型
使用wire型變量時,必須搭配assign
input、output、inout聲明的變量,默認都是wire型

若wire和reg用錯了,編譯器會提醒,一般不用太擔心,下面再從仿真和綜合的角度解釋一下。


簡單來說,硬件描述語言有兩種用途:仿真、綜合,對于wire和reg的理解,也可以從這兩個角度來考慮。

從仿真的角度來說,HDL語言面對的是編譯器,相當于軟件思路,這時:
wire對應于連續(xù)賦值,如assign
reg對應于過程賦值,如always塊、initial塊

從綜合的角度來說,HDL語言面對的是綜合器,要從電路的角度來考慮,這時:
wire型的變量綜合出來一般是一根導線。
reg變量在always塊中有兩種情況:(1) always后的敏感表中是(a orb or c)形式的,也就是不帶時鐘邊沿的,綜合出來還是組合邏輯。(2) always后的敏感表中是(posedgeclk)形式的,也就是帶邊沿的,綜合出來一般是時序邏輯,會包含觸發(fā)器。


在設計中,一般來說我們并不知道輸入信號是來自上一級寄存器的輸出還是組合邏輯的輸出,那么對于本級而言就是一根導線,也就是wire型。而輸出信號則由你自己來決定是寄存器輸出還是組合邏輯輸出,wire型和reg型都可以,但通常整個設計的外部輸出(即最頂層模塊的輸出)是寄存器輸出,這樣電路比較穩(wěn)定。

責任編輯:xj

原文標題:在Verilog中何時用wire,何時用reg?

文章出處:【微信公眾號:FPGA設計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    28

    文章

    1335

    瀏覽量

    109847
  • Reg
    Reg
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    11457
  • Wire
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    15847

原文標題:在Verilog中何時用wire,何時用reg?

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    TPA3116D2EVM電感位置,第二和第三種情況什么時候使用的?

    1、請問電感位置,第二和第三種情況什么時候使用的? 2、電感電流選擇怎么選的?如果是BTL,4歐姆負載。按極限電流算純電阻做功,每通道都是130W左右了。標的是50W。余量大概是多少?
    發(fā)表于 10-22 06:55

    一般運算放大器什么時候是數(shù)字電壓供電什么時候是模擬電壓供電?

    您好,我發(fā)現(xiàn)在有的電路,運算放大器是數(shù)字電源,有時候又是模擬電源供電,請問一般運算放大器什么時候是數(shù)字電壓供電什么時候是模擬電壓供電?
    發(fā)表于 09-11 06:03

    什么時候需要用到no phase reversal運放呢?

    什么時候需要用到no phase reversal運放呢? 此時不用的話會造成什么影響呢?
    發(fā)表于 08-02 14:09

    請問ESP32S2什么時候可以支持USB HOST讀取U盤?

    請問 ESP32S2什么時候可以支持USB HOST讀取U盤
    發(fā)表于 06-21 06:07

    stm32輔助時鐘AFIO,什么時候使能該時鐘?其作用是什么?

    一直不知道AFIO,請指點一,什么時候使能該時鐘。其作用是什么?
    發(fā)表于 05-15 08:01

    USB中斷setup,in和out階段到底什么時候進入中斷?

    進入中斷 還是發(fā)給host數(shù)據(jù)data0之后呢,或者是ACK之后? 第三個問題:同理out處理時什么時候進入中斷,是收到out packet之后 還是設備收到data1數(shù)據(jù)之后,還是ACK之后?
    發(fā)表于 04-29 08:37

    EXTI9_5仿真過程PR是什么時候掛起和解掛的?

    EXTI9_5仿真過程,EXTI->PR什么時候是掛起的,什么時候是解掛的? 今天晚上我練習了5.6.7號中斷線的使用。首先產(chǎn)生
    發(fā)表于 04-19 06:23

    龍旗科技什么時候上市?

    龍旗科技什么時候上市?龍旗科技于2024年3月1日成功登陸上交所主板,開啟全新發(fā)展階段。
    的頭像 發(fā)表于 03-01 11:43 ?978次閱讀

    ATOM觸發(fā)ADC采樣中斷是什么時候產(chǎn)生?

    ATOM觸發(fā)ADC采樣中斷是什么時候產(chǎn)生?發(fā)生周期匹配的時候還是0匹配的時候,怎么進行設置
    發(fā)表于 02-06 06:27

    請問直流電機的碳刷什么時候帶電?

    請問直流電機的碳刷什么時候帶電?運行的碳刷會電人嗎?如果減少碳刷使用數(shù)量,假設正常使用16個碳刷,現(xiàn)在我每排減少一個碳刷會出現(xiàn)什么后果?電流變大?謝謝,剛接觸直流電機
    發(fā)表于 12-12 07:35

    vlookup函數(shù)什么時候絕對引用

    單元格時,引用的單元格位置不會改變。使用VLOOKUP函數(shù)時,有幾種情況下我們需要使用絕對引用。本文將詳細介紹VLOOKUP函數(shù)以及絕對引用的使用情況。 首先,我們先來了解一VLO
    的頭像 發(fā)表于 12-01 10:25 ?6174次閱讀

    什么時候51單片機管腳需要配置輸出或者輸入模式?

    什么時候51單片機管腳需要配置輸出或者輸入模式? 我看有的程序沒有配置,有的程序有配置,一般哪些需要配置?
    發(fā)表于 11-10 07:19

    請問51的P0口什么時候要上拉電阻什么時候不需要?

    求教大神,51的P0口什么時候要上拉電阻什么時候不需要呢?
    發(fā)表于 11-09 08:02

    考慮x和zverilog條件語句中的使用情況

    首先,考慮x和zverilog條件語句中的使用情況,然后我們再考慮verilog中用x和z給其他re
    的頭像 發(fā)表于 11-02 09:40 ?1536次閱讀
    考慮x和z<b class='flag-5'>在</b><b class='flag-5'>verilog</b>條件語句中的使用<b class='flag-5'>情況</b>

    請問什么時候喂狗?怎么喂狗?喂狗的注意事項有哪些?

    什么時候喂狗?怎么喂狗?喂狗的注意事項?
    發(fā)表于 10-27 07:30