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