基于FPGA的图像处理(一)--System Generator介绍
? ? ? ? 計算機(jī)視覺系統(tǒng)通常需要進(jìn)行大量的信息處理才能夠得到所需要的信息。目前主要有CPU、GPU、ASIC、DSP、FPGA等計算平臺。
常用的計算機(jī)視覺系統(tǒng)通過通用計算機(jī)進(jìn)行視覺信息處理,但是,由于CPU的計算能力有限,對于一些計算復(fù)雜度很高的視覺算法,其處理速度常常難以滿足系統(tǒng)的實時性需要。
GPU具有高度的并行計算能力,可以較好地解決計算速度的問題,然而,基于GPU的計算機(jī)視覺系統(tǒng)存在著功耗較高、體積較大的缺點,難以滿足依靠自身所帶電池供電并長時間工作的服務(wù)機(jī)器人等應(yīng)用系統(tǒng)的需要。
利用專用集成電路ASIC實現(xiàn)視覺處理算法,可以解決視覺系統(tǒng)性能和體積、功耗之間的矛盾,是高性能嵌入式視覺系統(tǒng)的一種有效的解決方案。然而,ASIC開發(fā)周期長、修改不方便,通用性較差。
FPGA可以通過編程方便地修改其內(nèi)部的邏輯功能,從而實現(xiàn)高速的硬件計算和并行運(yùn)算,是高性能嵌入式視覺系統(tǒng)的一種更加方便的解決方案?;贔PGA的嵌入式視覺系統(tǒng)的功耗遠(yuǎn)遠(yuǎn)低于基于CPU和GPU的視覺系統(tǒng),FPGA的功耗通常不到1W,而高性能CPU和GPU的功耗通常都在100W以上。隨著技術(shù)的不斷進(jìn)步,FPGA的集成度越來越高,可以實現(xiàn)的設(shè)計規(guī)模越來越大,而功耗則越來越低。因此,基于FPGA的嵌入式視覺系統(tǒng)將是計算機(jī)視覺系統(tǒng)的重要發(fā)展方向。
? ? ? ? 使用FPGA進(jìn)行圖像處理時,既要對贏家有很深的了解,同時又需要對圖像處理的算法很熟悉。即使如此,如果打算使用HDL語言去實現(xiàn)圖像處理的算法,依然有很大的難度。而MathWorks公司和Xilinx公司聯(lián)合推出的System Generator則剛好可以解決這個問題。在System Generator和Matlab安裝之后,會在Simulink中添加一些Xilinx公司提供的模塊,使用類似Simulinlk的方式搭建圖像處理算法,可以進(jìn)行仿真、硬件協(xié)仿真、直接生成HDL代碼、生成TestBench,極大的提高開發(fā)的效率。
一、 System Generator簡介
目前的FPGA芯片不再扮演膠合邏輯的角色,而成為數(shù)字信號處理系統(tǒng)的核心器件。在芯片內(nèi),不僅包含了邏輯資源,還有多路復(fù)用器、存儲器、硬核乘加單元以及內(nèi)嵌的處理器等設(shè)備,并且還具備高度并行計算的能力,使得FPGA已成為高性能數(shù)字信號處理的理想器件,特別適合于完成數(shù)字濾波、快速傅立葉變換等。但遺憾的是,FPGA并未在數(shù)字信號處理領(lǐng)域獲得廣泛應(yīng)用,主要原因就是:首先,大部分DSP設(shè)計者通常對C語言或MATBLAB工具很熟悉,卻不了解硬件描述語言VHDL和Verilog HDL;其次,部分DSP工程師認(rèn)為對HDL語言在語句可綜合方面的要求限制了其編寫算法的思路?;诖?#xff0c;Xilinx公司推出了簡化FPGA數(shù)字處理系統(tǒng)的集成開發(fā)工具System Generator for DSP,快速、簡易地將DSP系統(tǒng)的抽象算法轉(zhuǎn)化成可綜合的、可靠的硬件系統(tǒng),為DSP設(shè)計者掃清了編程的障礙。
System Generator for DSP 是業(yè)內(nèi)領(lǐng)先的高級系統(tǒng)級FPGA開發(fā)工具,借助 FPGA 來設(shè)計高性能 DSP 系統(tǒng),其強(qiáng)大的提取功能可利用最先進(jìn)的FPGA芯片來開發(fā)高度并行的系統(tǒng),并和Simulink(MathWorks公司產(chǎn)品)實現(xiàn)無縫鏈接,快速建模并自動生成代碼。此外,System Generator是Xilinx公司XtremeDSP解決方案的關(guān)鍵組成,集成了先進(jìn)的FPGA設(shè)計工具以及IP 核,支持Xilinx公司全系列的FPGA芯片,提供從初始算法驗證到硬件設(shè)計的通道。System Generator最大的特點就是可利用Simulink建模和仿真環(huán)境來實現(xiàn)FPGA設(shè)計,而無需了解和使用 RTL級硬件語言,讓DSP設(shè)計者能夠發(fā)揮基于FPGA的DSP的最大性能和靈活性,并縮短整個設(shè)計的周期。
典型的System Generator工程設(shè)計實例如圖8-1所示??梢詫ystem Generato看成MATLAB軟件中的一個硬件設(shè)計工具包,提供了豐富的應(yīng)用子模塊,所有的硬件綜合和實現(xiàn)信息都將被自動添加到芯片配置文件中,用戶不必熟悉FPGA的設(shè)計流程以及HDL語言,只需要經(jīng)過拖拽和連接將子模塊搭成應(yīng)用系統(tǒng)即可。
圖7-1 典型的System Generator工程設(shè)計實例示意圖
二、System Generator的主要特征
System Generator是用高性能DSP系統(tǒng)的快速建模和實現(xiàn)工具,是DSP高層系統(tǒng)和Xilinx FPGA之間的橋梁,其作用如圖8-2所示??稍贛ATLAB/Simulink環(huán)境下對算法以及系統(tǒng)建模,并生成相應(yīng)的工程,再調(diào)用ISE相應(yīng)的組件進(jìn)行仿真、綜合、實現(xiàn),并完成芯片的配置。整個開發(fā)的過程肯定是反復(fù)迭代、修正的,其中不可缺少的紐帶就是System Generator。
圖7-2 System Generator的作用
System Generator在Simulink中可當(dāng)作一個用戶程序包,自動將模型化的數(shù)字系統(tǒng)設(shè)計轉(zhuǎn)換成硬件電路,其主要特征如下:
1.豐富的DSP模塊
提供了包含信號處理(如FIR濾波器、FFT)、糾錯(如Viterbi 解碼器、Reed-Solomon編碼器/解碼器)、算法、存儲器(如FIFO、RAM、ROM)及數(shù)字邏輯功能的Xilinx模塊集,可快速、高效地在Simulink內(nèi)構(gòu)建和調(diào)試高性能DSP系統(tǒng)。此外,Xilinx模塊集提供的模塊可以使用戶導(dǎo)入.m函數(shù)及HDL模塊
2.Simulink設(shè)計的VHDL或Verilog的自動代碼生成
設(shè)計人員無需掌握HDL語言即可開發(fā)數(shù)字處理系統(tǒng),且所得到的設(shè)計具備HDL設(shè)計所有的優(yōu)點。用戶也可以通過基本的子模塊生成功能特征明確的System Generator IP Core,作為大型設(shè)計的一部分使用。同樣,掌握了RTL設(shè)計的用戶,可更好地利用System Generator。
3.硬件協(xié)仿真
提供了創(chuàng)建“FPGA 在環(huán)路(FPGA-in-the-loop)”仿真對象的代碼生成功能,可加速用戶的硬件驗證工作并加速其在Simulink與MATLAB中的仿真。目前,System Generator支持以太網(wǎng)(10/100/吉比特)、PCI、Cardbus及硬件平臺與Simulink之間的JTAG通信。
4.嵌入式系統(tǒng)的硬件/軟件協(xié)設(shè)計
提供了嵌入式系統(tǒng)的硬件/軟件協(xié)設(shè)計能力,可直接加載Xilinx公司的MicroBlaze 32位 RISC處理器,甚至構(gòu)建和調(diào)試DSP協(xié)處理器。System Generator提供了硬件/軟件接口的共享存儲器提取功能,自動生成DSP協(xié)處理器、總線接口邏輯、軟件驅(qū)動器以及協(xié)處理器使用方面的軟件技術(shù)文檔。
System Generator軟件的安裝和配置
1.軟件需求
System Generator軟件版本必須和ISE版本一致,同時要有匹配的MATLAB版本才能正常工作。對于System Generator 9.1,需要以下的軟件環(huán)境:
- MATLAB的版本為MATLAB v7.3/Simulink v6.5(R2006b)或者M(jìn)ATLAB v7.4/ Simulink v6.6(R2007a)。注意:MATLAB軟件的安裝路徑上不能出現(xiàn)空格。(如:可以為C:\MATLAB\R2007a);
- ISE的版本為9.1.01i或者更高版本,ISE Simulator的版本為完全版;
- IP核庫的版本為ISE IP 9.1i Update 1或者更高版本。
需要注意的是:系統(tǒng)環(huán)境變量$XILINX必須設(shè)置為ISE的安裝目錄。
同樣,System Generator對常用的第三方軟件也有相應(yīng)的版本要求: - 綜合工具Synplify Pro的版本為v8.6.2或者v8.8.0.4;
- 仿真工具M(jìn)odelSim的版本至少為PE或者SE v6.1f以及更高版本。
2.System Generator的安裝
System Generator的安裝軟件只能通過網(wǎng)站下載的方式得到,網(wǎng)址為http://www.xilinx.com/ise/optional_prod/system_generator.htm。在安裝System Generator之前,需要關(guān)閉所有的ISE以及MATLAB應(yīng)用程序,然后雙擊安裝軟件的圖標(biāo),即彈出圖8-3所示的歡迎界面。
圖7-3 System Generator的安裝歡迎界面????????????????????????? 圖7-4 System Generator安裝時的MATLAB版本選擇界面
點擊“Next”按鍵進(jìn)入軟件安裝協(xié)議說明界面,選中“I Agree”選項進(jìn)入MATLAB版本選擇界面,安裝程序會自動列出已安裝的MATLAB代碼,如圖8-4所示(由于只安裝了MATLAB 2006b版本,所以只有一個版本)。
繼續(xù)點擊“Next”按鍵,進(jìn)入安裝路徑選擇界面,同時安裝程序會給出所需的磁盤空間大小,對于9.1版需要118M字節(jié)的空間。再點擊“Next”按鍵進(jìn)入安裝進(jìn)程界面,安裝完成后的界面如圖8-5所示,點擊“Close”按鍵完成安裝。
圖7-5 System Generator安轉(zhuǎn)完成提示界面
3.Xilinx HDL庫的編譯和配置
如果要在ModelSim中完成System Generator設(shè)計的仿真,則需要編譯所有的IP庫模塊。由于ModelSim存在PE、SE以及XE等不同的版本,下面分別介紹其編譯方法。
1)ModelSim(PE or EE/SE)
Xilinx提供了名為compxlib的庫編譯工具,在DOS模式下完成庫的編譯。例如命令:
compxlib –s mti_se –f all –l all
可編譯生成ModelSim SE版本中VHDL以及Verilog HDL兩種語言的庫。完成的compxlib編譯指令可查閱Xilinx軟件文檔《Synthesis and Simulation Design Guide》,也可以直接在http://toolbox.xilinx.com/docsan/xilinx82/books/docs/sim/sim.pdf的網(wǎng)址中在線查閱。
2)ModelSim(XE)
對于ModelSim XE(Xilinx Edition)版本,則可直接從Xilinx網(wǎng)站上下載已經(jīng)過編譯的庫壓縮包,其網(wǎng)址為:
http://www.xilinx.com/xlnx/xil_sw_updates_home.jsp?update=mxe_libs。然后將其解壓縮到ModelSim XE的安裝文件夾中,這是ModelSim的默認(rèn)尋找路徑,因此不用對modelsim.ini文件作任何修改。
三、System Generator開發(fā)流程簡介
本節(jié)介紹使用System Generator設(shè)計數(shù)字系統(tǒng)的常用步驟。在Simulink的可視化環(huán)境中,根據(jù)系統(tǒng)設(shè)計功能將Xilinx模塊連接成所設(shè)計的系統(tǒng),并定義合適的系統(tǒng)參數(shù);而后運(yùn)用System Generator將Simulink模型轉(zhuǎn)換成硬件可執(zhí)行模型,將系統(tǒng)定義的參數(shù)對應(yīng)至硬件實現(xiàn)的實體以及輸入輸出端口,并會自動完成綜合、仿真與實現(xiàn)。整個開發(fā)流程分為浮點算法開發(fā)、定點算法實現(xiàn)、硬件系統(tǒng)設(shè)計以及代碼優(yōu)化4個步驟。
1.浮點算法開發(fā):利用MATLAB軟件及其提供的工具包快速地完成浮點算法的開發(fā)、驗證以及性能評估,借助于Simulink可快速完成原型設(shè)計和模型分析。
2.定點算法實現(xiàn):將MATLAB浮點算法通過AccelDSP在Xilinx器件上實現(xiàn)定點邏輯。AccelDSP直接將浮點MATLAB算法的M-文文件自動生成可綜合的RTL模型。AccelDSP綜合工具是基于高級MATLAB語言的工具,用于設(shè)計針對Xilinx FPGA的DSP塊。該工具可自動地進(jìn)行浮點-定點轉(zhuǎn)換,生成可綜合的VHDL或Verilog HDL設(shè)計,并創(chuàng)建用于驗證的測試平臺。并且,還能以報告的形式提供資源利用率、吞吐量和延遲等指標(biāo),從而根據(jù)實際工程需要來設(shè)置系統(tǒng)級要求,借助于IP-Explorer技術(shù)來實現(xiàn)面積和速度的折中,快速地選擇最佳的芯片設(shè)計。
3.硬件系統(tǒng)設(shè)計與實現(xiàn):定義使用Xilinx IP的詳細(xì)硬件架構(gòu),采用System Generator for DSP 劃分協(xié)處理器和可編程器件之間的設(shè)計。System Generator可滿足FPGA流程中所有需要的功能要求,對于用戶而言,通過點擊按鍵即可將模型設(shè)計轉(zhuǎn)換成HDL語言,在此過程中會生成下列文件:
- 設(shè)計所對應(yīng)的HDL程序代碼。
- 時鐘處理模塊,包括系統(tǒng)時鐘處理操作以及生成設(shè)計中所需的不同頻率的時鐘信號。
- 用于測試設(shè)計的HDL測試代碼,可直接將其仿真結(jié)果和Simulink輸出比較。
- 工程文件以及綜合、實現(xiàn)過程所產(chǎn)生的各種腳本文件。
4.代碼優(yōu)化:利用ISE RTL設(shè)計環(huán)境生成優(yōu)化的FPGA設(shè)計,屬于高級應(yīng)用,要求設(shè)計者不僅要熟悉算法的架構(gòu)、瓶頸,還需要精通RTL設(shè)計。對于一般設(shè)計,如果系統(tǒng)硬件資源夠用,再加上設(shè)計周期短,則可忽略這一步。
在Simulink可視化設(shè)計環(huán)境中,重要的是:在Simulink環(huán)境中實現(xiàn)定點算法,根據(jù)系統(tǒng)設(shè)計功能將Xilinx模塊連接成設(shè)計系統(tǒng),并定義合適的系統(tǒng)參數(shù);而后利用System Generator將Simulink模型轉(zhuǎn)換為可執(zhí)行的硬件模型,將系統(tǒng)定義的參數(shù)對應(yīng)到硬件實現(xiàn)的模塊、輸入/輸出端口等屬性;再借助于ModelSim軟件驗證相應(yīng)的設(shè)計是否和Similink輸出一致,否則需要重新修改設(shè)計;最后將設(shè)計生成可對器件編程的比特流文件,將其下載到目標(biāo)芯片中。因此,典型的開發(fā)流程如圖8-6所示,其中System Generator會自動為FPGA的綜合、HDL仿真以及實現(xiàn)生成命令文件,用戶只需完成Simulink設(shè)計以及比較最終的RTL輸出結(jié)果。整個開發(fā)流程都是在可視化的環(huán)境中完成的。
圖7-6 典型的System Generator設(shè)計流程
轉(zhuǎn)載于:https://www.cnblogs.com/libing64/archive/2012/11/03/2878727.html
總結(jié)
以上是生活随笔為你收集整理的基于FPGA的图像处理(一)--System Generator介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android代码查看Android版本
- 下一篇: 【职场日语】日文简历模板