Video Processing SubSystem (VPSS) IP 核簡介
賽靈思系列 Video Processing Subsystem IP 核是為了便于使用而被封裝到單個 IP 中的一組系列處理 IP。該核是基于 HLS 的 IP。這就是說當您將 IP 添加到設計中后,此核用 C/C++ 編寫,然后在后臺由 Vivado 轉換為 RTL(VHDL/Verilog)。
VPSS IP 支持多種系列處理功能,例如:
- 去交織
- 系列縮放(向上和向下縮放)
- 色彩空間轉換
- 幀速率轉換
VPSS IP 隨附 Vivado 2018.3 及更高版本免費提供。
有關 VPSS IP 的文檔,請參閱《Video Processing Subsystem 產品指南》 (PG231)。
建議 #1:從(硬件)示例設計開始
本系列條目旨在為任何即將使用 VPSS IP 的用戶提供指導。
正如我先前提到過的,VPSS IP 基于 HLS 并有多個核。
這就會涉及到用戶需要遵循的一些復雜規則。操作并不復雜,但要快速啟動,最好的方法是參考硬件和軟件設計的示例設計。
生成硬件 (Vivado) 示例設計非常簡單。
(注意:這些步驟記錄在《Video Processing Subsystem 產品指南》 (PG231) 第 67 頁的“詳細示例設計”中)
1. 打開 Vivado(我使用的是 2018.3 版)
2. 為支持的一個電路板(KC705、ZCU102、ZCU104 或 ZCU106)創建一個新工程
- 注 1:如果您使用的是 Vivado webpack 版,則只能使用 ZCU104 電路板。
- 注 2:您是否有此電路板并不重要。示例設計僅用作參考。您可以重新創建自己的電路板。
3. 創建塊設計 (BD) 并添加 Video Processing SubSystem IP。保存塊設計。
4. 在源窗口中,右鍵單擊 IP 并選擇“Generate Example Design”。
5. 選擇要生成示例設計的路徑
注意:生成 VPSS 時出現的常見問題是使用 Windows 操作系統時的路徑問題。如果您使用的是 Windows 主機操作系統,請確保使用最短路徑進行示例設計(和任何一般項目)。
在 Vivado 設計中,最重要的是要看來自 VPSS 的復位信號(該信號控制上游 (TPG) 和下游 (AXI4S 到系列輸出) IP)。
此信號主要用于拖延上游 IP 發送數據(直到配置了 VPSS 且做好了接受新數據的準備時)。由于 VPSS 是基于 HLS 的 IP,因此至關重要的是要確保進來的第一個數據是幀的第一個像素。
注意:由于此復位信號,每當 VPSS IP 中的配置被更改時,可能會需要重新配置通過此復位連接的上游 IP。
此外,值得注意的是,示例設計不會在電路板上輸出系列數據。設計檢查 VPSS 是否在正常工作的方式是確認 AXI4-Stream 到系列輸出 IP 已鎖定,這就意味著 VTC 中設置的分辨率和 VPS S 輸出的像素/行數相匹配。
注意:系列時鐘未調整為系列分辨率,而且固定為 150 MHz。因此,在電路板上輸出系列數據將無法正常工作。但是,這個時鐘足以表明 VPSS 足夠快,可以容納每個時鐘 1 個像素 (PPC) 1080p 個像素的流的配置。
如果需要生成軟件應用示例設計,則需要為 BD 生成 BD 輸出產品(在源窗口中右鍵單擊“BD > generate output products”)并選擇導出到硬件(文件導出硬件)。
注意:如果要在電路板上運行設計,還需要為設計生成比特流,并在導出硬件時檢查“include bitstream”選項。
建議 #2:查看軟件示例應用
在編寫自己的應用之前,最好先將 VPSS 應用示例設計作為參考。
要生成此應用示例設計:
1. 打開 SDK 并將工作空間設置到示例設計的 .sdk 文件夾。
2. 創建新的硬件平臺規格:
- “File > New > Other > Xilinx > Hardware Platform Specification”
- 單擊“瀏覽”并選擇從 VPSS Vivado 示例設計生成的 .hdf 文件,然后單擊“Finish”。
注意:如果您從 Vivado VPSS 示例工程啟動 SDK,則不需要此步驟 (2.) (此步驟會自動完成)。
3. 創建一個新的 BSP:單擊“File > New > Board Support Package”。保留 BSP 的默認設置,然后單擊“Finish”。
4. 在 BSP 文件夾下,雙擊 system.mss 文件打開它(如果尚未打開的話)。
6. 在“Examples”窗口中,選擇系列處理器子系統示例(xv_procss_example),然后單擊“OK”。
運行應用
7. 將 USB 電纜從主機 PC 連接到 USB JTAG 端口。確保安裝了相應的器件驅動。
8. 將第二根 USB 電纜從主機 PC 連接到 USB JTAG 端口。確保已安裝 USB UART 驅動。
注意:在 ZCU104 電路板上,UART 和 JTAG 只需要一根 USB 電纜。
9. 將評估板連接到電源插槽。
10. 打開電路板。
11. 使用以下標準 COM 端口設置在主機 PC 上啟動終端程序(例如,超級終端):
- 波特率:115200
- 數據比特:8
- 奇偶校驗:無
- 停止位:1
- 流量控制:無
12. 右鍵單擊項目資源管理器中的應用,然后選擇“Build Project”。
13. 右鍵單擊應用,然后選擇“Run As… > Run Configurations”。
14. 在“Run Configurations”窗口中,右鍵單擊 Xilinx C/C++應用(系統調試器)并選擇“New”。
建議 #3:參閱 API 文檔
預計將使用驅動 API 對 Video Processing Subsystem IP 進行配置和控制(即使在 (PG231) 中為了調試目的記錄了寄存器映射,也不支持直接訪問寄存器)。
通過查看 API 文檔,確保您熟悉所有可用的 API 并了解其用途。要打開文檔,單擊與 system.mss 文件中的 VPSS 相對應的“Documentation”鏈接(在 BSP 下)
建議 #4:使用 VPSS 日志進行調試
示例應用中很重要的一行是顯示 UART 中的日志的那一行:
XVprocSs_LogDisplay(VpssPtr);
如果您遇到 VPSS 方面的問題,您真的需要使用此功能,因為它會讓您清楚地了解到 VPSS 無法正常工作的原因(配置錯誤、系統停止等)
編輯:hfy
-
FPGA
+關注
關注
1644文章
22002瀏覽量
615885 -
usb
+關注
關注
60文章
8153瀏覽量
271536 -
操作系統
+關注
關注
37文章
7118瀏覽量
125203
發布評論請先 登錄
評論