Zynq-7000 rgb2ycbcr IP的創(chuàng)建與使用
掃描二維碼
隨時隨地手機看文章
Zynq-7000 rgb2ycbcr IP的創(chuàng)建與使用
1 背景知識
IP(Intellectual Property)在嵌入式FPGA設(shè)計中,指的是某些設(shè)計好的模塊,分為軟件模塊和硬件模塊。這些模塊,一般都是已經(jīng)測試好,所有功能完善的,由一些用戶自己設(shè)計的。有些模塊是免費的,也有收費的模塊。所有用戶都可以將這些IP核(IP Core)導(dǎo)入到自己的工程中,同樣,所有用戶也都可以定制自己的IP核。
將一些在數(shù)字電路中常用但比較復(fù)雜的功能塊,如FIR濾波器,SDRAM控制器,PCI接口等等設(shè)計成可修改參數(shù)的模塊,讓其他用戶可以直接調(diào)用這些模塊,這樣就大大減輕了工程師的負擔(dān),避免重復(fù)勞動。隨著CPLD/FPGA的規(guī)模越來越大,設(shè)計越來越復(fù)雜,使用IP核是一個發(fā)展趨勢。理想地,一個知識產(chǎn)權(quán)核應(yīng)該是完全易操作的--也就是說,易于插入任何一個賣主的技術(shù)或者設(shè)計方法。通用異步接發(fā)報機(UARTs)、中央處理器(CPUs)、以太網(wǎng)控制器和PCI接口(周邊元件擴展接口)等都是知識產(chǎn)權(quán)核的具體例子。
知識產(chǎn)權(quán)核心分為三大種類:硬核,中核和軟核。硬件中心是知識產(chǎn)權(quán)構(gòu)思的物質(zhì)表現(xiàn)。這些利于即插即用應(yīng)用軟件并且比其它兩種類型核的輕便性和靈活性要差。像硬核一樣,中核(有時候也稱為半硬核)可以攜帶許多配置數(shù)據(jù),而且可以配置許多不同的應(yīng)用軟件。三者之中最有靈活性的就是軟核了,它存在于任何一個網(wǎng)絡(luò)列表(一列邏輯門位和互相連接而成的集成電路)或者硬件描述語言(HDL)代碼中。
2 rgb2ycbcr IP的建立
對于RGB轉(zhuǎn)ycbcr的理論可參考《FPGA圖像處理之rgbtogray算法的實現(xiàn)》。
1) 創(chuàng)建工程添加源文件
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進行封裝點擊
各種參數(shù)代碼檢測無誤后點擊Review and Package->Package IP
IP 封裝完成,以后我們可以使用此IP進行設(shè)計。
FPGA開源工作室rgb2ycbcr IP的介紹
如上圖所示,clk為像素時鐘,i_rgb接口為rgb888格式輸入。我們分別引出了o_rgb(RGB888)、o_ycbcr和o_gray接口,完成了一個模塊三種顏色空間的輸出以便后期設(shè)計的使用。
3 zynq-7000的實現(xiàn)
利用《Zynq-7000電子相冊的實現(xiàn)》的設(shè)計成果。我們在此平臺上驗證rgb2ycbcr模塊。
1)添加IP 點擊Project Setting->IP->Repository Manager->+(找到自己IP存放的路徑)->OK.
2)添加rgb2ycbcr IP
其他模塊的配置和使用在此不再贅述,需要源工程的可以聯(lián)系FPGA開源工作室。
3)launch SDK
(1)首先選中system右鍵選中Generate Output Products...
(2)選中system右鍵選中Create HDL Wrapper...
(3)建立約束文件XDC
(4)生成bitstream。
(5)導(dǎo)出硬件 選擇菜單File->Export->Export Hardware...。這里包括bitstream
(6)Launch SDK 選擇菜單File->Launch SDK,啟動SDK環(huán)境。
4)SDK編程
程序我們依然實用《Zynq-7000電子相冊的實現(xiàn)》的程序。
5)驗證結(jié)果
視頻欣賞
4 結(jié)論
利用IP來完成設(shè)計就像搭積木一樣方便簡單。我們只需要知道IP的功能和接口定義即可方便的使用IP來完成我們的設(shè)計,省事又省力。IP的另一個好處是可以復(fù)用,不需要每個人都來設(shè)計一遍,或者了解里邊的算法如何實現(xiàn)。對于該模塊的gray和rgb輸出有興趣的同學(xué)可以自己驗證一下。