在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

隱式初始化操作說明

sanyue7758 ? 來源:硅芯思見 ? 2023-07-24 15:00 ? 次閱讀

Verilog和SystemVerilog中經(jīng)常需要在使用變量或者線網(wǎng)之前,期望變量和線網(wǎng)有對應(yīng)的初始值,為此經(jīng)常會在過程塊或者連續(xù)賦值語句中對相關(guān)變量或者線網(wǎng)進行初始化,這樣的初始化我們稱之為“顯式初始化”,其實除了這種初始化操作方式之外,也有人會在變量和線網(wǎng)聲明的同時進行初始化,這種初始化方式成為“隱式初始化”,只不過在使用“隱式初始化”時經(jīng)常會出現(xiàn)一些不期望的結(jié)果,下面將通過示例對這些初始化操作進行說明。

1 線網(wǎng)初始化

【示例】

54632f9c-29ef-11ee-a368-dac502259ad0.png

仿真結(jié)果】

54712a98-29ef-11ee-a368-dac502259ad0.png

示例中,net1在聲明的同時進行了賦值操作(初始化),同時在代碼中通過連續(xù)賦值語句對net1又進行了賦值(與聲明時初始化的值不同),此時從仿真結(jié)果可以觀測到net1顯示結(jié)果為不定態(tài);net2在聲明時并沒有進行賦值操作,對其的賦值操作發(fā)生在連續(xù)賦值語句中,從仿真結(jié)果可以看到net2并沒有出現(xiàn)不定態(tài),其獲得了確切的數(shù)值。出現(xiàn)線網(wǎng)net1這種現(xiàn)象的主要是因為線網(wǎng)聲明時的“初始化”是一種“隱式的連續(xù)賦值語句”,并且在仿真過程中會一直保持,當有其他語句驅(qū)動該線網(wǎng)時,此時相當于對該線網(wǎng)進行了多驅(qū)動,在仿真波形上就會表現(xiàn)出不定態(tài)。那么對于變量的初始化操作是否也會像示例中net1這樣的情況呢?請看下例。

2 變量初始化

【示例】

547f69b4-29ef-11ee-a368-dac502259ad0.png

【仿真結(jié)果】

5499f090-29ef-11ee-a368-dac502259ad0.png

編譯報錯,從報錯信息上可以知道,var1同時被過程塊代碼和結(jié)構(gòu)級代碼驅(qū)動,這主要是因為var1為變量,在聲明時進行了初始化,同時又在連續(xù)賦值語句中也進行了賦值,從而導致了編譯錯誤,即錯誤原因是變量聲明時進行了初始化的話,那么該變量不能作為連續(xù)賦值語句的賦值對象進行使用,即SystemVerilog中不允許對于同一變量在連續(xù)賦值語句和過程語句中同驅(qū)動。對上述代碼進行修改,如下。

【示例】

54b40052-29ef-11ee-a368-dac502259ad0.png

【仿真結(jié)果】

54c277c2-29ef-11ee-a368-dac502259ad0.png

示例中,var1聲明時進行了初始化,但是本例中并沒有其他連續(xù)賦值語句對該變量的值進行修改驅(qū)動,所以此時var1中的值在仿真過程中一直保持,var2在聲明時沒有進行初始化,其值由連續(xù)賦值語句驅(qū)動為4’b0100,可見,SystemVerilog中變量可以用于連續(xù)賦值語句中,var3聲明時進行了初始化,但在過程塊(initial)中對var3進行了修改,此時var3的值更新為了過程塊中的值,由此我們可以看出,變量在聲明時的初始化先于過程塊的執(zhí)行,其次變量聲明時的初始化并不具有持續(xù)性,會被后續(xù)的賦值操作所更新,否則就會出現(xiàn)多驅(qū)動情況,即并不具有“隱式連續(xù)賦值的特點”

通過上述示例可以看到,線網(wǎng)聲明時的初始化實際上是一種“隱式連續(xù)賦值語句”,其“初始化”具有持續(xù)性,而變量聲明時的初始化會被后續(xù)的賦值操作更新,并不具有持續(xù)性,同時需要注意如果變量在聲明時進行初始化,此時該變量不能同時被連續(xù)賦值語句驅(qū)動。





審核編輯:劉清

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

    關(guān)注

    52

    文章

    8237

    瀏覽量

    146384
  • 仿真器
    +關(guān)注

    關(guān)注

    14

    文章

    1018

    瀏覽量

    83753
  • Verilog語言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8238

原文標題:隱藏的初始化

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    RT-Thread自動初始化詳解

    初始化函數(shù)不需要被顯調(diào)用,只需要在函數(shù)定義處通過宏定義的方式進行申明,就會在系統(tǒng)啟動過程中被執(zhí)行,非常的方便。 1 普通初始化 前面也講了,我們在寫單片機的程序時,需要對硬件進行初始化
    的頭像 發(fā)表于 06-25 21:38 ?1.1w次閱讀
    RT-Thread自動<b class='flag-5'>初始化</b>詳解

    自動初始化機制原理詳解

    自動初始化機制是指初始化函數(shù)不需要被顯調(diào)用,只需要在函數(shù)定義處通過宏定義的方式進行申明,就會在系統(tǒng)啟動過程中被執(zhí)行。這篇文章就來探索一下其中的奧秘, 簡單理解其原理!
    的頭像 發(fā)表于 12-16 09:33 ?1026次閱讀
    自動<b class='flag-5'>初始化</b>機制原理詳解

    手機模塊初始化向?qū)?/a>

    手機模塊初始化向?qū)?為了剛好的對手機模塊進行初始化,所以把最基本的向?qū)懴聛?本向?qū)нm用于本公司的西門子TC35I和華為GT9000模塊。一、在初始化手機模塊前,請先確定DT
    發(fā)表于 09-18 09:41 ?17次下載

    RDA1846S初始化設(shè)置

    RDA1846S初始化設(shè)置RDA1846S初始化設(shè)置RDA1846S初始化設(shè)置
    發(fā)表于 01-15 17:08 ?0次下載

    UCOS_III_配置與初始化

    UCOS_III_配置與初始化
    發(fā)表于 12-20 22:53 ?5次下載

    HX711初始化程序

    這是HX711的初始化程序
    發(fā)表于 02-08 01:51 ?90次下載

    嵌入開發(fā)復(fù)位和初始化詳細討論

    初始化序列。 圖13.14 ARM嵌入系統(tǒng)的初始化序列 系統(tǒng)啟動時立即執(zhí)行復(fù)位處理程序,然后進入$Sub$$main()的代碼執(zhí)行。 復(fù)位處理程序是用匯編語言編寫的代碼塊,它在系統(tǒng)復(fù)位時執(zhí)行,完成系統(tǒng)
    發(fā)表于 10-19 09:12 ?1次下載
    嵌入<b class='flag-5'>式</b>開發(fā)復(fù)位和<b class='flag-5'>初始化</b>詳細討論

    SEED-DEC2812初始化函數(shù)說明

    SEED-DEC2812系統(tǒng)初始化函數(shù)。
    發(fā)表于 04-13 09:05 ?11次下載
    SEED-DEC2812<b class='flag-5'>初始化</b>函數(shù)<b class='flag-5'>說明</b>

    uboot和內(nèi)核里phy的初始化_內(nèi)核里的雙網(wǎng)絡(luò)配置及phy的初始化

    uboot 和內(nèi)核里 phy 的初始化,以及內(nèi)核里的雙網(wǎng)絡(luò)配置及 phy 的初始化。 本文以盈鵬飛嵌入的CoM-335x(基于AM335x)核心板及網(wǎng)絡(luò)芯片LAN8720 為例,說明
    的頭像 發(fā)表于 05-17 08:19 ?1.2w次閱讀

    8259a初始化的步驟及代碼介紹

    本文首先介紹了8259a工作初始化的步驟及程序,其次介紹了通過OCW對8259A進行操作方法,最后介紹了8259A初始化編程。
    的頭像 發(fā)表于 05-23 14:24 ?3w次閱讀
    8259a<b class='flag-5'>初始化</b>的步驟及代碼介紹

    8253初始化程序分享_8253應(yīng)用案例

    本文首先介紹了8253概念及8253各通道的工作方式,其次詳細介紹了8253初始化要求及編程,最后用一個例子介紹了8253的初始化程序。
    發(fā)表于 05-23 15:52 ?2.2w次閱讀
    8253<b class='flag-5'>初始化</b>程序分享_8253應(yīng)用案例

    在51平臺下初始化文件的引入導致全局變量無法初始化的問題如何解決

    本文檔的主要內(nèi)容詳細介紹的是在51平臺下初始化文件的引入導致全局變量無法初始化的問題如何解決。
    發(fā)表于 08-20 17:31 ?0次下載
    在51平臺下<b class='flag-5'>初始化</b>文件的引入導致全局變量無法<b class='flag-5'>初始化</b>的問題如何解決

    C++之初始化列表學習的總結(jié)

    類中可以使用初始化列表對成員進行初始化
    的頭像 發(fā)表于 12-24 17:39 ?849次閱讀

    Armlinux內(nèi)核移植及系統(tǒng)初始化過程分析

    Armlinux內(nèi)核移植及系統(tǒng)初始化過程分析說明
    發(fā)表于 04-06 15:53 ?11次下載

    Nand Flash驅(qū)動(實現(xiàn)初始化以及讀操作)

    Nand Flash驅(qū)動(實現(xiàn)初始化以及讀操作)
    發(fā)表于 12-02 12:36 ?11次下載
    Nand Flash驅(qū)動(實現(xiàn)<b class='flag-5'>初始化</b>以及讀<b class='flag-5'>操作</b>)
    主站蜘蛛池模板: 在线欧美色 | 色网站在线播放 | 天天爽夜夜 | 高清国产美女在线观看 | 亚洲乱码卡一卡二卡三 | 夜夜爱视频 | 亚洲一级色片 | 久久综合99| 操久久| 日韩欧美视频一区 | 日本久久高清视频 | 麻豆三级视频 | 亚洲欧洲日韩综合 | 六月婷婷网 | 亚洲国产成人久久精品图片 | 午夜欧美视频 | 大尺度免费高清在线观看视频 | 欧美激情亚洲精品日韩1区2区 | xxxx性欧美高清 | 婷婷激情在线 | 荡女妇边被c边呻吟久久 | 美女牲交毛片一级视频 | 日韩有色 | 日本最黄 | 日本三级日本三级日本三级极 | 性欧美暴力猛交69hd | 婷婷久久综合 | 五月sese| 奇米久草 | 色妞色综合久久夜夜 | 日韩免费精品一级毛片 | 高清精品女厕在线观看 | 在线天天干 | 抽搐一进一出gif免费男男 | 久久精品在 | 啪啪免费观看 | 久草视频资源在线 | 不卡视频一区二区三区 | 黑人黑粗硬视频 | 女人十六毛片 | 新版bt天堂资源在线 |