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

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

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

如何使用Python腳本調(diào)試賽靈思PCIe設(shè)計(jì)?

FPGA技術(shù)江湖 ? 來(lái)源:XILINX開發(fā)者社區(qū) ? 2023-06-26 09:20 ? 次閱讀

獲取 CSV:

現(xiàn)在,您不僅可以使用 Python 腳本執(zhí)行調(diào)試分析,更重要的是,借由 Vivado ILA 所生成的 ILA 文件可以進(jìn)一步簡(jiǎn)化此操作。通過(guò)將 *.ila 擴(kuò)展名重命名為 *.zip 然后將生成的文件解壓,即可將其轉(zhuǎn)換為 CSV 文件。

解壓后的文件夾將包含以下列表中的文件:

f6b4bffa-13aa-11ee-962d-dac502259ad0.png

Python 可提供相應(yīng)的庫(kù),用于 CSV 文件分析,以便對(duì) Vivado ILA 所生成的調(diào)試信號(hào)數(shù)據(jù)執(zhí)行詳盡的分析。調(diào)試信號(hào)還可在 Vivado 硬件管理器中以波形形式來(lái)查看。對(duì)于計(jì)算某些接口中的數(shù)據(jù)包數(shù)量、解讀數(shù)據(jù)包內(nèi)的字段值等分析操作,使用 Python 腳本方法更便于進(jìn)行定制調(diào)試。

Python 腳本用例示例

此處提供的 Python 腳本會(huì)對(duì) ILA 數(shù)據(jù)執(zhí)行分析,這些數(shù)據(jù)包含下圖所示的 RQ/RC/CQ/CC 接口信號(hào)。此模塊框圖源自 (PG213),該文檔適用于 UltraScale+ 器件 Integrated Block for PCI Express IP。

PG213:

f6d927a0-13aa-11ee-962d-dac502259ad0.png

此腳本可識(shí)別每個(gè)接口上有效的數(shù)據(jù)包、提取每個(gè)數(shù)據(jù)包中的描述符文件,并報(bào)告輸出每個(gè)字段的值。

適用于 PCIe 調(diào)試的 Python 代碼示例:

該腳本執(zhí)行的步驟如下所述:

打開 CSV 文件。

從所選 CSV 文件中提取數(shù)據(jù)。

提取包含目標(biāo)數(shù)據(jù)的特定列/報(bào)頭。

使用“tready”、“tvalid”和“tlast”作為限定符來(lái)識(shí)別有效的數(shù)據(jù)包。

提取有效的 tdata 值,并使用函數(shù)執(zhí)行十六進(jìn)制到二進(jìn)制轉(zhuǎn)換。

二進(jìn)制轉(zhuǎn)換是從“tdata”提取比特級(jí)數(shù)據(jù)所必需的操作。

打印含十六進(jìn)制數(shù)據(jù)的描述符字段。

以下 func_rq_pkt_analysis() 函數(shù)會(huì)導(dǎo)入 CSV 文件并基于提供的 tready 值來(lái)判定要對(duì)哪個(gè)接口運(yùn)行分析。

f74b5ba4-13aa-11ee-962d-dac502259ad0.png

以下代碼可識(shí)別 .csv 文件中相應(yīng)字段的列編號(hào),如下所示:

f760002c-13aa-11ee-962d-dac502259ad0.png

僅提取 tready 值、tdata 值、tvalid 值和 tlast 值,并將其存儲(chǔ)在詞典中,作為對(duì)應(yīng)索引的值,該索引將用作為詞典的鍵。

f787cac6-13aa-11ee-962d-dac502259ad0.png

下一步是對(duì)詞典中存儲(chǔ)的數(shù)據(jù)執(zhí)行分析。詞典包含 tdata、tready、tvalid 和 tlast。

for 循環(huán)會(huì)遍歷詞典中的每一行,如果發(fā)現(xiàn) tready 和 tvalid 均為“1”,那么它會(huì)將對(duì)應(yīng)數(shù)據(jù)復(fù)制到變量中。tdata 作為十六進(jìn)制數(shù)值存儲(chǔ)在 CSV 文件中。為了對(duì)描述符字段標(biāo)識(shí)執(zhí)行比特級(jí)提取,需將十六進(jìn)制值轉(zhuǎn)換為二進(jìn)制。

描述符字段的提取是基于 (PG213) 中提供的描述符格式來(lái)執(zhí)行的。以下示例顯示了完成方完成 (CC) 接口的描述符。

f7b0e2c6-13aa-11ee-962d-dac502259ad0.png

f7d141f6-13aa-11ee-962d-dac502259ad0.png

為打印描述符字段值,需使用 bin_to_hex_print( ) 函數(shù)將此二進(jìn)制值再次轉(zhuǎn)換為十六進(jìn)制。

該函數(shù)定義如下:

f844e4b2-13aa-11ee-962d-dac502259ad0.png

以下是本篇博文隨附的 waveform.csv 文件的輸出示例:

f860580a-13aa-11ee-962d-dac502259ad0.png

代碼限制示例

提供的代碼示例僅作為概念證明。提供的腳本則可在以下情況下“按現(xiàn)狀”直接使用:

1.數(shù)據(jù)包包含 1 個(gè)數(shù)據(jù)節(jié)拍,即 tready/tvalid 和 tlast 全都在同一個(gè)時(shí)鐘周期內(nèi)斷言有效。
2.不使用跨接。
3.對(duì)應(yīng)接口的 tdata、tready、tvalid 和 tlast 的信號(hào)命名方式與本文隨附的 .csv 文件中的命名相同。

使用 Python 執(zhí)行 PCIe 調(diào)試的用例

Python 腳本示例可通過(guò)擴(kuò)展用于調(diào)試下列各種場(chǎng)景:

1.計(jì)算每個(gè)接口上的數(shù)據(jù)包數(shù)量。

2.在啟用跨接的用戶接口上執(zhí)行數(shù)據(jù)包分析。

3.支持分析含多個(gè)數(shù)據(jù)節(jié)拍的數(shù)據(jù)包,例如,跨多個(gè)時(shí)鐘周期的數(shù)據(jù)包。

4.驗(yàn)證是否接收到拆分完成包。

5.在給定的 ILA 捕獲窗口緩沖器大小足夠的情況下,驗(yàn)證用戶邏輯在 CC 接口上生成的完成包是否正確,并驗(yàn)證在 RC 接口上是否同樣接收到完成包(用于 RQ 接口上的對(duì)應(yīng)請(qǐng)求)。





審核編輯:劉清

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

    關(guān)注

    38

    文章

    7492

    瀏覽量

    163834
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4797

    瀏覽量

    84689
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    812

    瀏覽量

    66538
  • PCIe接口
    +關(guān)注

    關(guān)注

    0

    文章

    120

    瀏覽量

    9706
  • csv
    csv
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    5824

原文標(biāo)題:使用 Python 調(diào)試 PCIe 問(wèn)題

文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    790.被并入AMD對(duì)中國(guó)FPGA廠商有什么意義?

    fpga
    小凡
    發(fā)布于 :2022年10月05日 02:52:44

    Verilog(FPGACPLD)設(shè)計(jì)小技巧

    Verilog(FPGACPLD)設(shè)計(jì)小技巧
    發(fā)表于 08-19 22:52

    FPGA是用altera多還是的多呢

    FPGA是用altera多還是的多呢,我買的開發(fā)板是altera的,但是很多人推薦說(shuō)學(xué)習(xí)
    發(fā)表于 01-09 21:27

    XilinxFPGA技術(shù)及應(yīng)用線上公開課

    ` 本帖最后由 MGJOY 于 2017-4-10 15:07 編輯 本周三,4月12日,FPGA技術(shù)及應(yīng)用線上公開課。歡迎大家觀看、學(xué)習(xí)交流~分享主題【
    發(fā)表于 04-10 15:06

    【PYNQ-Z2申請(qǐng)】基于PYNQ-Z2平臺(tái)的圖像實(shí)時(shí)力學(xué)測(cè)量

    項(xiàng)目名稱:基于PYNQ-Z2平臺(tái)的圖像實(shí)時(shí)力學(xué)測(cè)量試用計(jì)劃:申請(qǐng)理由本人在圖像輔助力學(xué)測(cè)量領(lǐng)域有三年的研究經(jīng)驗(yàn),曾設(shè)計(jì)過(guò)類似基于光學(xué)及圖像的微納力學(xué)傳感器,想借助發(fā)燒友論壇和
    發(fā)表于 01-09 14:49

    Xilinx方案

    能做方案的,請(qǐng)聯(lián)系
    發(fā)表于 01-21 19:31

    什么是豐富目標(biāo)設(shè)計(jì)平臺(tái)?

    今年年初,率先在FPGA領(lǐng)域提出目標(biāo)設(shè)計(jì)平臺(tái)概念,旨在通過(guò)選用開放的標(biāo)準(zhǔn)、通用的開發(fā)流程以及類似的設(shè)計(jì)環(huán)境,減少通用工作對(duì)設(shè)計(jì)人員時(shí)間的占用,確保他們能集中精力從事創(chuàng)新性的開發(fā)工作。
    發(fā)表于 08-13 07:27

    為什么說(shuō)已經(jīng)遠(yuǎn)遠(yuǎn)領(lǐng)先于Altera?

    Altera和20年來(lái)都在FPGA這個(gè)窄眾市場(chǎng)激烈的競(jìng)爭(zhēng)者,然而Peter Larson基于對(duì)兩個(gè)公司現(xiàn)金流折現(xiàn)法的研究表明,
    發(fā)表于 09-02 06:04

    高價(jià)回收系列IC

    高價(jià)回收系列IC長(zhǎng)期回收系列IC,高價(jià)求購(gòu)
    發(fā)表于 04-06 18:07

    如何使用FPGA加速包處理?

    FAST包處理器的核心功能是什么如何使用FPGA加速包處理?
    發(fā)表于 04-30 06:32

    這顆是限制料還是翻新料?

    絲印查不到系列型號(hào),引腳數(shù)量也對(duì)不上所有型號(hào)規(guī)格,也沒有韓國(guó)產(chǎn)地
    發(fā)表于 02-24 17:01

    收購(gòu)深鑒科技_收購(gòu)目的及發(fā)展

    本文首先介紹了,其次介紹了收購(gòu)深鑒科技的過(guò)程以及目的,最后介紹了
    的頭像 發(fā)表于 07-18 11:19 ?4906次閱讀

    的目標(biāo)和發(fā)展

    公司亞太區(qū)銷售與市場(chǎng)副總裁楊飛表示,的SDx系列仍會(huì)持續(xù)發(fā)展。毫無(wú)疑問(wèn),這會(huì)幫助
    的頭像 發(fā)表于 07-24 17:58 ?3329次閱讀
    <b class='flag-5'>賽</b><b class='flag-5'>靈</b><b class='flag-5'>思</b>的目標(biāo)和發(fā)展

    Alveo? U50面世

    支持第四代 PCIe首款輕量級(jí)加速卡,
    的頭像 發(fā)表于 08-13 14:24 ?3148次閱讀

    、Solarflare正式合并!

    今年四月公開宣布的 Solarflare 收購(gòu)案已經(jīng)正式完成。
    的頭像 發(fā)表于 08-13 16:59 ?3948次閱讀