作者:AMD intern Zhang Guanghao
文章來源:AMD Xilinx開發者社區
? ? ? ?Multi-Scaler是一個用于圖像縮放的視頻處理IP核,支持最多8路輸出,使用Memory接口,從源緩沖區讀取圖像,在H和V域進行縮放后寫入到目的緩沖區,源端的緩地址和目的端緩存地址可以動態的更改,輸出完成之后會產生一個中斷信號。IP的配置界面如圖:
? ? ? ?此示例提供了一個Multi-Scaler的典型用法,測試程序將在縮放前讀取目的緩沖區,然后將指定圖像寫入源緩沖區,并且將用戶提供的參數載入到硬件寄存器中并啟動IP。Multi-Scaler讀取源緩沖區的圖像進行縮放后寫入目的緩沖區,當所有的輸出都完成后Multi-Scaler會產生一個中斷信號,這會調用中斷處理程序去讀取目的緩沖區的內容并驗證數據是否正確。
? ? ? ?此示例支持的平臺如圖所示:
首先建立一個工程,這個工程用來打開example工程,這里我使用ZCU102評估版。
建立好工程后創建一個block design,添加Multi-Scaler IP。
右擊Multi-Scaler IP,選擇Open IP Example Design
選擇Example工程的路徑和例化名稱,Vivado會自動生成一個新的工程
打開后的Example工程如圖所示
直接進行綜合、實現、生成bit流文件,這個過程會花費大量時間。
成功后導出包含bit流的hardware
到此硬件部分已經完成,打開Vitis進行軟件部分的設計,選擇工作路徑。
建立一個Platform工程
填寫工程名稱后選擇剛才生成的XSA文件,vitis會解析我們的硬件文件。
完成工程的創建后,右擊platform工程,點擊build project。
Build成功后再新建一個application project
這里的platform選擇我們剛才生成的platform工程
Next后輸入工程名稱, 一直Next,直到最后選擇模板的頁面,選擇空的C模板。
之后需要插入XILINX提供的測試代碼,測試代碼的路徑在
Install_directory即為XILINX工具的安裝路徑,release是版本號。比如我在windows下的路徑就是:D:\xilinx\Vitis\2022.2\data\embeddedsw\XilinxProcessorIPLib\drivers\v_multi_scaler_v1_2
將這個.c文件復制到vitis工程路徑下,vitis會在工程中自動識別到
或者右擊src插入,選擇此文件。
之后對工程進行build project
Build結束后,可以看到Debug下生成了elf可執行文件
此時即可連接板子,把啟動方式更改為JTAG啟動,連接JTAG線和串口線,打開Vitis的串口終端,這里演示2022.2的打開方式,不同版本打開方式可能不同。
Windows -> show view -> terminal
打開一個terminal,選擇serial,選擇對應的COM口,波特率設置為115200
之后右擊工程運行即可
可以看到串口輸出結果,提示Multi-scaler測試運行成功
在測試過程中需要注意:
1.工具版本盡量使用最新工具,否則會有IP無法使用等報錯,這里我使用2022.2版本。
2.建立好platform后一定要先build,否則可能在建立應用程序時出現缺少文件的情況。
3. 由于測試過程中有諸多不確定因素,本文使用的硬件平臺為ZCU102,軟件平臺為vivado2022.2和vitis2022.2,其他版本的軟硬件平臺在操作過程中可能會與文章所述有所出入。
4. 此文章只介紹了Multi-Scaler的基本作用,以及示例工程的測試,具體的實現代碼可以查看xv_multi_scaler_example.c文件,有關Multi-scaler的詳細信息請查閱參考文檔的PG325。
點擊“閱讀原文”查看參考文檔:Multi-Scaler LogiCORE IP Product Guide (PG325)

