Xilinx的ZYNQ7020平臺內部包括兩部分,即PL和PS。PL為FPGA邏輯部分,PS為雙核ARM9 。FPGA邏輯與ARM9之間的通訊採用高效能的AXI4匯流排,PS為PL提供系統時鐘,復位等基本訊號。透過ARM9系統外圍掛載AXI介面的DMA來控制FPGA邏輯部分的FFT IP核的資料輸入輸出。
下面詳細介紹具體搭建步驟。
第三步:配置zynq系統,新增系統外設,記憶體,配置時鐘,中斷系統。
配置系統完畢後,建立DDR3埠,時鐘和復位輸出,及其他IO埠。
配置DMA的引數。
第五步:新增concat ip,將DMA的輸入輸出中斷連線concat ip的輸入埠,將輸出埠連線到zynq的中斷埠上。
第六步:新增兩個AXISTREAM FIFO IP核,分別連線到DMA的輸入輸出埠,同時配置FIFO的儲存深度,及資料位寬。
等待幾分鐘,生成後,系統中添加了一些檔案及IP
頂層檔案新增完成後如下圖所示。
建立FFT IP 頂層檔案,例項化FFT IP,便於FFT IP的模擬,呼叫。
頂層檔案中新增如下程式碼。
第八步:在PS的系統頂層檔案zynq_7020_fft_system_wrapper中,例項化FFT IP的頂層檔案FFT_Top,如下所示。
第九步:建立FFT IP核的模擬檔案,單獨對FFT IP進行模擬模擬測試。
對於浮點數的FFT IP模擬測試,需要提供單精度浮點數格式(32位的二進位制數),且提供虛部和實部。blk_mem_gen_real存放實部,長度為1024,blk_mem_gen_imag存放虛部,長度為1024,本文的FFT IP是之前已除錯好的IP測試,直接呼叫即可。
模擬時序
FFT IP輸入資料時序
FFT IP 輸出資料時序
第十步:測試完成後,生成bit流,不需配置管腳。
生成bit流後,可以檢視系統資源利用率。
第十一步:匯出Hardware。
建立main.c。
新增DMA測試例程,同時提供FFT IP所需實部和虛部,且都為單精度浮點數。修改check_data函式,將接收的資料存為檔案,匯入到matlab中進行資料比對。
經過以上步驟實現了zynq系統對FPGA邏輯部分的FFT IP核的呼叫。但,還需在硬體平臺下進行驗證。希望題主或者感興趣的朋友可以按此步驟驗證,也可擴充套件訓練,掛載其他IP核。
Xilinx的ZYNQ7020平臺內部包括兩部分,即PL和PS。PL為FPGA邏輯部分,PS為雙核ARM9 。FPGA邏輯與ARM9之間的通訊採用高效能的AXI4匯流排,PS為PL提供系統時鐘,復位等基本訊號。透過ARM9系統外圍掛載AXI介面的DMA來控制FPGA邏輯部分的FFT IP核的資料輸入輸出。
下面詳細介紹具體搭建步驟。
第三步:配置zynq系統,新增系統外設,記憶體,配置時鐘,中斷系統。
配置系統完畢後,建立DDR3埠,時鐘和復位輸出,及其他IO埠。
配置DMA的引數。
第五步:新增concat ip,將DMA的輸入輸出中斷連線concat ip的輸入埠,將輸出埠連線到zynq的中斷埠上。
佈線連線後如下圖所示。第六步:新增兩個AXISTREAM FIFO IP核,分別連線到DMA的輸入輸出埠,同時配置FIFO的儲存深度,及資料位寬。
等待幾分鐘,生成後,系統中添加了一些檔案及IP
頂層檔案新增完成後如下圖所示。
建立FFT IP 頂層檔案,例項化FFT IP,便於FFT IP的模擬,呼叫。
頂層檔案中新增如下程式碼。
第八步:在PS的系統頂層檔案zynq_7020_fft_system_wrapper中,例項化FFT IP的頂層檔案FFT_Top,如下所示。
第九步:建立FFT IP核的模擬檔案,單獨對FFT IP進行模擬模擬測試。
對於浮點數的FFT IP模擬測試,需要提供單精度浮點數格式(32位的二進位制數),且提供虛部和實部。blk_mem_gen_real存放實部,長度為1024,blk_mem_gen_imag存放虛部,長度為1024,本文的FFT IP是之前已除錯好的IP測試,直接呼叫即可。
模擬時序
FFT IP輸入資料時序
FFT IP 輸出資料時序
第十步:測試完成後,生成bit流,不需配置管腳。
生成bit流後,可以檢視系統資源利用率。
第十一步:匯出Hardware。
啟動SDK。建立main.c。
新增DMA測試例程,同時提供FFT IP所需實部和虛部,且都為單精度浮點數。修改check_data函式,將接收的資料存為檔案,匯入到matlab中進行資料比對。
經過以上步驟實現了zynq系統對FPGA邏輯部分的FFT IP核的呼叫。但,還需在硬體平臺下進行驗證。希望題主或者感興趣的朋友可以按此步驟驗證,也可擴充套件訓練,掛載其他IP核。