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

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

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

X態(tài)如何通過RTL級和門級仿真模型中的邏輯進行傳播呢?

sanyue7758 ? 來源:ICer消食片 ? 2023-04-20 09:12 ? 次閱讀

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

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

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

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

模塊輸入端口未連接

總線爭用

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

setup/holdtiming violation

testbench中注入X態(tài)

VCS對于RTL仿真提供了支持X-Propagation的選項,因為RTL仿真偏向于樂觀,導致一些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語句

always @*
if(s)
  r=a;
else
  r=b;
600d79ce-df08-11ed-bfe3-dac502259ad0.png

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

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

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

case語句

case (s)
1'b0:r=a;
1'b1:r=b;
endcase

6019954c-df08-11ed-bfe3-dac502259ad0.png

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

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

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

邊沿敏感表達式

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

0->1
0->X
0->Z
X->1
Z->1

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

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

60272e82-df08-11ed-bfe3-dac502259ad0.png

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

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

latch

always@(*)
if(g)
  q <= d;

603115f0-df08-11ed-bfe3-dac502259ad0.png

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

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

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

603958fa-df08-11ed-bfe3-dac502259ad0.png

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






審核編輯:劉清

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

    關注

    38

    文章

    1296

    瀏覽量

    103957
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110101
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59791
  • VCS
    VCS
    +關注

    關注

    0

    文章

    79

    瀏覽量

    9611

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

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

收藏 人收藏

    評論

    相關推薦

    RTL設計的基本要素和步驟是什么

      綜合(Logic Synthesize)是指將HDL語言、原理圖等設計輸入翻譯成由與、或、非門等基本邏輯單元組成的連接(網(wǎng)表),并根據(jù)設計目標與要求(約束條件)優(yōu)化所生成的邏輯
    的頭像 發(fā)表于 01-17 16:57 ?1w次閱讀
    <b class='flag-5'>RTL</b><b class='flag-5'>級</b>設計的基本要素和步驟是什么

    數(shù)字IC設計流程為什么要做仿真?

    仿真(gate levelsimulation)也稱之為后仿真,是數(shù)字IC設計流程的一個重要步驟。
    的頭像 發(fā)表于 06-07 09:55 ?1971次閱讀
    數(shù)字IC設計流程<b class='flag-5'>中</b>為什么要做<b class='flag-5'>門</b><b class='flag-5'>級</b><b class='flag-5'>仿真</b>?

    RTL仿真X態(tài)行為的傳播—從xprop說起

    在使用VCS進行仿真時,工程師們常常會面對一個極為重要且充滿挑戰(zhàn)的問題——X態(tài)傳播行為。
    的頭像 發(fā)表于 12-04 16:20 ?2755次閱讀
    <b class='flag-5'>RTL</b><b class='flag-5'>仿真</b>中<b class='flag-5'>X</b><b class='flag-5'>態(tài)</b>行為的<b class='flag-5'>傳播</b>—從xprop說起

    RTL代碼和仿真代碼的區(qū)別

    RTL代碼和仿真代碼的區(qū)別,哪些verilog語句是可綜合的??哪些不能??
    發(fā)表于 07-21 13:08

    RTL仿真與門仿真

    調(diào)用了modelsim進行仿真,發(fā)現(xiàn)有毛刺,后來才知道有RTL仿真,運行后波形很好。想問下如
    發(fā)表于 08-08 22:57

    RTL的功能仿真結果和系統(tǒng)建模仿真的結果比較

    我是做數(shù)字濾波器的,別人從系統(tǒng)進行建模、仿真來完成設計,我從RTL開始對其設計進行 驗證。
    發(fā)表于 12-08 14:46

    關于RTL仿真仿真求助~

    `剛剛本科畢業(yè),假期導師要求做一個設計。實驗室沒有做過FPGA的學長只好問網(wǎng)上的各位了。寫好的FPGA代碼進行RTL仿真波形是符合要求的,如下圖。但是做
    發(fā)表于 08-06 12:12

    今天為什么仍必須進行仿真(GLS)精選資料分享

    今天為什么仍必須進行仿真(GLS)使用仿真
    發(fā)表于 07-26 07:28

    如何理解Xcelium的多核仿真

    (如UVM),low power(低功耗),mixed signal(模擬數(shù)字混合信號),VHDL;  多核的范圍包括:gate-level(),RTL,X-prop(
    發(fā)表于 03-28 11:18

    態(tài)邏輯功能的Multisim仿真方案

    介紹了用Multisim仿真軟件分析三態(tài)工作過程的方法,目的是探索三態(tài)工作波形的仿真實驗技術
    發(fā)表于 05-06 15:59 ?0次下載
    三<b class='flag-5'>態(tài)</b><b class='flag-5'>門</b><b class='flag-5'>邏輯</b>功能的Multisim<b class='flag-5'>仿真</b>方案

    Verilog HDL為電路建模的能力詳解

    電平模型化 本章講述Verilog HDL為電路建模的能力,包括可以使用的內(nèi)置基本和如何使用它們來
    的頭像 發(fā)表于 03-05 15:23 ?6481次閱讀
    Verilog HDL為<b class='flag-5'>門</b><b class='flag-5'>級</b>電路建模的能力詳解

    芯片設計之門仿真

    綜上,仿真基于測試平臺文件、網(wǎng)表文件、時序反標文件、庫文件,可以進行更精確的
    的頭像 發(fā)表于 08-15 14:50 ?2813次閱讀

    IC設計:接口X態(tài)隔離設計

    雖然真實芯片中,寄存器初始狀態(tài)值只會為1或者為0。但是在RTL仿真過程X態(tài)
    發(fā)表于 09-20 10:47 ?710次閱讀
    IC設計:接口<b class='flag-5'>X</b><b class='flag-5'>態(tài)</b>隔離設計

    能否利用器件的IBIS模型對器件的邏輯功能進行仿真?

    能否利用器件的IBIS模型對器件的邏輯功能進行仿真?如果不能,那么如何進行電路的板和系統(tǒng)
    的頭像 發(fā)表于 11-24 14:50 ?569次閱讀

    X態(tài)傳播在低功耗驗證的作用

    隨著科技的發(fā)展和智能化設備的普及,我們對于高效能、低功耗的半導體設備需求愈加強烈,對低功耗仿真的需求成指數(shù)增長。X態(tài)傳播分析是低功耗
    的頭像 發(fā)表于 01-24 09:34 ?744次閱讀
    <b class='flag-5'>X</b><b class='flag-5'>態(tài)</b><b class='flag-5'>傳播</b>在低功耗驗證<b class='flag-5'>中</b>的作用