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

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

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

X態(tài)產(chǎn)生的原因主要分為哪幾種情況

工程師鄧生 ? 來源:ICer消食片 ? 作者:ICer消食片 ? 2022-09-21 09:38 ? 次閱讀

Verilog中,IC設(shè)計工程師使用RTL構(gòu)造和描述硬件行為。但是RTL代碼中的一些語義,并不能夠準(zhǔn)確地為硬件行為建模。Verilog中定義了4種不同的邏輯值:1、0、X和Z,1和0是真實存在的邏輯電平,Z表示高阻態(tài),X表示未知態(tài)。

X態(tài)的存在使得仿真結(jié)果要么太過于樂觀,要么太過于悲觀。因此X態(tài)如何通過RTL級和門級仿真模型中的邏輯進行傳播的,是需要特別關(guān)注的。為此,還產(chǎn)生了兩種觀念,X-optimism和X-pessimism。前者將X值轉(zhuǎn)換為0或1,后者將X值一直傳播出去。

X態(tài)產(chǎn)生的原因主要分為以下幾種情況:

四值變量、寄存器和鎖存器未初始化

模塊輸入端口未連接

總線爭用

超出范圍的位選擇和數(shù)組索引

setup/holdtiming violation

testbench中注入X態(tài)

VCS對于RTL仿真提供了支持X-Propagation的選項,因為RTL仿真偏向于樂觀,導(dǎo)致一些X態(tài)傳播的bug,無法在正常的RTL仿真階段發(fā)現(xiàn)。但是在Gate-level仿真時會暴露出來,因為Gate-level仿真也更接近實際硬件行為。

我們知道越早的發(fā)現(xiàn)bug,所消耗的成本也越低的,故VCS的X-Propagation功能可以更接近Gate-level的X態(tài)傳播行為,是一種在后仿之前debug的低成本仿真策略。

通常使用帶xprop的仿真選項為:

vcs -xprop[=tmerge|xmerge|xprop_config_file]

[-xprop=flowctrl]

[-xprop=nestLimit=]

other_vcs_options

這里就不深入介紹各個選項了,而是介紹三種merge mode:

vmerge mode: 就是Verilog協(xié)議規(guī)定的X態(tài)處理行為;
tmerge mode: 更接近Gate-level仿真,也就是實際硬件行為;
xmerge mode: 相比tmerge mode,對于X態(tài)的處理更悲觀;

下面舉幾個實例來看看這三種mode的具體區(qū)別

if語句

poYBAGMqa1iAN9L1AAAaDyN41Hg428.jpg


2a872a2e-31d0-11ed-ba43-dac502259ad0.png

在vmerge模式下,使用標(biāo)準(zhǔn)的HDL模擬語義。當(dāng)控制信號s未知時,輸出信號r總是被賦給else語句的值。此時r的值與信號b相同。

在tmerge模式下,當(dāng)控制信號s未知時,如果輸入信號a和b 同,則r的值與a(或b)相同。如果a和b不相同,則r的值為X。

在xmerge模式下,當(dāng)控制信號s未知時,輸出信號r的值始終為X。

case語句

pYYBAGMqa2yAcjB5AAAaYdGEk5c163.jpg

2aa8c756-31d0-11ed-ba43-dac502259ad0.png

在vmerge模式中,使用標(biāo)準(zhǔn)的HDL模擬語義。當(dāng)控制信號s未知時,輸出信號r的值與執(zhí)行case語句之前保持一致。

在tmerge模式中,當(dāng)控制信號s未知時,如果a和b相同,r的合并和最終值與a和b 相同。如果a和b不相同,r的合并和最終值為X。

在xmerge模式下,當(dāng)控制信號s未知時,輸出信號r的值始終為X。

邊沿敏感表達(dá)式

在標(biāo)準(zhǔn)的 Verilog 中,對于時鐘信號中以下值的變化會觸發(fā)上升沿轉(zhuǎn)換:

pYYBAGMqa36AakGqAAAYjGxDTNU262.jpg

如果X被認(rèn)為是0或1值,那么在 0 -> X 轉(zhuǎn)換中,X可能表示0值,這表示沒有轉(zhuǎn)換。X可以表示1值,此時表示上升沿。Xprop仿真考慮了這兩種行為并合并了結(jié)果。

以下為一個低有效復(fù)位的D觸發(fā)器示例:

2ac552e0-31d0-11ed-ba43-dac502259ad0.png

在三種模式中,如果時鐘信號clk從0變成1,即一個上升沿觸發(fā),D觸發(fā)器的輸出信號q被賦值為輸入信號d。

對于其余四種時鐘信號的變化,vmerge模式中,輸出信號q被賦值為輸入信號d;xmerge模式中,輸出信號q被賦值為X;tmerge模式中,q端的結(jié)果是當(dāng)前拍d端和上一拍q端值得merge的結(jié)果,如果兩者不同,則當(dāng)前拍鎖存X。

latch

poYBAGMqa5GAdxu6AAAWDr2Lc_g610.jpg

2ae3520e-31d0-11ed-ba43-dac502259ad0.png

在vmerge模式下,當(dāng)控制信號g未知時,輸出信號q的值不變。

在tmerge模式下,當(dāng)控制信號g未知時,分配給q的合并值取決于q和d的值。

在xmerge模式下,當(dāng)控制信號g未知時,輸出信號q的值始終為X。

2b03cce6-31d0-11ed-ba43-dac502259ad0.png

當(dāng)xprop仿真過程中出現(xiàn)X態(tài)報錯時,需要看波形以具體分析是寄存器沒有初始化值,存在X態(tài)導(dǎo)致的,還是代碼邏輯中存在問題導(dǎo)致的。

審核編輯:劉清

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

    關(guān)注

    28

    文章

    1333

    瀏覽量

    109748
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    59534
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1990

    瀏覽量

    60911
  • 邏輯電平
    +關(guān)注

    關(guān)注

    0

    文章

    150

    瀏覽量

    14369

原文標(biāo)題:什么是X態(tài)傳播?

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

收藏 人收藏

    評論

    相關(guān)推薦

    邏輯分析儀的主要特點有哪些?可分為哪幾種類型?

    邏輯分析儀的主要特點有哪些?可分為哪幾種類型?邏輯分析儀的工作原理是什么?邏輯分析儀通常有哪幾種顯示方式?
    發(fā)表于 04-14 06:35

    常見的光源閃爍有哪幾種?光源閃爍產(chǎn)生原因是什么?

    常見的光源閃爍有哪幾種?光源閃爍產(chǎn)生原因是什么?閃爍對人眼的危害是什么?怎么測量閃爍度?
    發(fā)表于 05-12 06:44

    顯示器接口分為哪幾種?如何去保護?

    顯示器接口分為哪幾種?如何去保護?
    發(fā)表于 06-01 07:01

    什么是功放?功放分為哪幾種?

    什么是功放?功放分為哪幾種?
    發(fā)表于 06-02 07:07

    電路基礎(chǔ)部分知識包括哪些?濾波電路主要分為哪幾種?

    電路基礎(chǔ)部分知識包括哪些?電容值對交流電路有什么影響?濾波電路主要分為哪幾種
    發(fā)表于 06-22 07:49

    請問什么是波導(dǎo)天線?波導(dǎo)天線分為哪幾種?

    什么是波導(dǎo)天線?波導(dǎo)天線分為哪幾種?波導(dǎo)天線的主要應(yīng)用領(lǐng)域在哪?
    發(fā)表于 06-30 06:53

    ARM產(chǎn)品可分為哪幾類?ARM處理器主要分為哪幾種

    ARM產(chǎn)品可分為哪幾類?ARM處理器主要分為哪幾種?其處理器的主要特征有哪些?
    發(fā)表于 07-01 08:31

    計時器主要分為哪幾種?其工作原理是什么?

    計時器的工作原理是什么?計時器包括哪些組成的部分?計時器主要分為哪幾種?其工作原理是什么?
    發(fā)表于 07-02 07:12

    無刷電機的位置檢測器主要分為哪幾種?求解

    無刷電機的位置檢測器主要分為哪幾種?求解
    發(fā)表于 07-26 12:38

    UPS的電池壽命主要受到哪幾種因素的影響?

    UPS的電池壽命主要受到哪幾種因素的影響? 不論密封式的還是溢流式的蓄電池,影響其壽命的主要因素有以下四種:電池的環(huán)境溫度、電池的化學(xué)組成
    發(fā)表于 11-06 10:34 ?1948次閱讀

    電容的用途主要哪幾種?

    電容的用途主要哪幾種?電容的用途非常多,主要有如下幾種:     1.隔直流:作用是阻止直流通過而讓交流通過。
    發(fā)表于 11-27 14:58 ?1336次閱讀

    SMT元器件有哪幾種類型

    本文檔的主要內(nèi)容詳細(xì)介紹的是SMT元器件有哪幾種類型。
    發(fā)表于 11-27 08:00 ?3次下載

    消防應(yīng)急燈具按用途分為哪幾種?

    消防應(yīng)急燈具按用途分為哪幾種? 消防應(yīng)急燈具是一種特殊的燈具,廣泛用于消防、救援等場合。消防應(yīng)急燈具按照用途的不同,可以分為多種類型。在本文中,我們將為您詳細(xì)介紹消防應(yīng)急燈具按用途分為
    的頭像 發(fā)表于 08-18 11:57 ?3787次閱讀

    以太網(wǎng)接口分為哪幾種接口?車載以太網(wǎng)接口分為哪幾種接口?

    以太網(wǎng)接口有哪些?以太網(wǎng)接口分為哪幾種接口?車載以太網(wǎng)接口分為哪幾種接口? 以太網(wǎng)接口是計算機網(wǎng)絡(luò)中最常用的接口類型。它是一種基于局域網(wǎng)(LAN)的標(biāo)準(zhǔn)通信協(xié)議,用于在網(wǎng)絡(luò)中傳輸數(shù)據(jù)。
    的頭像 發(fā)表于 08-31 16:56 ?4481次閱讀

    降噪是什么原理 降噪方法分為哪幾種

    降噪是什么原理 降噪方法分為哪幾種? 降噪是指通過一系列技術(shù)手段減少或消除環(huán)境中存在的噪聲干擾,從而提高音頻、圖像、信號等的質(zhì)量或清晰度。降噪的原理主要涉及信號處理、數(shù)字濾波、統(tǒng)計學(xué)等方面的知識
    的頭像 發(fā)表于 03-14 16:55 ?5778次閱讀