91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

汽車玩家 ? 來(lái)源:科學(xué)計(jì)算technomania ? 作者:貓叔 ? 2020-03-08 17:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

場(chǎng)景還原:

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

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

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

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

出現(xiàn)的問題:

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

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

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

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

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

說(shuō)明可能有兩種原因:

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

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

總結(jié):

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

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

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

    關(guān)注

    1660

    文章

    22406

    瀏覽量

    636124
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    857

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    使用Vivado ILA進(jìn)行復(fù)雜時(shí)序分析的完整流程

    在 HDL 代碼中標(biāo)記待觀測(cè)信號(hào),添加 (* mark_debug = "true" *) 屬性(Verilog)或 keep 屬性(VHDL)
    的頭像 發(fā)表于 02-04 11:28 ?271次閱讀

    如何在vivadoila進(jìn)行debug調(diào)試

    其中1是添加幾個(gè)觀察信號(hào),2是采樣深度。1根據(jù)自己要觀察的信號(hào)進(jìn)行選擇,2一般越大越好。
    的頭像 發(fā)表于 01-15 14:25 ?470次閱讀
    如何在<b class='flag-5'>vivado</b>用<b class='flag-5'>ila</b>進(jìn)行<b class='flag-5'>debug</b><b class='flag-5'>調(diào)試</b>

    進(jìn)迭時(shí)空 debug upstream | 取之于開源,貢獻(xiàn)于開源

    。Debug相關(guān)軟件項(xiàng)目概覽RISC-V調(diào)試所涉及的核心開源軟件主要包括GDB和OpenOCD。GDB(GNUDebugger)是GNU項(xiàng)目下的功能強(qiáng)大的源碼級(jí)調(diào)
    的頭像 發(fā)表于 11-17 09:33 ?5444次閱讀
    進(jìn)迭時(shí)空 <b class='flag-5'>debug</b> upstream | 取之于開源,貢獻(xiàn)于開源

    Vivado仿真之后沒有出現(xiàn)仿真結(jié)果的解決方法

    ;Run Behavioral Simulation之后,會(huì)出現(xiàn)如下圖界面,此時(shí),在Tcl Console中并沒有出現(xiàn)仿真結(jié)果。 沒有出現(xiàn)仿真結(jié)果的原因是沒有給Vivado時(shí)間進(jìn)行仿真,解決方法
    發(fā)表于 10-31 06:24

    ILA 抓取MCU200T的內(nèi)部信號(hào)

    我們?cè)谡{(diào)BUG的過程中單純利用引腳輸出中間變量的方法可能比較困難,因此我們?cè)趯?shí)際的開發(fā)過程中使用了ILA內(nèi)嵌式邏輯分析儀來(lái)進(jìn)行內(nèi)部信號(hào)的捕捉和觀察。 1、在E203的 vivado工程中打開IP
    發(fā)表于 10-29 08:03

    將e203 例化AXI總線接口

    將系統(tǒng)外設(shè)總線內(nèi)部axi接口引出給gpio,注意vivado中g(shù)pio地址分配應(yīng)保證移植 Debug: 通過Xil_Out32函數(shù)給gpio的地址寫1或者0,注意這里地址是gpio地址也就是核中給
    發(fā)表于 10-29 06:08

    VIVADO中對(duì)NICE進(jìn)行波形仿真的小問題的解決

    分別如下圖 可以看到,輸出運(yùn)算結(jié)果的pritnf函數(shù)被#ifdef所定義,所以我們?nèi)绻朐?b class='flag-5'>VIVADO的控制臺(tái)看到輸出結(jié)果,要先在main.c中定義DEBUG_INFO,如下圖
    發(fā)表于 10-27 06:41

    使用nuclei studio進(jìn)行調(diào)試的一些方法和技巧

    首先是在進(jìn)行處理器優(yōu)化時(shí),需要觀察信號(hào)波形debug,那么就需要使用nuclei studio編譯相關(guān)benchmark,產(chǎn)生.verilog文件在vivado中跑testbench。對(duì)于如何編譯
    發(fā)表于 10-24 07:08

    vivado上基于二進(jìn)制碼對(duì)指令運(yùn)行狀態(tài)進(jìn)行判斷

    a0 -8 為例 獲取相應(yīng)的二進(jìn)制碼將其轉(zhuǎn)換為16進(jìn)制導(dǎo)入vivado,方法就是將代碼文件修改為.verilog文件并存入蜂鳥的tb文件夾,在vivado的tb中修改測(cè)試用例路徑即可進(jìn)行仿真。 得到結(jié)果
    發(fā)表于 10-24 06:31

    AMD Vivado ChipScope助力硬件調(diào)試

    許多硬件問題只有在整個(gè)集成系統(tǒng)實(shí)時(shí)運(yùn)行的過程中才會(huì)顯現(xiàn)出來(lái)。AMD Vivado ChipScope 提供了一套完整的調(diào)試流程,可在系統(tǒng)運(yùn)行期間最大限度提升對(duì)可編程邏輯的觀測(cè)能力,助力設(shè)計(jì)調(diào)試。
    的頭像 發(fā)表于 09-05 17:08 ?1148次閱讀

    FPGA調(diào)試方式之VIO/ILA的使用

    Vivado中,VIO(Virtual Input/Output)是一種用于調(diào)試和測(cè)試FPGA設(shè)計(jì)的IP核,它允許設(shè)計(jì)者通過JTAG接口實(shí)時(shí)讀取和寫入FPGA內(nèi)部的寄存器,從而檢查設(shè)計(jì)的運(yùn)行狀態(tài)并修改其行為。VIO IP核提供了一個(gè)簡(jiǎn)單易用的接口,使得用戶可以輕松地與F
    的頭像 發(fā)表于 06-09 09:32 ?3940次閱讀
    FPGA<b class='flag-5'>調(diào)試</b>方式之VIO/<b class='flag-5'>ILA</b>的使用

    FPGA遠(yuǎn)程燒寫bit文件和調(diào)試ILA指南

    在 FPGA 開發(fā)過程中,燒寫bit文件和使用ILA進(jìn)行調(diào)試是再常見不過的操作。但如果 FPGA 板卡被放在機(jī)房,或者通過PCIe插在服務(wù)器上,那么每次調(diào)試時(shí)我們都不得不帶著筆記本電腦跑去機(jī)房或服務(wù)器旁,接上 JTAG 線后才能
    的頭像 發(fā)表于 06-05 16:41 ?2559次閱讀
    FPGA遠(yuǎn)程燒寫bit文件和<b class='flag-5'>調(diào)試</b><b class='flag-5'>ILA</b>指南

    如何使用One Spin檢查AMD Vivado Design Suite Synth的結(jié)果

    本文講述了如何使用 One Spin 檢查 AMD Vivado Design Suite Synth 的結(jié)果(以 Vivado 2024.2 為例)。
    的頭像 發(fā)表于 05-19 14:22 ?1286次閱讀
    如何使用One Spin檢查AMD <b class='flag-5'>Vivado</b> Design Suite Synth的<b class='flag-5'>結(jié)果</b>

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

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

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

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