Zynq-7000 rgb2ycbcr IP的創建與使用
- 2019 年 10 月 29 日
- 筆記
Zynq-7000 rgb2ycbcr IP的創建與使用
作者:OpenSLee
1 背景知識
IP(Intellectual Property)在嵌入式FPGA設計中,指的是某些設計好的模組,分為軟體模組和硬體模組。這些模組,一般都是已經測試好,所有功能完善的,由一些用戶自己設計的。有些模組是免費的,也有收費的模組。所有用戶都可以將這些IP核(IP Core)導入到自己的工程中,同樣,所有用戶也都可以訂製自己的IP核。
將一些在數字電路中常用但比較複雜的功能塊,如FIR濾波器,SDRAM控制器,PCI介面等等設計成可修改參數的模組,讓其他用戶可以直接調用這些模組,這樣就大大減輕了工程師的負擔,避免重複勞動。隨著CPLD/FPGA的規模越來越大,設計越來越複雜,使用IP核是一個發展趨勢。理想地,一個知識產權核應該是完全易操作的--也就是說,易於插入任何一個賣主的技術或者設計方法。通用非同步接發報機(UARTs)、中央處理器(CPUs)、乙太網控制器和PCI介面(周邊元件擴展介面)等都是知識產權核的具體例子。
知識產權核心分為三大種類:硬核,中核和軟核。硬體中心是知識產權構思的物質表現。這些利於即插即用應用軟體並且比其它兩種類型核的輕便性和靈活性要差。像硬核一樣,中核(有時候也稱為半硬核)可以攜帶許多配置數據,而且可以配置許多不同的應用軟體。三者之中最有靈活性的就是軟核了,它存在於任何一個網路列表(一列邏輯門位和互相連接而成的積體電路)或者硬體描述語言(HDL)程式碼中。
2 rgb2ycbcr IP的建立
對於RGB轉ycbcr的理論可參考《FPGA影像處理之rgbtogray演算法的實現》。
1) 創建工程添加源文件

2) 點擊菜單欄->tools->Create and Package New IP ->Next

3)點擊package your current project->Next

4)選擇IP Location 這裡我們選著Include IP generated files->next->finished
IP Location 放在一個比較好找的位置,以便我們後期的使用

5)對IP進行封裝點擊


各種參數程式碼檢測無誤後點擊Review and Package->Package IP
IP 封裝完成,以後我們可以使用此IP進行設計。
FPGA開源工作室rgb2ycbcr IP的介紹

如上圖所示,clk為像素時鐘,i_rgb介面為rgb888格式輸入。我們分別引出了o_rgb(RGB888)、o_ycbcr和o_gray介面,完成了一個模組三種顏色空間的輸出以便後期設計的使用。
3 zynq-7000的實現
利用《Zynq-7000電子相冊的實現》的設計成果。我們在此平台上驗證rgb2ycbcr模組。
1)添加IP 點擊Project Setting->IP->Repository Manager->+(找到自己IP存放的路徑)->OK.

2)添加rgb2ycbcr IP

其他模組的配置和使用在此不再贅述,需要源工程的可以聯繫FPGA開源工作室。
3)launch SDK
(1)首先選中system右鍵選中Generate Output Products...
(2)選中system右鍵選中Create HDL Wrapper...
(3)建立約束文件XDC
(4)生成bitstream。
(5)導出硬體 選擇菜單File->Export->Export Hardware...。這裡包括bitstream
(6)Launch SDK 選擇菜單File->Launch SDK,啟動SDK環境。
4)SDK編程
程式我們依然實用《Zynq-7000電子相冊的實現》的程式。
5)驗證結果



影片欣賞
4 結論
利用IP來完成設計就像搭積木一樣方便簡單。我們只需要知道IP的功能和介面定義即可方便的使用IP來完成我們的設計,省事又省力。IP的另一個好處是可以復用,不需要每個人都來設計一遍,或者了解裡邊的演算法如何實現。對於該模組的gray和rgb輸出有興趣的同學可以自己驗證一下。

