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