一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

為什么調(diào)試X值那么困難?

新思科技 ? 來源:新思科技 ? 2024-08-12 10:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

造成調(diào)試困難的因素有很多,其中包括取值未知(“X”)的情況。X是VHDL、Verilog、SystemVerilog等邏輯標準所定義的眾多邏輯值之一,可以代表1、0或Z,也就是說X的值是未知的,從而能夠預示設計或驗證環(huán)境邏輯仿真中邏輯信號的不確定性。讓事情變得更加復雜的是,在RTL和Gate仿真中,X的不確定性是各有不同。默認情況下,RTL邏輯仿真器的處理方式較為樂觀,也就是允許X在邏輯上被阻塞。舉一個比較典型的例子,多路復用器的選擇信號具有X值時,這個X值是否會被傳播取決于其建模方式。具體請參閱下表。

wKgaoma5cjSAU_roAAID2hg_n8k024.jpg

▲圖1 該表格最初發(fā)表于一篇題為“I’m Still In Love with My X!”的DVCon 2013會議論文,作者是Sutherland HDL。

請重點留意在建模中如何確定仿真器是否允許多路復用器傳遞0、1或X值。請注意,在實際芯片中,信號值始終為1(高電壓)或0(低電壓)。

那么,為什么要關注這種樂觀的處理方式呢?

寬松的處理方式可能隱藏著一些潛在的設計缺陷。在上述表格中,如果Sel輸入未連接,則芯片電路的電氣行為將變得不可預測。如果預計輸出為1,但出現(xiàn)的是0,則實際的芯片電路可能不穩(wěn)定,需要重置多次才能獲得所需的值1。

門級仿真傾向于在技術邏輯單元中使用支持傳遞X值的機制(或邏輯表),因此與芯片值的相關性更大。X值的傳播讓用戶能夠在制造芯片之前發(fā)現(xiàn)一些不良行為。

除了像RTL仿真中那樣因較寬松的傳播行為而阻塞X值之外,還存在一些場景,其中X值不應該被傳播。就拿下圖這個簡單的例子來說:

wKgZoma5cjSAQGiGAAD4w3rt5Bg279.jpg

無論模塊A輸出端的X值如何,邏輯本身應始終在與門(AND)的輸出端生成0。在這種情況下,邏輯結構的建模/仿真處理就過于悲觀了。雖然在這種邏輯結構的輸出端上調(diào)試X值對于開發(fā)者來說有點浪費時間,但對這種設計結構類型加以了解將十分受用。

為什么很難找到X?

無論X在RTL或門級仿真中如何傳播,幾乎所有X都難以進行調(diào)試。為什么會這樣?首先,產(chǎn)生X的根本原因或來源可能有很多。例如,某個邏輯門具有X輸入(非驅(qū)動);存儲器或觸發(fā)器未初始化為已知值;或是觸發(fā)器違反了建立時間或保持時間的規(guī)定,都有可能產(chǎn)生X。下圖是一個簡單的例子:就像這個與門,有一個X和同時有多個X的情況都很常見。輸入端i1和i2上的X導致輸出端o1輸出X。

wKgaoma5cjSALW0cAAChh85XgDc563.jpg

當輸入端出現(xiàn)多個X時,用戶需要選擇其中一個作為調(diào)試X的起點,然后反復回溯到所關注信號的驅(qū)動源或扇入信號,直到能夠找出最早出現(xiàn)的X值或根本原因。而當所關注的信號或根本原因信號不是造成X值的唯一原因時,用戶需要選擇另一輸入X來追蹤其根本原因。找到的第二個根本原因可能與前一個錯誤的根本原因相同,也可能是另一個來源。這是造成X難以調(diào)試且費時費力的關鍵原因之一。

此外,X通常要在設計中傳播數(shù)千個RTL語句或門級邏輯,才能到達觀察點、調(diào)試入口點或輸出端口。當然,這要取決于具體部署的環(huán)境類型、模塊級別、芯片級別或SoC。單個根本原因也可能傳播到多個觀察點。此外,這些根本原因和觀察點的邏輯錐可能交織在一起。各種因素盤根錯節(jié),使得追蹤X難上加難。下圖說明了X態(tài)傳播和輸出端上X重疊的概念。輸出Z1僅接收到輸入A,輸出Z3僅接收到輸入B,但輸出Z2卻能接收到輸入A和輸入B。

wKgaoma5cjSAUvZMAAD7EtQQ5nY536.jpg

這個追蹤過程需要多次迭代操作,非常繁瑣。此外,還需要了解來源/根本原因的類型。例如,系統(tǒng)可能有意設置了一個尚未重置或賦值的內(nèi)存數(shù)組,而某個地址可能錯誤地指向了這個未初始化的數(shù)組。所以追蹤這個數(shù)組并理解這個地址的邏輯也非常關鍵。話雖如此,是否有一種方法可以自動追蹤X的根本原因,并且在確定了根本原因后,對這些X進行分類或解釋原由?這種自動化將大大節(jié)省開發(fā)工作量,并大幅提升開發(fā)者的工作效率。

新思科技Verdi的XRCA組件

新思科技Verdi回歸調(diào)試自動化的XRCA組件是一種先進的根本原因分析工具,恰好能夠滿足上述自動化要求。XRCA是追蹤X和進行根本原因分析的出色引擎,不僅可以自動掃描FSDB中的X信號并追蹤X信號的根本原因,而且可以批量處理大量X信號以縮短調(diào)試時間。此外還能生成邏輯清晰的報告,按不同類別列出根本原因。報告會加載到新思科技Verdi的RCA主設備中,以便觀察結果和追蹤路徑。

wKgZoma5cjWALMUbAAL-7Hpm8mg373.jpg

XRCA是在啟動門級仿真和進行回歸處理時調(diào)試X信號的理想工具。除了許多根本原因分類之外,XRCA還支持門級網(wǎng)表追蹤、RTL級追蹤、新思科技VCS X態(tài)傳播追蹤、低功耗組件X追蹤,以及X值悲觀處理檢測。

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

    關注

    7

    文章

    612

    瀏覽量

    34728
  • RTL
    RTL
    +關注

    關注

    1

    文章

    389

    瀏覽量

    61124
  • 多路復用器
    +關注

    關注

    9

    文章

    926

    瀏覽量

    66076
  • 新思科技
    +關注

    關注

    5

    文章

    870

    瀏覽量

    51527

原文標題:令人痛苦的X!為什么調(diào)試X那么困難?

文章出處:【微信號:Synopsys_CN,微信公眾號:新思科技】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    調(diào)試讀取發(fā)送狀態(tài)寄存器的一直為0x1E是怎么回事

    然后在線調(diào)試讀取發(fā)送狀態(tài)寄存器的一直為0x1E,,我看網(wǎng)上正確的是0x2E,這是什么原因呀?
    發(fā)表于 07-13 10:35

    HCS12(X)仿真與調(diào)試資料

    本文檔內(nèi)容適用于Freescale HCS12(X)系列MCU;仿真與調(diào)試使用Codewarrior IDE軟件+BDM調(diào)試器。軟件版本:CodeWarrior(for HC12)V4.6
    發(fā)表于 01-11 17:50 ?52次下載

    多核軟件調(diào)試方法與困難

    采用新的編程方法、調(diào)試方法和工具。在傳統(tǒng)上,JTAG調(diào)試技術主要是用于硬件Bring-Up,如今也常常被用于配合基于代理的調(diào)試(agent-based debugging)。然而,在多核和多處理的環(huán)境中,片上
    發(fā)表于 10-19 15:48 ?0次下載

    MPLAB? X IDE 編譯調(diào)試(下)

    這一講我們主要講MPLAB? X IDE 編譯調(diào)試下篇。
    的頭像 發(fā)表于 06-06 02:45 ?3182次閱讀
    MPLAB? <b class='flag-5'>X</b> IDE 編譯<b class='flag-5'>調(diào)試</b>(下)

    創(chuàng)建ADuCM302x調(diào)試配置

    創(chuàng)建ADuCM302x處理器系列的調(diào)試配置指南
    的頭像 發(fā)表于 06-06 01:45 ?3325次閱讀

    MPLAB? X IDE 編譯調(diào)試(上)

    本講我們主要講有關MPLAB? X IDE 編譯調(diào)試上篇。
    的頭像 發(fā)表于 06-06 01:45 ?4720次閱讀
    MPLAB? <b class='flag-5'>X</b> IDE 編譯<b class='flag-5'>調(diào)試</b>(上)

    C2837x入門:系統(tǒng)的調(diào)試仿真

    C2837x入門指南(十五)—系統(tǒng)設計之調(diào)試仿真
    的頭像 發(fā)表于 08-23 00:06 ?3134次閱讀

    iPhone 12系列真有那么

    其實像iPhone 12系列真的有那么么,畢竟咱們先不說iPhone 12mini,光iPhone 12的價格就其實是從6100元起步的,而且還沒有充電頭和耳機線,可以說庫克是成功地又耍了大家一波,不僅價格沒降下來,反而還漲了不少。
    的頭像 發(fā)表于 10-28 15:48 ?1941次閱讀

    電路調(diào)試的步驟、注意事項及故障解決沒那么簡單!

    實踐表明,一個電子裝置,即使按照設計的電路參數(shù)進行安裝,往往也難于達到預期的效果。這是因為人們在設計時,不可能周全地考慮各種復雜的客觀因素(如元件的誤差、器件參數(shù)的分散性、分布參數(shù)的影響等),必須
    發(fā)表于 02-10 12:15 ?5次下載
    電路<b class='flag-5'>調(diào)試</b>的步驟、注意事項及故障解決沒<b class='flag-5'>那么</b>簡單!

    基恩士CV-X調(diào)試手冊

    基恩士CV-X系列調(diào)試手冊
    發(fā)表于 06-22 16:07 ?0次下載

    DA1468x 芯片調(diào)試技術教程

    DA1468x 芯片調(diào)試技術教程
    發(fā)表于 03-15 20:15 ?1次下載
    DA1468<b class='flag-5'>x</b> 芯片<b class='flag-5'>調(diào)試</b>技術教程

    DA1468x 芯片調(diào)試技術教程

    DA1468x 芯片調(diào)試技術教程
    發(fā)表于 07-06 19:25 ?0次下載
    DA1468<b class='flag-5'>x</b> 芯片<b class='flag-5'>調(diào)試</b>技術教程

    X5效果器調(diào)試軟件

    X3.X5效果器調(diào)試軟件,中文版。
    發(fā)表于 07-18 18:17 ?92次下載

    Python中互換X和Y的

    在Python中,我們可以通過使用一個中間變量來互換X和Y的。具體的步驟如下: 步驟一:定義X和Y的 首先,我們需要定義X和Y的初始
    的頭像 發(fā)表于 11-22 11:00 ?3018次閱讀

    Python中互換X和Y的代碼

    x和y,我們想要交換它們的。以下是實現(xiàn)這個目標的代碼: # 使用第三個變量來交換 temp = x x = y y = temp 這種方
    的頭像 發(fā)表于 11-30 10:06 ?2564次閱讀