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

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

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

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

Vivado調(diào)試ILA debug結(jié)果也許不對

汽車玩家 ? 來源:科學(xué)計算technomania ? 作者:貓叔 ? 2020-03-08 17:35 ? 次閱讀

FPGA的調(diào)試是個很蛋疼的事,即便Vivado已經(jīng)比ISE好用了很多,但調(diào)試起來依舊蛋疼。即便是同一個程序,F(xiàn)PGA每次重新綜合、實現(xiàn)后結(jié)果都多多少少會有所不同。而且加入到ila中的數(shù)據(jù)會占用RAM資源,影響布局布線的結(jié)果。

尤其是在時序緊張的情況下,ila占的資源越多,布線的難度就會越大。當(dāng)時序不收斂時,就可能會導(dǎo)致一個問題,我們從ila中看到的信號可能不是真實的。

下面說一下今天在調(diào)試中碰到的現(xiàn)象:

場景還原:

1. 程序中有4個主時鐘,而且一直處于在時序收斂的邊緣狀態(tài),也就是說有時候Implementation后時序收斂,有時時序違規(guī),但我沒有去管,因為報時序違規(guī)的地方并不是我當(dāng)時調(diào)試的代碼處。

2. 數(shù)據(jù)的位寬較大,為256bit,要對該數(shù)據(jù)做一系列的處理,比如原始數(shù)據(jù)為A[255:0],在數(shù)據(jù)處理過程中需要將A賦值給B[255:0],再將B賦值給C[255:0]。

3. 數(shù)據(jù)C最后通過PCIe傳給了上位機,在上位機中看到C波形有時會有毛刺,但不確定是哪一步出了問題,于是將A、B和C都引入到ila中,又多抓了幾個相關(guān)的信號,加起來總共有800多bits。

4. 總的BARM占用率不超過40%,LUT RAM沒超過10%,LUT和FF都沒有超過30%,BUFG用了47%。

出現(xiàn)的問題:

1. 在沒有加這么多的debug信號前,偶爾時序會報違規(guī),但都是個別的一兩處報的setup違規(guī)。但加了這些信號后,所有時鐘的Intra-Clock Paths的Hold-up Time都違規(guī)。如果是建立時間不過,解決辦法有很多,但保持時間不過,就有點麻煩了。但這肯定是增加了這么多的debug導(dǎo)致的,所以不用去理會。

2. 由于看到上位機中的波形有毛刺,首先確定C的數(shù)據(jù)是否有問題,排除PCIe傳輸中的錯誤。對比發(fā)現(xiàn)C和上位機的數(shù)據(jù)完全一樣,因此毛刺肯定是出現(xiàn)在前面的邏輯中。

3. 發(fā)現(xiàn)A、B和C的數(shù)據(jù)都是不一致的,可能會出現(xiàn)下面的現(xiàn)象:

A的數(shù)據(jù)是xxxx10101010xxxx
B的數(shù)據(jù)是xxxx00101010xxxx
C的數(shù)據(jù)是xxxx10101011xxxx

也就是說,在B中發(fā)現(xiàn)數(shù)據(jù)出現(xiàn)了誤碼,1->0,但C中該bit依然是對的,跟原始數(shù)據(jù)的A是一樣的,由于我們的 賦值過程是A->B->C。

說明可能有兩種原因:

1. 從B到C的傳輸過程中,剛好在這個bit處產(chǎn)生了誤碼
2. 數(shù)據(jù)B的這個bit其實是正確的,只是抓出來的數(shù)據(jù)有問題

由于程序中在很多地方都會出現(xiàn)這種情況,所以認(rèn)為第二種可能性更大一些。

總結(jié):

在時序不收斂的情況下,我們通過ila抓出來的數(shù)據(jù)可能并不是真實的,在碰到這種問題時,可能需要我們先把時序調(diào)整后再進行后續(xù)調(diào)試。

最后,碰到這種問題怎么解決呢?最根本的解決辦法當(dāng)然是修改設(shè)計,使時序能夠收斂。還有一種笨辦法,由于程序Implementation后有時能收斂有時不能收斂,那我們就把時序收斂時的bit作Release即可,再對這個bit程序做詳細(xì)測試。

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

    關(guān)注

    1643

    文章

    21923

    瀏覽量

    612333
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    826

    瀏覽量

    67959
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    蜂鳥N203移植到xilinx ZCU104板子上,用JTAG調(diào)試的時出現(xiàn)報錯怎么解決?

    求助各位大佬,蜂鳥N203移植到xilinx ZCU104板子上,用JTAG調(diào)試的時候出現(xiàn)這樣的錯誤 在vivado里面跟JTAG有關(guān)的約束如下: 在調(diào)試的時候,用的是Nuclei官方的
    發(fā)表于 04-17 06:33

    蜂鳥N203移植到xilinx ZCU104板子上,用JTAG調(diào)試的時候出現(xiàn)錯誤怎么解決?

    求助各位大佬,蜂鳥N203移植到xilinx ZCU104板子上,用JTAG調(diào)試的時候出現(xiàn)這樣的錯誤 在vivado里面跟JTAG有關(guān)的約束如下: 在調(diào)試的時候,用的是Nuclei官方的
    發(fā)表于 03-07 16:46

    FPGA設(shè)計調(diào)試流程

    調(diào)試,即Debug,有一定開發(fā)經(jīng)驗的人一定會明確這是設(shè)計中最復(fù)雜最磨人的部分。對于一個龐大復(fù)雜的FPGA工程而言,出現(xiàn)問題的概率極大,這時如果沒有一個清晰的Debug思路,調(diào)試過程只能
    的頭像 發(fā)表于 03-04 11:02 ?1027次閱讀
    FPGA設(shè)計<b class='flag-5'>調(diào)試</b>流程

    Cadence Verisium Debug:統(tǒng)一調(diào)試平臺,加速SoC設(shè)計

    Cadence的統(tǒng)一調(diào)試平臺Verisium Debug,為從IP到SoC級別的復(fù)雜設(shè)計提供了全面的調(diào)試解決方案。該平臺集成了多種調(diào)試功能,包括RTL
    的頭像 發(fā)表于 02-17 11:10 ?533次閱讀

    keil在Debug的高級用法

    ,不建議安裝網(wǎng)上的一些漢化包之類的。另外建立的工程文件路徑也盡量不要存在中文,否則可能會出現(xiàn)一些異常。第二節(jié)基本調(diào)試方法1,基本調(diào)試操作:首先點擊"Debug->
    的頭像 發(fā)表于 12-26 21:01 ?1489次閱讀
    keil在<b class='flag-5'>Debug</b>的高級用法

    單片機Debug工具性能對比 單片機調(diào)試常用命令

    。以下是對單片機調(diào)試工具性能的簡要對比以及一些常用的調(diào)試命令。 單片機Debug工具性能對比 Keil uVision 性能 :Keil uVision 是一款功能強大的集成開發(fā)環(huán)境(IDE),支持多種單片機,特別是ARM Co
    的頭像 發(fā)表于 12-19 09:56 ?1091次閱讀

    單片機Debug與仿真區(qū)別

    單片機的開發(fā)是一個復(fù)雜的過程,涉及到硬件設(shè)計、軟件開發(fā)和測試等多個環(huán)節(jié)。為了確保單片機能夠按照預(yù)期工作,開發(fā)者需要使用Debug和仿真技術(shù)來檢測和修正代碼中的錯誤。 Debug調(diào)試Deb
    的頭像 發(fā)表于 12-19 09:47 ?735次閱讀

    每次Vivado編譯的結(jié)果都一樣嗎

    很多FPGA工程師都有這種困惑,Vivado每次編譯的結(jié)果都一樣嗎? 在AMD官網(wǎng)上,有這樣一個帖子: Are Vivado results repeatable for identical
    的頭像 發(fā)表于 11-11 11:23 ?1007次閱讀
    每次<b class='flag-5'>Vivado</b>編譯的<b class='flag-5'>結(jié)果</b>都一樣嗎

    Vivado使用小技巧

    有時我們對時序約束進行了一些調(diào)整,希望能夠快速看到對應(yīng)的時序報告,而又不希望重新布局布線。這時,我們可以打開布線后的dcp,直接在Vivado Tcl Console里輸入更新后的時序約束。如果調(diào)整
    的頭像 發(fā)表于 10-24 15:08 ?812次閱讀
    <b class='flag-5'>Vivado</b>使用小技巧

    GD32用Embedded軟件debug在線調(diào)試失敗的原因?

    請問GD32用Embedded軟件debug在線調(diào)試失敗可能是什么原因?
    發(fā)表于 09-27 07:13

    Multi-Scaler IP的Linux示例以及Debug(上)

    本篇文章介紹了在 ZCU106 上創(chuàng)建 Video Multi-Scaler IP 的 AMD Vivado? Design Tool 和 Petalinux 工程;在 ZCU106 上 Run 生成的 Image,并測試生成的圖像文件,以及常見問題的 Debug
    的頭像 發(fā)表于 09-18 10:03 ?637次閱讀
    Multi-Scaler IP的Linux示例以及<b class='flag-5'>Debug</b>(上)

    vca821的tina仿真,vg端電壓為0,增益感覺結(jié)果不對,是哪里出了問題?

    vg端電壓為0,增益感覺結(jié)果不對
    發(fā)表于 08-23 07:53

    AGC VAC821仿真結(jié)果不對是什么原因?qū)е碌模?/a>

    AGC VAC821仿真結(jié)果不對
    發(fā)表于 08-14 06:18

    如何在服務(wù)器上調(diào)試本地FPGA板卡

    該板卡,直接使用Recent Targets,之前的配置應(yīng)該保存在列表中。如下圖所示。 如下圖所示連接后,即可正常使用 Vivado。FPGA 器件可以使用 ILA 內(nèi)核進行編程和調(diào)試,就像在本地PC上操作一樣,同
    發(fā)表于 07-31 17:36

    為什么我的項目Debug運行沒問題,編譯成Release包就報錯?

    ,以提高應(yīng)用性能和減少最終包的大小。相比之下,Debug模式優(yōu)化級別較低,側(cè)重于縮短編譯時間和提高調(diào)試效率,
    的頭像 發(fā)表于 06-12 11:18 ?1404次閱讀
    為什么我的項目<b class='flag-5'>Debug</b>運行沒問題,編譯成Release包就報錯?