點擊上方藍字關(guān)注我們
1 概述
1.1 FPGA的特點及其發(fā)展趨勢
嵌入式系統(tǒng)是一個面向應用、技術(shù)密集、資金密集、高度分散、不可壟斷的產(chǎn)業(yè),隨著各個領(lǐng)域應用需求的多樣化,嵌入式設(shè)計技術(shù)和芯片技術(shù)也經(jīng)歷著一次又一次的革新。雖然ASIC的成本很低,但設(shè)計周期長、投入費用高、風險較大,而可編程邏輯器件(Programmable Logical Device)設(shè)計靈活、功能強大,尤其是高密度現(xiàn)場可編程邏輯器件(Field Programmable Gate Array)其設(shè)計性能已完全能夠與ASIC媲美,而且由于FPGA的逐步普及,其性能價格比已足以與ASIC抗衡。因此,F(xiàn)PGA在嵌入式系統(tǒng)設(shè)計領(lǐng)域已占據(jù)著越來越重要的地位。
FPGA的基本結(jié)構(gòu)由以下幾個部分構(gòu)成:
·可編程邏輯功能模塊CLB(Configurable Logic Blocks)
·可編程輸入輸出模塊IOB(Input/Output Blocks)
·可編程內(nèi)部互連資源PI(Programmable Interconnection)
隨著工藝的進步和應用系統(tǒng)需求,一般在FPGA中還包含以下可選資源:
·存儲器資源(Block RAM和Select RAM)
·數(shù)字時鐘管理單元(分頻/倍頻、數(shù)字延遲)
·I/O多電平標準兼容(Select I/O)
·算數(shù)運算單元(乘法器、加法器)
·特殊功能模塊(MAC等硬IP核)
以FPGA為核心的PLD產(chǎn)品是近幾年集成電路中發(fā)展得最快的產(chǎn)品。隨著FPGA性能的高速發(fā)展和設(shè)計人員自身能力的提高,F(xiàn)PGA將進一步擴大可編程芯片的領(lǐng)地,將復雜專用芯片擠向高端和超復雜應用。目前FPGA的發(fā)展趨勢主要體現(xiàn)在以下幾個方面:
·向更高密度、更大容量的千萬門系統(tǒng)級方向邁進
·向低成本、低電壓、微功耗、微封裝和綠色化發(fā)展
·IP資源復用理念將得到普遍認同并成為主要設(shè)計方式
·MCU、DSP、MPU等嵌入式處理器IP將成為FPGA應用的核心
隨著處理器以IP的形式嵌入到FPGA中,ASIC和FPGA之間的界限將越來越模糊,未來的某些電路版上可能只有這兩部分電路:模擬部分(包括電源)和一塊FPGA芯片,最多還有一些大容量的存儲器。Xilinx等公司最新一代FPGA:Spartan II/E、Virtex II Pro及其相關(guān)IP Core的推出,使我們有理由相信,可編程片上系統(tǒng)(System on Programmable Chip)的時代已經(jīng)離我們不遠了。
1.2可編程片上系統(tǒng)(SOPC)的基本特征
可編程片上系統(tǒng)(SOPC)是一種特殊的嵌入式系統(tǒng):首先它是片上系統(tǒng)(SOC),即由單個芯片完成整個系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),具有靈活的設(shè)計方式,可裁減、可擴充、可升級,并具備軟硬件在系統(tǒng)可編程的功能。
SOPC結(jié)合了SOC和FPGA各自的優(yōu)點,一般具備以下基本特征:
·至少包含一個嵌入式處理器內(nèi)核
·具有小容量片內(nèi)高速RAM資源
·豐富的IP Core資源可供選擇
·足夠的片上可編程邏輯資源
·處理器調(diào)試接口和FPGA編程接口
·可能包含部分可編程模擬電路
·單芯片、低功耗、微封裝
SOPC設(shè)計技術(shù)實際上涵蓋了嵌入式系統(tǒng)設(shè)計技術(shù)的全部內(nèi)容,除了以處理器和實時多任務操作系統(tǒng)(RTOS)為中心的軟件設(shè)計技術(shù)、以PCB和信號完整性分析為基礎(chǔ)的高速電路設(shè)計技術(shù)以外,SOPC還涉及目前以引起普遍關(guān)注的軟硬件協(xié)同設(shè)計技術(shù)。由于SOPC的主要邏輯設(shè)計是在可編程邏輯器件內(nèi)部進行,而BGA封裝已被廣泛應用在微封裝領(lǐng)域中,傳統(tǒng)的調(diào)試設(shè)備,如:邏輯分析儀和數(shù)字示波器,已很難進行直接測試分析,因此,必將對以仿真技術(shù)為基礎(chǔ)的軟硬件協(xié)同設(shè)計技術(shù)提出更高的要求。同時,新的調(diào)試技術(shù)也已不斷涌現(xiàn)出來,如Xilinx公司的片內(nèi)邏輯分析儀Chip Scope ILA就是一種價廉物美的片內(nèi)實時調(diào)試工具。
2 IP資源復用理念與IP Core設(shè)計
2.1 IP資源復用理念
由于芯片設(shè)計的復雜性和產(chǎn)品面市時間對于保證終端市場的成功率至關(guān)重要,設(shè)計師不斷尋求縮短設(shè)計周期的方法,以及更有效的設(shè)計方式。隨著我們步入系統(tǒng)級芯片時代,利用IP內(nèi)核和可編程邏輯進行設(shè)計復用顯得日趨重要。
IP資源復用(IP Reuse)是指在集成電路設(shè)計過程中,通過繼承、共享或購買所需的智力產(chǎn)權(quán)內(nèi)核,然后再利用EDA工具進行設(shè)計、綜合和驗證,從而加速流片設(shè)計過程,降低開發(fā)風險。IP Reuse已逐漸成為現(xiàn)代集成電路設(shè)計的重要手段,在日新月異的各種應用需求面前,超大規(guī)模集成電路設(shè)計時代正步入一個IP整合的時代。
IP Reuse不僅僅應用于專用集成電路設(shè)計,對基于FPGA的嵌入式系統(tǒng)設(shè)計領(lǐng)域而言,更是具有舉足輕重的地位。FPGA在采用IP內(nèi)核方面走在了市場的前面,其原因有以下幾個方面:
·FPGA具有極高的靈活性和面市時間短的特點,這使得多項設(shè)計迭代可以在數(shù)小時而不是數(shù)周內(nèi)完成
·由于FPGA密度達到了百萬門甚至是千萬門,越來越多的設(shè)計師傾向于使用IP內(nèi)核保持和提高產(chǎn)品的產(chǎn)量
·可編程邏輯價格低廉,可以作為切實可行的生產(chǎn)工具以及最佳原型設(shè)計,而且不許要昂貴的EDA設(shè)計工具,大大降低了設(shè)計門檻
2.2 IP Core設(shè)計方法:編碼風格與項目模板
IP Core是IP Reuse的載體和核心內(nèi)容,基于應用需求、規(guī)范協(xié)議和行業(yè)標準的不同,IP Core的內(nèi)容也是千差萬別的。但是,為了使IP Core易于訪問和易于集成,其設(shè)計必須遵循一定的規(guī)范和準則。
在IP Core的開發(fā)方面,許多開放性的團體都付出了巨大的努力來推動各種IP Core的開發(fā)和IP Reuse理念的推廣,其中比較著名的是Open Cores開發(fā)組織(http://www.opencores.org)。他們不僅開發(fā)了許多開放源代碼的IP Core,涵蓋了處理器IP、處理器外設(shè)控制器IP、算術(shù)運算單元IP、DSP算法IP等方面,而且編寫了詳細的IP Core編碼風格和項目模板,并倡導了一種總線標準wishbone,用于規(guī)范各種IP Core的接口標準。國內(nèi)開放性團體IP Core開發(fā)小組(http://www.IPcore.com.cn)也在IP Core開發(fā)和IP Reuse理念的推廣和普及方面進行了不懈的努力。
編碼風格(Coding Style)是基于HDL的IP Core源碼編寫的指導性文檔,其可讀性直接關(guān)系到IP Core的易于訪問和易于集成性。編碼風格一般包含幾個方面的約定:文件頭和版本說明、聯(lián)機注釋、命名規(guī)則、可綜合編碼等。
項目模板則規(guī)定了完成一個IP Core設(shè)計包含的主要內(nèi)容及所需提供的文檔,項目模板內(nèi)容及其文檔直接關(guān)系到IP Core的易于集成特性,一個IP Core必須是完整的、經(jīng)過全面驗證的,才能順利地集成到應用項目中去。項目模板一般包含幾個方面的內(nèi)容:項目定義、接口說明、系統(tǒng)結(jié)構(gòu)和模塊、設(shè)計文檔說明、測試驗證報告、約束和實現(xiàn)、版本說明、試用評價以及參考文獻等。
編碼風格和項目模板詳細文檔的英文版和中文版可分別從上述兩個網(wǎng)站獲得。
2.3 IP Core驗證:仿真、測試與評估板
IP Core設(shè)計在完成編碼階段以后,對其功能的測試驗證是一項非常重要的內(nèi)容,因為這直接關(guān)系到IP Core資源的可用性。僅僅通過功能仿真、時序仿真和測試向量驗證的IP Core是不完備的,它必須通過實際系統(tǒng)的驗證。國際上各大公司通常采用的辦法是評估板驗證,也即構(gòu)建一個與實際系統(tǒng)IP Core應用一致的硬件環(huán)境,通過下載FPGA配置使其具備相應的邏輯功能,并進行實物仿真。
另外,由于IP Core的許可成本較高,用戶也通常希望在購買IP Core之前,對其功能進行充分的驗證以確定是否適合于目標系統(tǒng),從而降低投資風險,(當然,內(nèi)核和源代碼的知識產(chǎn)權(quán)是加了保護措施的),Xilinx公司的Sing Once和Altera公司的Open Core均提供了這樣的平臺。
Xilinx公司和Altera公司均提供了許多用于評估IP Core的FPGA評估板,如USB、MAC、IEEE1394等等。許多第三方設(shè)計中心,如Insight,還開發(fā)了用于SOPC系統(tǒng)集成的Virtex II MicroBlaze評估板和Virtex II Pro PPC405評估板等等。Xilinx FPGA的國內(nèi)專業(yè)設(shè)計公司長沙依元素科技(http://www.eestd.com)還開發(fā)了用于測評各類基本IP Core以及學習培訓用途的數(shù)字刀劍?系列 (DigitalSword?Series Kit)評估板,如圖1所示,該系列評估板提供了VGA、LCD、音頻、鍵盤鼠標、串口、并口、USB Slave、I2C等電平接口,并提供了標準擴展總線以及豐富的子板功能模塊支持。
圖1(a) 數(shù)字刀劍 系列之火龍刀
圖1(b) 數(shù)字刀劍?系列FPGA評估板結(jié)構(gòu)框圖
3 基于Xilinx FPGA的嵌入式系統(tǒng)設(shè)計
3.1 FPGA基本開發(fā)流程與開發(fā)工具
FPGA基本開發(fā)流程主要包括設(shè)計輸入(Design Entry);設(shè)計仿真(Simulation);設(shè)計綜合(Synthesize);布局布線(Place & Route);配置(Configuration)五個主要步驟。
設(shè)計輸入主要有原理圖輸入和HDL輸入兩種方式,一般開發(fā)商都同時支持兩種輸入方式。有些熟悉硬件設(shè)計的工程師開始喜歡利用原理圖進行設(shè)計,這種方法非常直觀,但基于可移植性和規(guī)范化方面的考慮,絕大部分深入FPGA設(shè)計和ASIC設(shè)計的工程師最終都將統(tǒng)一到HDL平臺上來。
設(shè)計仿真包含功能仿真和時序仿真兩項主要內(nèi)容,功能仿真忽略了綜合和布局布線導致的時延等因素,僅僅從邏輯上進行仿真,這對設(shè)計思路的驗證是有幫助的,但必須通過時序仿真作進一步驗證,發(fā)現(xiàn)并修正時序問題。
設(shè)計綜合將HDL語言生成用于布局布線的網(wǎng)表和相應的約束。綜合效果直接導致設(shè)計的性能和邏輯門的利用效率,因此,許多可編程邏輯器件開發(fā)商都支持第三方綜合和仿真工具,著名的有:Synplicity、Synopsys和ModelSim等。
布局布線工具利用綜合生成的網(wǎng)表,在FPGA內(nèi)部進行布局布線,并生成可用于配置的比特流文件。布局布線工具與可編程邏輯器件工藝及其布線資源密切相關(guān),一般由可編程邏輯器件開發(fā)商直接提供。
隨著可編程邏輯器件容量的不斷增大和設(shè)計性能要求的不斷提高,對傳統(tǒng)的FPGA開發(fā)工具提出了挑戰(zhàn)。以Xilinx公司為例,應IP Core開發(fā)和集成的需要,開發(fā)了IP Core使用工具Core Generator和IP Core包裝工具IP Capture;提供了模塊化設(shè)計工具Modular Design用于超大規(guī)模設(shè)計的團隊項目開發(fā);用片內(nèi)邏輯分析儀ChipScope ILA進行片內(nèi)邏輯調(diào)試;Xpower則用于設(shè)計功耗分析并得出相應的解決方案;還有System Generator結(jié)合Simulink甚至可以簡單地實現(xiàn)數(shù)字信號處理模型(如FIR濾波器和FFT等)的FPGA硬件實現(xiàn)。此外,一些有爭議的設(shè)計工具,如基于C語言的FPGA開發(fā)工具DK1等為超大容量FPGA設(shè)計和復雜邏輯設(shè)計提供了值得嘗試的途徑。
3.2 處理器IP Core:Micro Blaze與PPC405
將處理器IP Core嵌入到可編程邏輯器件是基于FPGA的嵌入式系統(tǒng)設(shè)計的前提條件,目前,國內(nèi)外許多單位已成功的將51單片機、ARM和PPC等處理器內(nèi)核嵌入各種可編程邏輯器件并進行了應用系統(tǒng)的設(shè)計,其中最著名的要數(shù)Xilinx公司的Micro Blaze和Altera公司的Nois了。Xilinx從Pico Blaze到Micro Blaze,再到PPC405,完成了從8位單片機到32位微處理器的逐步完善和性能提升。
Micro Blaze 是一個專門為Xilinx FPGA優(yōu)化的RISC嵌入式軟處理器,符合IBM Core Connect標準,能夠與PPC405系統(tǒng)無縫連接,Micro Blaze軟處理器內(nèi)核的結(jié)構(gòu)如圖2所示,
圖2 Micro Blaze IP Core結(jié)構(gòu)框圖
它具備以下基本特征:
·32個32bit通用寄存器
·硬件乘法器(僅限Virtex II系列)
·32bit地址總線和32bit數(shù)據(jù)總線
·三操作數(shù)32bit指令字,兩種尋址模式
·獨立的片內(nèi)程序32bit總線和數(shù)據(jù)總線
·片內(nèi)總線遵循OPB(On-chip Peripheral Bus)標準
·通過LMB(Local Memory Bus)訪問片內(nèi)Block RAM
Micro Blaze是一個非常簡化,但有具有較高性能的軟處理器內(nèi)核,他可以在性價比很高的Spartan II(-E)系列FPGA上實現(xiàn),系統(tǒng)時鐘頻率為75MHZ,僅占用400個Slice資源,相當于10萬門FPGA容量的三分之一,而10萬門的Spartan II系列FPGA的批量目標市場價格僅為10美元左右,非常適合消費類嵌入式產(chǎn)品應用需求。
在Xilinx最新一代FPGA Virtex II Pro中,嵌入了IBM公司的PPC405 RISC結(jié)構(gòu)硬處理器(如圖3所示),
圖3 PPC405 IP Core結(jié)構(gòu)框圖
該處理器內(nèi)核具備以下基本特征:
·32位、Harvard結(jié)構(gòu),300MHZ以上工作頻率
·支持IBM Core Connect總線標準
·符合PowerPC UISA標準
·低功耗:0.9mW/MHZ
·硬件乘法和除法單元
·32個32bit通用寄存器
·16KB雙端口程序緩存
·16KB雙端口數(shù)據(jù)緩存
·內(nèi)存管理單元(MMU)支持
·獨立的調(diào)試和跟蹤接口
PPC405硬處理器內(nèi)核性能上與現(xiàn)有的EPPC Core完全一致,含有PPC405 Core 的Virtex II Pro系列FPGA還附加了Gbit收發(fā)器和18×18硬件乘法器以及龐大的可編程邏輯資源,非常適合于通信、圖像信號處理以及復雜應用系統(tǒng)的設(shè)計,并提供了更加靈活的設(shè)計模式。
3.3 基于Micro Blaze和PPC405 Core的SOPC軟硬件開發(fā)
基于嵌入式處理器內(nèi)核的SOPC系統(tǒng)開發(fā)是一個軟硬件協(xié)同設(shè)計的過程,一方面,它極大地提高了系統(tǒng)設(shè)計的靈活性和快速的設(shè)計迭代周期,使整個開發(fā)過程變得更加可控;另一方面,一些新的調(diào)試和設(shè)計問題,如邏輯分析儀和數(shù)字示波器的接入等,對調(diào)試設(shè)備和調(diào)試手段提出了更高的要求,為了盡可能避免問題的產(chǎn)生,要求有更好的設(shè)計工具和集成開發(fā)環(huán)境,保證IP Core資源的可用性和設(shè)計實現(xiàn)的一致性,讓設(shè)計工程師從煩瑣的內(nèi)部時序調(diào)試中解放出來。
Xilinx提供了針對Micro Blaze Core應用系統(tǒng)開發(fā)的集成開發(fā)環(huán)境MDK,該開發(fā)環(huán)境包含了用于硬件描述和系統(tǒng)生成的Platform Generator、用于軟件設(shè)計和編譯的Micro Blaze IDE,GDB調(diào)試可通過FPGA配置JTAG接口進行,無需任何附加的調(diào)試硬件,配合Foundation ISE4.2和FPGA目標板即可進行全功能開發(fā),MDK還包含了UART、GPIO、Watchdog、Timer/Counter、EMC和中斷控制等基本處理器外設(shè)庫,用戶可以添加兼容OPB總線標準的任意IP Core。Insight和依元素科技均提供了功能全面的Micro Blaze Core評估工具。
PPC405 Core是一個高性能的處理器內(nèi)核,它具有獨立于FPGA JTAG的調(diào)試端口和更加復雜的調(diào)試功能,我們甚至可以將基于PPC405 Core的SOPC調(diào)試直觀地理解為基于IBM PPC405處理器和大容量FPGA的單板機調(diào)試,只不過這個單板機無需進行傳統(tǒng)的PCB設(shè)計和調(diào)試,設(shè)計迭代過程全部在計算機上進行。PPC405 Core的軟件集成開發(fā)環(huán)境支持傳統(tǒng)的IBM PPC405開發(fā)環(huán)境,Xilinx提供了相應的系統(tǒng)集成開發(fā)環(huán)境和GNU軟件開發(fā)工具包支持。第三方軟件開發(fā)商Wind River和Montvisa已分別宣布其VxWorks和HardHat Linux實時操作系統(tǒng)(RTOS)及其集成開發(fā)環(huán)境支持Virtex II Pro 系列FPGA,Insight和Avnet已開始銷售含有Virtex II Pro FPGA的高端評估板。依元素科技也推出了用于開發(fā)PowerPC系列處理器的GNU集成開發(fā)工具和利刃?系列調(diào)試工具,以及含有PowerPC處理器的原型評估板。
4 基于Internet可重配置邏輯(IRL)
4.1 IRL技術(shù)的基本特征與應用
Internet Reconfigurable Logic (IRL)是Xilinx倡導的一種新的FPGA設(shè)計理念,其核心是通過Internet對遠程設(shè)備的硬件設(shè)計和軟件程序進行升級、重構(gòu)、調(diào)試和監(jiān)控,這種設(shè)計理念伴隨著嵌入式Internet技術(shù)的蓬勃發(fā)展必將對嵌入式設(shè)備的設(shè)計模式產(chǎn)生深遠的影響。
IRL包括三個方面的基本要素:
·含有配置bit流或應用程序的主機
·含有配置功能的目標系統(tǒng)
·Internet或遠程訪問介質(zhì)
在Internet環(huán)境下,可通過Web Browser訪問遠程目標機,通過HTTP、FTP協(xié)議、Java Applet和CGI等功能實現(xiàn)數(shù)據(jù)、文件傳輸和交互控制功能。在某些特殊環(huán)境下,遠程訪問介質(zhì)可以是PSTN、無線網(wǎng)絡(luò)或其它特殊媒介,這在某些工業(yè)控制場合以及軍事應用中是常見的。
IRL技術(shù)可以應用于許多場合,諸如:在部分功能沒有完成全面測試之前就可以先將產(chǎn)品投放市場;故障設(shè)備的遠程維護;遠程修復產(chǎn)品使用過程中發(fā)現(xiàn)的Bug;對已售出的產(chǎn)品升級新的功能;對新出現(xiàn)的標準和協(xié)議予以支持等等。總而言之,采用IRL技術(shù)將帶給我們的產(chǎn)品三個明顯的優(yōu)勢:縮短產(chǎn)品上市時間;減少產(chǎn)品維護費用;延長產(chǎn)品生命周期。
4.2 IRL技術(shù)的設(shè)計實現(xiàn)
在基于Web Browser的條件下,主機端的應用程序?qū)⑦_到最簡化,主機端無需安裝任何特殊應用程序就可完成對遠程設(shè)備的操作,這種簡化對用戶而言是必要的。這樣,目標機的設(shè)計就是IRL技術(shù)實現(xiàn)的全部內(nèi)容。
一般而言,目標機端IRL模塊應實現(xiàn)以下功能:
·以太網(wǎng)或Modem接入
·TCP/IP或TCP/IP+PPP協(xié)議棧
·Http Web Server
·支持CGI、ASP或Java Script
·FPGA配置時序,至少支持JTAG配置模式
·足夠的存儲空間和配置故障恢復功能
在嵌入式Internet技術(shù)和處理器的支持下,這些功能的實現(xiàn)已經(jīng)不是技術(shù)上的瓶頸了,圖4給出了依元素科技也開發(fā)的IRL評估模塊原理框圖,
圖4 基于Rabbit2000的IRL模塊原理框圖
該這種實現(xiàn)方式是一種基于單片機或?qū)S锰幚砥鞯腎RL實現(xiàn)方式。Avnet推出了基于PowerPC和PMC總線的高端IRL技術(shù)評估板。
在本文研究的SOPC設(shè)計技術(shù)的基礎(chǔ)上,F(xiàn)PGA甚至能夠通過內(nèi)部嵌入式處理器內(nèi)核(如Micro Blaze和PPC405)及其軟件支持,實現(xiàn)對自身的重構(gòu)和升級。
5 結(jié)束語
隨著可編程邏輯器件工藝的不斷進步和開發(fā)工具的不斷增強,F(xiàn)PAG將更加廣泛的應用在各個領(lǐng)域,F(xiàn)PGA的將在更廣泛的范圍普及,成本和價格將不再成為我們拒絕在設(shè)計中采用FPGA的理由。我們有理由相信,SOPC、IRL等設(shè)計理念將會對我們的設(shè)計方式產(chǎn)生新的變革,也必將給每一位嵌入式工程師帶來有益的思路和更加寬廣的創(chuàng)意空間。
精彩推薦 至芯科技FPGA就業(yè)培訓班——助你步入成功之路、10月29號西安中心開課、歡迎咨詢! FIR濾波器的實現(xiàn)方法有哪幾種? 什么是數(shù)字中頻?FPGA怎么實現(xiàn)數(shù)字中頻?掃碼加微信邀請您加入FPGA學習交流群
歡迎加入至芯科技FPGA微信學習交流群,這里有一群優(yōu)秀的FPGA工程師、學生、老師、這里FPGA技術(shù)交流學習氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點個在看你最好看
原文標題:基于Xilinx FPGA的嵌入式系統(tǒng)設(shè)計
文章出處:【微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601239
原文標題:基于Xilinx FPGA的嵌入式系統(tǒng)設(shè)計
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論