在上篇文章中,我們發(fā)布了熱門 HLS小橙書-pp4fpgas 的第二次校訂。文中提到的習(xí)題案例現(xiàn)均已集成到 PYNQ 框架中,特向大家分享。
那么這些案例通過 PYNQ 框架會帶來哪些便利呢?本文給大家做一個簡單的類比:
過去
在完成項目的 HLS 優(yōu)化之后,若要對其進行功能正確性的驗證,通常我們先對設(shè)計進行仿真,這樣比較方便看到設(shè)計的波形。但大型設(shè)計往往對運行的平臺有較高的要求,同時 co-simulation 等軟件層面的仿真并未使項目中的運算在硬件上運行,所得的延時等指標仍較真實值有一定差距。
當(dāng)然我們也可以在設(shè)計中插入 ILA 或者借助邏輯分析儀等信號處理儀器進行實際硬件電路的觀測。但專用儀器往往在實驗室才能獲取,且較為昂貴,因此給整個開發(fā)流程帶來了極大的不便。
現(xiàn)在
PYNQ 框架在測試中可以理解為:
在 ARM 處理上運行了一套利用 Jupyter Notebook 和 Python 構(gòu)建的軟件測試激勵產(chǎn)生和結(jié)果顯示的框架。
在 FPGA 上利用部分資源構(gòu)建了一套時序精準的測試接口。
這樣用戶可以方便的完成測試激勵產(chǎn)生和顯示,同時可以實時的觀測結(jié)果。尤其是對于此次 pp4fpgas 的數(shù)字信號處理案例,我們可以在 Jupyter Notebook 上非常直觀的觀測到時域頻域的轉(zhuǎn)換,信號波形等等。用戶只需關(guān)注 HLS 設(shè)計即可。通過 PYNQ,可編程邏輯電路將作為硬件庫導(dǎo)入并通過其 API 進行編程,其方式與導(dǎo)入和編程軟件庫基本相同。
以 CORDIC 算法為例,首先我們需要對 HLS 優(yōu)化后的 CORDIC 算法生成IP核,隨后就可以在PYNQ 框架內(nèi),通過內(nèi)存映射 I/O 與 ARM 處理器的 IP 進行通信。如上圖所示,我們僅需創(chuàng)建一個 Jupyter Notebook,編寫 Python 代碼給 IP 發(fā)送數(shù)據(jù),執(zhí)行該核心,就可以在 Notebook 中得到通過硬件計算出的答案,從而完成驗證。
包括 CORDIC 在內(nèi),pp4fpgas目前配套了7個 project 練習(xí),覆蓋了許多信號處理領(lǐng)域的重要內(nèi)容,對提高 HLS 的運用能力,增加對 HLS 的理解十分有幫助。Project 內(nèi)容如下:
FIR Filter Design
CORDIC
Phase Detector
Discrete Fourier Transform (DFT)
Fast Fourier Transform (FFT)
OFDM Receiver
FM Demodulator
編輯:lyn
-
CORDIC
+關(guān)注
關(guān)注
0文章
37瀏覽量
19921 -
HLS
+關(guān)注
關(guān)注
1文章
128瀏覽量
23916
原文標題:在 PYNQ 框架下可視化的驗證 HLS 算法實現(xiàn) - 小橙書 pp4fpgas 案例發(fā)布
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論