前 言
本文主要介紹HLS案例的使用說明,適用開發環境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx Vivado HLS 2017.4、Xilinx SDK 2017.4,
Xilinx Vivado HLS(High-Level Synthesis,高層次綜合)工具支持將C、C++等語言轉化成硬體描述語言,同時支持基于OpenCL等框架對Xilinx可編程邏輯器件進行開發,可加速演算法開發的行程,縮短產品上市時間,
本次案例用到的是創龍科技的TLZ7x-EasyEVM-S開發板,它是一款基于Xilinx Zynq-7000系列XC7Z010/XC7Z020高性能低功耗處理器設計的異構多核SoC評估板,處理器集成PS端雙核ARM Cortex-A9 + PL端Artix-7架構28nm可編程邏輯資源,評估板由核心板和評估底板組成,核心板經過專業的PCB Layout和高低溫測驗驗證,穩定可靠,可滿足各種工業應用環境,

TLZ7x-EasyEVM-S評估板
TLZ7x-EasyEVM-S評估板評估板介面資源豐富,引出千兆網口、雙路CAMERA、USB、Micro SD、CAN、UART等介面,支持LCD顯示拓展及Qt圖形界面開發,方便快速進行產品方案評估與技術預研,
led_flash案例
案例功能:控制評估底板LED2每隔0.5s將狀態翻轉一次,
HLS工程說明
- 時鐘
HLS工程配置的時鐘為100MHz,案例將該時鐘用于計算0.5s間隔時間進行LED2亮滅狀態控制,生成的IP核亦需接入該時鐘,如需修改時鐘頻率,請打開HLS工程后點擊,在彈出的界面中的Synthesis欄目進行修改,

圖 26
- 頂層函式
案例頂層函式為led_flash.cpp中的led_flash(),

圖 27
點擊然后,可在彈出的界面中的Synthesis欄目查看或設定頂層函式,

圖 28
該函式控制評估底板LED2每隔0.5s將狀態翻轉一次,工程設定的時鐘為100MHz(周期10ns),在for回圈里計數值為100000000,用時為10ns x 100000000 = 1s,
編譯與仿真
請參考本檔案HLS開發流程說明章節,進行編譯,編譯完成后,進入仿真界面點擊后進行單步運行,進入led_flash()函式,

圖 29

繼續點擊后進入for回圈,當i < 50000000時,*led_o等于1(true),

圖 31
點擊后全速運行或修改i的值為50000000,當i ≥ 50000000時,*led_o等于0(false),

圖 32
IP核測驗
請參考本檔案HLS開發流程說明章節,完成IP核測驗前的準備作業,
HLS工程生成的IP核為led_flash_0,

圖 33
加載PL端.bit格式可執行檔案,即可看到評估底板的LED2進行閃爍,
key_led_demo案例
案例功能:通過按鍵KEY2控制評估底板的LED2狀態,
HLS工程說明
- 時鐘
HLS工程配置的時鐘為100MHz,案例通過按鍵KEY2控制評估底板的LED2狀態,實際沒有使用該時鐘,如需修改時鐘頻率,請打開HLS工程后點擊
,在彈出的界面中的Synthesis欄目進行修改,

圖 34
- 頂層函式
案例頂層函式為key_led_demo.cpp中的key_led_demo(),

圖 35
點擊后,可在彈出的界面中的Synthesis欄目查看或設定頂層函式,

圖 36
按鍵所對應的IO默認是上拉、高電平,按下按鍵時,key_i為0;松開按鍵時,key_i為1,
普通標量型別引數對應IP核的輸入介面,如key_i作為輸入,指標型別引數可作為輸入輸出,如*led_o作為輸出,

圖 37
編譯與仿真
請參考本檔案HLS開發流程說明章節,進行編譯,編譯完成后,進入仿真界面點擊后進行單步運行,可看到Console視窗列印led_o的值,由于key_i默認值為0,因此led_o的值為1,

圖 38
修改key_i的值為1,并繼續點擊進行單步運行,

圖 39
此時可看到led_o的值為0,

圖 40
IP核測驗
請參考本檔案HLS開發流程說明章節,完成IP核測驗前的準備作業,
HLS工程生成的IP核為key_led_demo_0,

圖 41
加載PL端.bit格式可執行檔案,按下KEY2則LED2點亮,松開KEY2則LED2熄滅,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/355397.html
標籤:其他
