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

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

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

記錄最近Debug AMBA VIP的兩次經(jīng)歷

芯片驗證日記 ? 來源: 芯片驗證日記 ? 作者: 芯片驗證日記 ? 2022-12-10 16:15 ? 次閱讀

最近在Debug C家AMBA VIP的過程中遇到一些問題。有兩個問題感覺值得記錄一下,免得以后忘記了,或者其他朋友也可能遇到類似的情況,也許幫助自己的同時還能順便幫助到別人。第一個問題是關(guān)于AXI VIP的;第二個問題是關(guān)于ace_lite_vip發(fā)送多個WriteNoSnoop操作相關(guān)的問題。

1. AXI VIP通過調(diào)整latency對設(shè)計進(jìn)行反壓

當(dāng)把latency(xx_yy_ready_delay)調(diào)的特別高時,或者是隨機到比較大的數(shù)值時,C家的VIP就會報下面的UVM_WARNING

[CDN_AXI_NONFATAL_WARN_EOS_QUEUE_IS_NOT_EMPTY],仔細(xì)看下面還有ERROR的提示以及建議。最后通過把latency調(diào)整到比較小的值,就沒有這個現(xiàn)象了。

pYYBAGOUP42AN7SsAADPyVr3sEc236.png

2.ace_lite_vip發(fā)送多個WriteNoSnoop操作

在sequence中打印log發(fā)現(xiàn),sequence已經(jīng)把transaction發(fā)出了,但是ace_lite_vip的driver卻沒有將這一筆數(shù)據(jù)驅(qū)動到interface,driver后續(xù)也不再往interface上驅(qū)動transaction了。如下圖所示,從紅色矩形框往后,總線上就沒有任何toggle了。

poYBAGOUP7OAcj2oAAI8zScxEhg122.png

后來經(jīng)過仔細(xì)分析trace file(denali.trc,話說denali.trc對分析vip的幫助實在是太大了,以后結(jié)合具體的例子再深入的研究一下)信息發(fā)現(xiàn),在紅色矩形框后面的某個時間點,VIP接收到帶有IdTag=xx的transaction,這是個writeNoSnoop的原子事務(wù),但其帶有的字段”DENALI_CDN_AXI_FLD_Atomic”被設(shè)置為了“DENALI_CDN_AXI_ATOMICTRANSACTION_AtomicLoad_LITTLE_EOR”的枚舉值。因為加載了這個原子操作,所以就需要Slave在寫入后也響應(yīng)數(shù)據(jù),由于沒有來自slave的數(shù)據(jù)響應(yīng),因此這筆原子操作沒有完成。

這時候最后一個transaction來了,并且和前面分析的那筆transaction擁有相同的IdTag。因為之前的那筆具有相同ID的原子操作還沒有完成,因此,VIP放棄了這筆交易,這就是掛起的原因。如果將verbosity registor設(shè)置為FULL,在log中就會看到這個消息。

解決方法:

a.將后面的transaction的IdTag設(shè)置為與前面事務(wù)的IdTag都不相同。

b.或者將”DENALI_CDN_AXI_FLD_Atomic”字段設(shè)置為

”DENALI_CDN_AXI_ATOMICTRANSACTION_NonAtomicOperation”。

最后,通過試驗驗證了方法a是可行的。

回顧總結(jié)一下,犯這個錯誤的主要原因是,在寫sequence的時候只對部分字段做了約束,其他字段隨機,而TagID就在隨機之列。如果運氣好,TagID沒有重復(fù)的話,這個問題還暴露不出來了呢。所以理解協(xié)議是多么重要呀。換個角度再想想,你我皆凡人,不踩坑,不看別人踩坑,很難漲知識呀。你看到了,希望你也能從中受益。查看更多精彩內(nèi)容,請關(guān)注微信公眾號《芯片驗證日記》。

AXI/ACE協(xié)議支持亂序傳輸。他給每一個通過接口的事務(wù)一個IDtag。協(xié)議要求相同ID tag的事務(wù)必須有序完成,而不同ID tag可以亂序完成。

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

    關(guān)注

    0

    文章

    68

    瀏覽量

    15008
  • DEBUG
    +關(guān)注

    關(guān)注

    3

    文章

    94

    瀏覽量

    19934
收藏 人收藏

    評論

    相關(guān)推薦

    BF609 SPI flash為空的時候,為什么不能連續(xù)兩次debug?

    debug,也可以正常燒寫SPI flash,但是不能連續(xù)兩次debug,必須要中間斷一電 2、如果SPI flash 已經(jīng)燒寫進(jìn)去程序后,DSP上電可以正常啟動與工作,但是不能
    發(fā)表于 01-12 06:55

    如何比較前后兩次輸入值的大小

    一個循環(huán)不停的產(chǎn)生數(shù)據(jù),如何實現(xiàn)比較前后兩次數(shù)據(jù)的大小問題,如果兩次相差小于1說明數(shù)據(jù)有效,那么就保留這次的值;反之如果前后數(shù)相差大于1說明數(shù)據(jù)無效,則繼續(xù)取前一的值。請問各位如何
    發(fā)表于 11-02 20:04

    兩次才能停下

    /details/16842267,其中那個“為什么在WHILE循環(huán)中使用事件結(jié)構(gòu)時,停止按鈕需要按兩次才能結(jié)束?”很難想明白,先求助于各位(自己加了一個顯示,方面跟蹤事件結(jié)構(gòu))。
    發(fā)表于 12-21 10:56

    BF609 SPI flash的為空時不能連續(xù)兩次debug

    debug,也可以正常燒寫SPI flash,但是不能連續(xù)兩次debug,必須要中間斷一電2、如果SPI flash 已經(jīng)燒寫進(jìn)去程序后,DSP上電可以正常啟動與工作,但是不能
    發(fā)表于 09-14 11:54

    EXTI重復(fù)配置兩次導(dǎo)致誤觸發(fā)中斷的問題

    兩次導(dǎo)致誤觸發(fā)中斷的問題如果重復(fù)兩次配置EXTI的話,由于第一已經(jīng)打開中斷,當(dāng)進(jìn)行第二配置中斷的時候,會把中斷引腳首先配置成默認(rèn)引腳,然后在配置成目的引腳,這樣由于默認(rèn)引腳是低電平
    發(fā)表于 08-13 07:03

    debug使用s32ds時,如何查看兩次break之間的動作時間?

    你好:debug使用s32ds時,如何查看兩次break之間的動作時間?
    發(fā)表于 03-28 07:20

    堡盟新型框架適配器——通過兩次卡入安裝傳感器

    堡盟新型框架適配器——通過兩次卡入安裝傳感
    發(fā)表于 01-08 09:34 ?750次閱讀

    Synopsys為Arm AMBA CXS的VIP提供EDA驗證解決方案

    AutoTestbench和用于性能驗證的VC AutoPerformance。 針對 AMBA CXS協(xié)議的驗證IP(VIP)的發(fā)布進(jìn)一步加持了AMBA的合作的本質(zhì),使生態(tài)系統(tǒng)中的不同團隊能夠交付適用于下一代
    發(fā)表于 10-15 09:37 ?4003次閱讀

    馬斯克:4新冠病毒檢測 兩次陰性 兩次陽性

    11月13日消息,據(jù)外媒報道,特斯拉CEO馬斯克剛剛在社交網(wǎng)絡(luò)上表示,今天做了4新冠病毒檢測,檢查結(jié)果兩次為陰性兩次為陽性。 馬斯克表示,相同的機器,相同的測試,相同的護士,同樣的抗原檢測
    的頭像 發(fā)表于 11-13 16:29 ?1855次閱讀

    愛立信的兩次“失算”

    愛立信兩次失算。 第一失算,是在去年11月發(fā)布的《移動報告》中預(yù)測到2020年年底全球5G用戶將達(dá)1億,可能是由于看到全球5G eMBB ToC的強勁發(fā)展勢頭,于是在今年6月發(fā)布的《移動報告》中
    的頭像 發(fā)表于 12-03 10:57 ?1133次閱讀

    寧德時代旗下公司兩次突發(fā)事故

    1月20日上午,德方納米控股子公司曲靖市麟鐵科技有限公司發(fā)生爆炸事故,這又是一家寧德時代合資或者控制的公司發(fā)生意外,1個月內(nèi)發(fā)生兩次了。
    的頭像 發(fā)表于 01-21 10:16 ?2432次閱讀

    4-AMBA VIP 編程接口

    關(guān)于我:2020屆雙非學(xué)校材料專業(yè)畢業(yè),現(xiàn)在已轉(zhuǎn)行芯片驗證,入職個月。最近MCU項目在用Synopsys公司的VIP,正好自己在看AMBAVIP
    發(fā)表于 12-08 16:21 ?10次下載
    4-<b class='flag-5'>AMBA</b> <b class='flag-5'>VIP</b> 編程接口

    關(guān)于高質(zhì)量的AMBA(APB/AHB/AXI) VIP的分享

    AMBA VIP 分享
    的頭像 發(fā)表于 12-10 20:47 ?3478次閱讀
    關(guān)于高質(zhì)量的<b class='flag-5'>AMBA</b>(APB/AHB/AXI) <b class='flag-5'>VIP</b>的分享

    python怎么將list輸入兩次

    在Python中,有多種方法可以將一個列表輸入兩次。下面是使用不同的方法來實現(xiàn)此功能的幾個示例: 方法1: 使用循環(huán)將列表復(fù)制兩次 這是一種基本的方法,使用循環(huán)遍歷列表并復(fù)制其元素兩次。以下是一個
    的頭像 發(fā)表于 11-21 16:17 ?1363次閱讀

    說說TCP三握手的過程?為什么是三而不是兩次、四?

    說說TCP三握手的過程?為什么是三而不是兩次、四? TCP三握手是建立TCP連接的過程,確保數(shù)據(jù)的可靠傳輸。它是由發(fā)送端和接收端完成
    的頭像 發(fā)表于 02-04 11:03 ?700次閱讀