<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設計應用 > 將處理器集成入FPGA的整合之道

          將處理器集成入FPGA的整合之道

          作者:■ Altium公司 Rob Irwin 時間:2005-05-05 來源:eaw 收藏

          引言
          現(xiàn)有的設計策略只是將看作一個單個元件,且需要依靠HDL輸入(HDL capture)和仿真的手段來進行元件設計和驗證。而在將處理器集成入,試圖在可編程部件中成就一個完全內嵌的系統(tǒng)時,其所呈現(xiàn)出的復雜性是現(xiàn)有方法無法有效解決的。
          若想對嵌入到FPGA中基于處理器的整個數(shù)字系統(tǒng)進行輸入、運行及調試,工程技術人員需要有一個集合各種工程軟硬件設計工具,在一個集成化的FPGA執(zhí)行環(huán)境中協(xié)調工作的理想設計平臺。
          本文概述了開發(fā)這種系統(tǒng)所必須面對的各種設計挑戰(zhàn),并講解了Altium公司的最新電子設計環(huán)境Nexar如何為FPGA設計提供一種全新的方法。這種方法不僅可將處理器有效地集成入FPGA之中,而且成為一種挖掘現(xiàn)有以及未來大容量、低成本FPGA部件應用潛力的系統(tǒng)級FPGA設計策略。

          復雜度提升所帶來的問題
          一直以來,像FPGA這樣的大容量可編程部件都是用于組成邏輯塊的,實質上FPGA就是用于研制單一用途的元件,然后與其他現(xiàn)成的元件組合在一起構建一個完整的嵌入式系統(tǒng)。這種工作對于一個含有數(shù)萬設計門柵的FPGA來講已經(jīng)足夠了。然而依照摩爾定律,F(xiàn)PGA在成本不斷降低的同時其容量也有了大幅的提升,現(xiàn)今的FPGA堪稱是一個內含百萬級門柵,集成有嵌入式處理器和外設元件,具有可執(zhí)行整個數(shù)字系統(tǒng)工作能力的設計平臺,其成本卻已不再是上百美元,而是下降到了僅僅數(shù)十美元的水平。 現(xiàn)在市場上已有很多此種類型的FPGA,但是為什么工程技術人員沒有急于將這些部件應用于設計當中呢?原因很簡單—沒有合適的設計工具和設計策略。
          絕大多數(shù)傳統(tǒng)的FPGA設計方法是,采用某種形式的硬件描述語言(HDL)在寄存器狀態(tài)下將整個FPGA作為一個單個元件來進行設計。而且,傳統(tǒng)的方法依賴大量的HDL仿真來達到對設計的工作狀況進行驗證的目的。 在研制FPGA中的組合邏輯塊時,采用這種設計方法非常有用,但由于必須進行寄存器尋址,隨著FPGA容量的增加以及所用邏輯器件的進一步增多,寄存器級的復雜性使得設計中采用HDL/仿真方法就變得非常煩瑣。只要看一下含有處理器以及高階外設功能的典型嵌入式應用產(chǎn)品就會發(fā)現(xiàn),其電路結構中所特有的復雜性使得傳統(tǒng)意義上的FPGA 設計方式不再可行。
          雖然這種復雜度可以在一種程度上通過解決分級構造中的問題,搜尋、組合已經(jīng)過預先測試的IP塊,將基于HDL源代碼的大模塊連在一起以增加層的復雜性來克服,但由于基于HDL組合邏輯的較大模塊需要許多行代碼,并要知道什么是能集成在設計中的有效源代碼,工程技術人員需要對代碼的工作流程有一定的了解。
          隨著設計復雜度的提高,采用傳統(tǒng)的HDL/仿真方法來進行FPGA產(chǎn)品開發(fā)時,其復雜性所導致的一系列問題就顯現(xiàn)了出來。將FPGA當做一種孤立元件進行開發(fā)時,行之有效的實施和驗證策略在應對系統(tǒng)級集成時受到了嚴峻的挑戰(zhàn)。要想在FPGA平臺上進行高效優(yōu)質的系統(tǒng)級設計,就必須有一種全新的思路和方法。

          借鑒線路板設計的經(jīng)驗
          線路板級系統(tǒng)的設計為我們提供了有用的經(jīng)驗和設計靈感。通常情況下,為百萬級基本門柵的復合系統(tǒng)是無需耗用大量仿真周期的。這是因為復雜的系統(tǒng)已溶入到高階元件設計之中了,而元件可以很簡單地在一個圖形環(huán)境中連接在一起以便構建起整套系統(tǒng)。門柵和寄存器級的復雜性被元器件有效地掩蓋和回避了,這使得工程技術人員無需具備任何有關元件基本結構方面的知識,就可以相對快速且容易地進行整個系統(tǒng)的開發(fā)工作。
          工程技術人員在從事線路板級的設計時,需要有傳統(tǒng)HDL設計流程所要求的更高抽象概念。他們可將元件放置入原理圖中,并進行布線以設定整個系統(tǒng)的連接性。電路的功能性單元  — 元件 — 被看做是“黑盒子”。
          如果將這種方法引入到FPGA的內部設計之中,將FPGA看做是一個通過元件互連來構建系統(tǒng)的平臺,而不是簡單地看做是一個獨立的復合元件,會是一種更大規(guī)模的設計流程。
          Altium Limited公司新近推出的設計系統(tǒng)(Nexar)正是應用了這種方式。 工程技術人員可將現(xiàn)有的線路板級嵌入式系統(tǒng)設計知識直接應用于可編程部件的開發(fā)之中。Nexar的獨特之處在于它并非試圖將傳統(tǒng)的HDL流程按比例提升到系統(tǒng)級的水平,而是將HDL與基于原理圖的線路板設計方法相結合,集二者之優(yōu)勢以實現(xiàn)系統(tǒng)級的設計開發(fā)。

          設計輸入所要面對的挑戰(zhàn)
          一直以來,F(xiàn)PGA都被當做是用在較大系統(tǒng)中的單一用途元件,是與其他采用分立、現(xiàn)成元件的主要功能塊如處理器一起工作的。這種單一用途的元件可以用于集合大量的組合邏輯或者膠合邏輯,也可以充當一種特殊的元件,如網(wǎng)絡攝像機用圖像編碼器,它具備復雜的大規(guī)模數(shù)據(jù)轉換功能。
          用途單一的元件設計通常采用硬件描述語言(HDL)進行設計輸入,這會非常有效,如VHDL或Verilog,但采用原理圖編輯器等圖形工具則差強人意。
          然而,在將整個電路中的功能塊連接在一起時,HDL的效能低于圖形工具。要想高效優(yōu)質地完成FPGA上嵌入式系統(tǒng)的設計,一個必要的條件就是能在一個設計中將HDL和原理圖方法結合起來使用。
          Nexar采用了一種叫做“混合模式”的設計輸入(design capture)方法來應對這種挑戰(zhàn),它支持在一項設計中應用原理圖和HDL兩種設計方式(采用VHDL語言)。這樣工程技術人員可根據(jù)工作的特定需要來選用最適當?shù)姆椒?。在構建整個系統(tǒng)設計并需要對處理器和外部部件進行連接時,可采用原理圖輸入(schematic capture)的方式。當需要開發(fā)一種用做系統(tǒng)元件的大容量邏輯塊時,則可采用VHDL描述的方法。這種混合模式的輸入方法為在FPGA平臺上同時支持系統(tǒng)和元件級設計提供了一種理想環(huán)境。

          需要使用元件的原理圖
          如果擁有一個支持原理圖/HDL混合設計輸入方式的設計環(huán)境,但沒有能夠置放于原理圖中的合適現(xiàn)成的FPGA元件,也就沒有多大的意義了。作為一個“FPGA-可即用”元件,其在原理圖上的表示符號必須有一個與之相對應的器件型號或內核,這個型號或內核要能在目標FPGA中例證說明。在FPGA和ASIC設計中,這些可即用的硅晶元件通常被稱為IP內核(虛擬元件)。
          要設計一個元件分離的嵌入式系統(tǒng),工程技術人員采用分銷商可隨時供貨的現(xiàn)成元件就可以了。 但要設計并運行一個FPGA平臺上開發(fā)的嵌入式系統(tǒng),搜尋具有相應功能的元件會是很困難的。IP內核是可集成入整個系統(tǒng)設計的HDL源文件。然而要找到、購買并獲得這類IP的專利使用權是非常耗費時間且困難的事情。而且,以HDL形式提供的IP必須作為整體設計的一部分進行合成并加以驗證。由于要花時間將IP寫入系統(tǒng)HDL描述中去,因而會進一步拖長開發(fā)的時間。

          立即可用的 IP元件庫
          若干個IP元件庫作為整個系統(tǒng)的一個組成部分集合在Nexar中,以作為原理圖輸入過程中所需的部件被隨時調用。這些元件并非像其他許多基于方框圖的FPGA設計工具所提供的,只是一些簡單的低階布爾門柵。另外還有很多不同的復雜處理器內核和高階外部器件,如:CAN控制器、VGA 控制器、計時器以及存儲元件等。這些元件庫再配合一套全面的原理圖輸入環(huán)境,可為在FPGA上進行基于處理器的系統(tǒng)設計提供很大的便利。
          所提供的庫元件并非源級HDL,而更多的是好多種不同目標FPGA架構進行預先合成和驗證的。進行系統(tǒng)合成時,合適指標的低階元件排線表列被當做黑盒子通過合成引擎,并同系統(tǒng)連接信息一起傳給FPGA廠商的布局及布線工具以便進行FPGA內部整合。由于只需要對元件塊和用HDL格式生成的各種膠合邏輯功能的連接狀況進行安排,系統(tǒng)級的合成工作可以很快地開始進行。而且,由于設計的主要部分 — 內含IP元件已經(jīng)通過了驗證,因而沒有必要再進行大量的HDL級仿真來對電路功能的運作狀況進行驗證。
          將各種處理器內核和外設部件封裝入預先合成的模塊之中,不僅能夠降低系統(tǒng)集成工作的復雜程度,而且還提供了一種能直觀反映與工程技術人員目前所采用的基于元件的設計方式相類似的設計流程。這種IP提供方式還使系統(tǒng)元件可適用于不同的FPGA部件架構,這讓Nexar系統(tǒng)設計可在各種零部件和任何一家FPGA廠商的產(chǎn)品之間輕松實現(xiàn)轉移。

          嵌入式軟件開發(fā)
          所有以處理器為主體的電子設計都需要配備軟件來實現(xiàn)其相應的功能。而要開發(fā)這類軟件,工程技術人員必須有一種可與處理器相匹配的編譯器。
          采用嵌入式代碼的產(chǎn)品一般都需要在實時環(huán)境中工作,且硬件資源通常都很有限 (包括存儲器),在這種情況下,嵌入式開發(fā)工具就必須能夠提供高質量、小體積的代碼,且有必要針對處理器進行優(yōu)化配置,并能支持交互式的調試工作。
          為滿足嵌入式軟件設計工具的這些基本需要,Nexar集成了多個嵌入式編譯器和調試器(基于Altium公司的TASKING嵌入式軟件開發(fā)技術)以用于所供IP元件處理器內核的開發(fā)。不僅如此,Nexar還包含了一套全面集成硬件開發(fā)環(huán)境的完整軟件開發(fā)系統(tǒng),以便用于構建整個系統(tǒng)的軟硬件能夠同步開發(fā)。
          運用Nexus嵌入式處理器調試接口標準(IEEE-ISTO 5001-1999),可實現(xiàn)與嵌入到FPGA中的處理器進行通信。由Nexar提供的所有處理器內核都針對這一標準而專門設計,并且可提供廣泛的片上調試功能。這為在系統(tǒng)中運作的處理器內核實現(xiàn)全面的源級調試提供了可能。Nexar提供的各種編譯器都以Altium公司最尖端的Viper編譯器的框架為基礎構建,并針對預先備好的內核進行了特別的優(yōu)化配置,以確??商峁└哔|量的代碼。

          設計驗證
          工程技術人員在設計嵌入式系統(tǒng)時,采用的都是一些分立的、基本沒有進行過系統(tǒng)仿真的現(xiàn)成元件。他們寧愿通過構建一個試制的原型來調試系統(tǒng),并交替使用嵌入式軟件調試工具和測試儀器來進行測試,比如邏輯分析儀。然而一旦嵌入式系統(tǒng)元件集成入FPGA之中,要想用實際的儀器探查和監(jiān)測電路就不再可能了。
          對FPGA設計進行原型試制已不是什么新概念,目前市面上已有很多種這樣的FPGA開發(fā)線路板件。但是要想借助一個較大型設計的試制原型,在FPGA開發(fā)線路板上對電路的運行狀況進行測試是根本不可能的。 傳統(tǒng)的FPGA開發(fā)板件只是用于將FPGA上用途單一的元器件看做是獨立于系統(tǒng)而進行設計和測試的, 而并非用做對嵌入式系統(tǒng)進行整體測試的。
          要想獲得一個能夠對整個基于系統(tǒng)的微處理器進行設計、調試的FPGA開發(fā)系統(tǒng),工程技術人員需要一個真正的執(zhí)行平臺,而不僅僅是一個開發(fā)線路板。Nexar中最重要的組成部分就是一個名為NanoBoard的硅晶元件電路實驗板, 它可讓工程技術人員在產(chǎn)品開發(fā)期間以交互的方式進行真正的物理設計,并為實現(xiàn)交互式的系統(tǒng)級調試和驗證提供了便利。 由于與Nexar軟件環(huán)境保持了一致性,工程技術人員能夠在NanoBoard開發(fā)與試驗環(huán)境下,在目標FPGA中集成并運行基于處理器的嵌入式系統(tǒng), 實現(xiàn)硬件和嵌入式代碼的交互式編譯、下載和調試。
          這種“burn & learn”的方法可提高設計的迭代周期,并加快設計驗證的步伐,同時由于這是軟件實際應用于硬件中執(zhí)行工作的,工程技術人員能夠非??隙ǖ刈C實設計確實可以工作,而不是應用仿真的方法看看設計是否應該可以工作。
          要想將這種“burn & learn”的方法付諸于工作當中,工程技術人員需要能夠知道到底在FPGA中會出什么問題。Nexar內含一組可在原理圖狀態(tài)下放置入設計的“虛擬儀器”,這使得可以掌握一切。一旦設計在NanoBoard上進行,工程技術人員就可以通過Nexar環(huán)境與這些虛擬儀器進行通信,以達到測試和監(jiān)測電路性能的目的。
          這些虛擬儀器不僅能夠模擬并提供與其實現(xiàn)設備一樣的功能,而且可以用交互的方法對在FPGA中工作的電路進行測試。采用JTAG邊界掃描技術的這種儀器可提供一個FPGA內部實時視圖, 在一步步進行電路運行時,可對信號狀態(tài)進行觀測。與儀器的通信和設計的調試工作都可采用Nexus調試協(xié)議來進行。
          Nexar還可以借助邊界掃描提供一個反映電路運作期間,F(xiàn)PGA各接腳的信號狀態(tài)的瞬態(tài)圖。通過邊界掃描獲得的數(shù)值又可映射到原來的原理圖中,以便顯示調試過程中任一階段各個信號線的狀況或總線的數(shù)值。
          虛擬儀器和部件邊界掃描的配合使用不僅能夠獲得電路運行的各項綜合性信息,而且還為在系統(tǒng)級狀態(tài)下實現(xiàn)軟硬件的交互式調試提供了方便。

          一套完整的 LiveDesign平臺
          每一位設計過基于處理器的數(shù)字系統(tǒng)的工程技術人員,都對整個系統(tǒng)調試的困難性有非常深刻的印象。工程技術人員首先必須盡快做好硬件的首次修訂,以便為嵌入式軟件開發(fā)者留出足夠的開發(fā)空間。一旦到了這個階段,設計工作就變得不好把握了,需要捕捉硬件設計的各種問題,采用代價更為昂貴的PCB板修訂來解決,亦或是試圖通過軟件來回避。
          Nexar不但具備有在FPGA上進行全部嵌入式系統(tǒng)設計所需的各種功能,并且還將這些功能和工具以一種方便工程技術人員應用的方式集合在一起,讓他們將精力集中在高階設計流程的開發(fā)改進上,而不是把時間浪費在低級別的瑣碎事務上,如:在不同工具間調用設計數(shù)據(jù)、在不同設計環(huán)境中工作、應對如何實現(xiàn)設計工具與正開發(fā)的硬件對接等。
          一旦軟硬件設計進入到首次原型試制的階段,設計的工作便可轉入NanoBoard上來進行了,而不必制造出一個真實的物理原型來。工程技術人員可在NanoBoard中獲得設計所需要的各種虛擬儀器,探查FPGA接腳的狀態(tài),調試、重新編譯并重新下載更新的代碼-所有的工作都可通過一個Nexar應用接口來完成。由于整個設計迭代的周期只需幾分鐘的時間,因而可以快速地探測出軟硬件的不同執(zhí)行情況。
          所有的設計工作都可通過Nexar的一個接口來控制。工程技術人員可借助這個接口進行軟硬件設計的編譯,針對FPGA布局和布線的需要進行合成,通過FPGA廠商工具實施遠程布局和布線工藝,而且還可將設計下載至NanoBoard之中, 所有工作都可在短短的幾分鐘之內完成。
          Nexar環(huán)境中的軟硬件設計和調試流程如圖1所示,其交互式特性讓工程技術人員獲得了一種從事設計的全新方法-工程技術人員可在整個設計周期中與在實際硬件中運行的真正軟件實現(xiàn)交互。Altium將這種方式稱之為LiveDesign,這便是Nexar以及其所構建的平臺所具有的優(yōu)勢所在。

          結語
          Nexar引入了一種新型的元件級、立即可用的IP交付使用機制,以方便將系統(tǒng)級設計中基于原理圖的設計輸入方式應用于FPGA平臺之中。其內含的NanoBoard-可重新配置的系統(tǒng)工具平臺-可讓工程設計人員以一種交互的方式對整個工藝進行設計和驗證, 從而消除了由于采用耗時費力且難度極高的系統(tǒng)級仿真所帶來的種種設計障礙。
          將NanoBoard與虛擬儀器和邊界掃描配合使用,便成為了一套完備的LiveDesign開發(fā)環(huán)境,它不但能夠降低在FPGA中實現(xiàn)整套嵌入式系統(tǒng)運作的復雜性,而且還為應用最新一代大容量、低成本FPGA部件實現(xiàn)整套系統(tǒng)的運作提供了無限的潛能?!?/P>

          合成孔徑雷達相關文章:合成孔徑雷達原理


          關鍵詞: FPGA

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();