概述
高層次綜合設計最常見的的使用就是為CPU創建一個加速器,將在CPU中執行的代碼移動到FPGA可編程邏輯去提高性能。本文展示了如何在Zynq AP SoC設計中使用HLS IP。
在Zynq器件應用Vivado HLS IP
這里集成了HLS IP和由HLS創建的軟件驅動,目的是控制在Zynq器件上實現的IP設計。
Step 1: 創建Vivado HLS IP Block
?
腳本完成時,會生成vhls_prj文件,里面包含HLS IP,下面介紹Vivado HLS IP blocks如何被集成到使用IP Integrator的Zynq器件中。
Step 2: 創建 Vivado Zynq Project
1.打開vivado 2016.3,點擊Create New Project,選擇Using_IP_with_Zynqlab1路徑,下一步在Project Type頁面選擇RTL Project和Do not specify sources at this time
?
然后在Boards下選擇ZYNQ-7 ZC702 Evaluation Board,最后點擊Finish。
Step 3:將HLS IP 添加到 IP Catalog
在Flow Navigator窗口點擊IP Catalog,然后點擊IP Settings,在IP部分里Add Repository,選擇Using_IP_with_Zynqlab1hls_maccvhls_prjsolution1implip,這樣就把HLS_macc這個HLS IP添加進IP目錄中。
Step 4: 創建一個IP Integrator Block系統的設計
1.在Flow Navigator窗口點擊Create Block Design,將design name改為Zynq_Design,然后添加ZYNQ7 Processing System這個IP,然后雙擊ZYNQ IP打開Re-customize IP窗口,在Presets選擇ZC702,在Page Navigator窗口點擊MIO Configuration,展開Application Processor Unit,去掉Timer 0,最后在Page Navigator窗口點擊Interrupts,勾選并展開Fabric Interrupts,選擇IRQ_F2P[15:0]
?
2.點擊標題上的Run Block Automation,選擇processing_system7_0,去掉Apply Board Presets,然后將hls_macc IP添加進設計,然后點擊Run Connection Automation,選擇/hls_macc_0/S_AXI_HLS_MACC_PERIPH_BUS,這樣HLS IP就自動連接到 Zynq器件上的M_AXI_GP0 接口,然后連接hls_macc_0的interrupt端口和PS7的IRQ_F2P[0:0]端口。
?
3.選擇Address Editor,確定hls_macc_0外部已經分配到主地址范圍,如果沒有,就點擊Auto Assign Address
?
最后是Validate Design,成功通過后,save the Block Design。
Step 5: 實現系統
在進一步系統設計之前,必須生成一個source 和HDL wrapper來作為綜合和實現頂層函數。
1.Flow Navigator窗口里選擇Project Manager,在Zynq_Design右擊選擇Generate Output Products,然后選擇Generate去開始生成必要的source文件
?
2.在Zynq_Design右擊選擇Create HDL Wrapper,這里Design Sources的頂層變成Zynq_Design_wrapper.v文件,現在設計準備去綜合和實現,并且生成FPGA programming bitstream。
3.點擊Generate Bitstream,當bitstream完成后,在彈出的對話框里選擇Open Implemented Design,并點擊OK。
Step 6:軟件開發和在Zynq系統運行
現在我們準備將設計導入到Xilinx SDK,在SDK中,你將創建運行在zc702板上的軟件(如果有)。HLS block的驅動產生在HLS導出到Vivado IP封裝期間。該驅動程序必須在SDK里可以使用,以便于PS7軟件可以與block進行交流。
1.在Vivado File菜單里選擇Export > Export Hardware,并勾選Include Bitstream,然后在Vivado File菜單里選擇Launch SDK。
2.在SDK File目錄里選擇New > Application Project,在project name里輸入Zynq_Design_Test,點擊next,選擇Hello World,點擊finish。在這里給zc702板通電并且測試HelloWorld應用,確保板子所有連接正確,在FPGA器件上去下載位流文件,并且可以看到zc702開發板上的文檔。
?
3.選擇Xilinx Tools > Program FPGA,此時注意到Done LED亮了,然后底部窗口點擊SDK Terminal,選擇Connection to Serial port,Port選擇COM1,Baud Rate選擇115200,點擊OK
4.右擊Zynq_Design_Test選擇Run As > Launch on Hardware,最后在Terminal窗口驗證Hello World是否被接受。
?
總結
本文介紹了如何使用Tcl腳本創建Vivado HLS IP,并且將HLS IP設計IP導入IP Integrator,以及如何將HLS IP 連接到使用AXI4-Lite接口和AXI4-Stream接口的Zynq AP SoC。
評論
查看更多