《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 發(fā)揮 FPGA 設計的無限潛力
發(fā)揮 FPGA 設計的無限潛力
惠瑞捷
摘要: 盡管 FPGA 為嵌入式設計帶來了強大的功能與靈活性,,但額外的開發(fā)流程也給設計工作增加了新的復雜性和限制問題。整合傳統(tǒng)的硬件-FPGA-軟件設計流程并充分利用 FPGA 的可再編程功能是我們的一個解決之道,。
關鍵詞: FPGA SOC 設計 verigy
Abstract:
Key words :

作者:Rob Evans
 
  盡管 FPGA嵌入式設計帶來了強大的功能與靈活性,,但額外的開發(fā)流程也給設計工作增加了新的復雜性和限制問題,。整合傳統(tǒng)的硬件-FPGA-軟件設計流程并充分利用 FPGA 的可再編程功能是我們的一個解決之道。
 
  隨著 FPGA 技術逐步延伸至軍事電子系統(tǒng)以及嵌入式電子產(chǎn)業(yè)的幾乎全部領域,,能發(fā)揮可編程邏輯優(yōu)勢的應用已經(jīng)占據(jù)主流地位,。通信、機載和控制系統(tǒng)尤其受益于 FPGA 的設計靈活性,、現(xiàn)場重構和并行處理功能,。同時,較短的設計周期和更加簡化的驗證過程則有助于加快應用投入現(xiàn)場的進程,。
 
  盡管 FPGA 無所不在,,但能真正全面發(fā)揮FPGA 靈活設計潛力的應用卻很少。之所以存在這種局限性,,原因在于 FPGA 開發(fā)很大程度上只是簡單地疊加,,或者最多也只是連接于傳統(tǒng)的軟硬件工作流程上。這個孤立的 FPGA 開發(fā)階段會導致整個設計流程的復雜性大幅上升——并最終限制軟硬件領域可用的設計選擇范圍,。
 
  為了簡化整體設計工作,,并豐富設計選項,硬件設計,、軟件開發(fā)和可編程硬件設計等獨立的設計過程需集成在一起,,以作為一個整體的任務進行處理。只有在基礎層面上讓所有設計進程都能共享統(tǒng)一的設計數(shù)據(jù)庫和通用的設計環(huán)境,,F(xiàn)PGA 的可再編程性這一最主要的獨特優(yōu)勢才能得到充分發(fā)揮,,從而將 FPGA 設計推向前所未有的水平。全面發(fā)揮 FPGA 靈活性優(yōu)勢的關鍵在于了解其發(fā)展趨勢及所面臨的設計挑戰(zhàn),,并掌握如何讓包含 FPGA 系統(tǒng)中的三大設計方面(硬件,、可編程硬件和軟件)實現(xiàn)協(xié)調(diào)整合。
 
FPGA 從膠合邏輯向 SoC 方向發(fā)展
  FPGA 剛進入嵌入式市場領域時,被認為是用于實施大量簡單膠合邏輯的方便而有效的替代技術,。在這種應用中,,嵌入式硬件是主要軟硬件設計的附屬部分,其開發(fā)過程不涉及其他組件的設計流程,,也不需要與這些流程進行交互,。
 
  不過,現(xiàn)在的 FPGA 器件及其使用方式已經(jīng)在海量數(shù)字邏輯便捷容器概念的基礎上發(fā)生了重大變化,。大容量 FPGA 現(xiàn)在能承載整個 SoC 設計,,其中處理器、內(nèi)存以及高速數(shù)據(jù)處理等核心功能元素都在可編程領域?qū)嵤?。在軍用嵌入式系統(tǒng)中,,由于受產(chǎn)量相對較低的影響,很難采用 ASIC 設計方案,,而 FPGA 則為充分發(fā)揮 SoC 設計方案的物理簡單性和可靠性等優(yōu)勢提供了一條經(jīng)濟高效的可行之道,。
 
  相對于簡單的膠合邏輯設計而言,SoC 實施的一個重大不同點在于,,軟硬件開發(fā)現(xiàn)在基本上都是關聯(lián)于,、且依賴于 FPGA 設計。這是因為 FPGA 器件和支持外設是物理設計的中心與核心元素,,而嵌入式應用軟件也要裝載在 FPGA 上發(fā)揮作用,。因此,F(xiàn)PGA 域的任何更改都會對軟硬件域造成顯著影響,。
 
受限制的創(chuàng)新
  如果將硬件,、軟件乃至當前的嵌入式硬件等設計的各個部分視作是彼此分開、互不關聯(lián)的任務,,則無論設計域之間如何相互依存,,F(xiàn)PGA 產(chǎn)品設計的常規(guī)開發(fā)流程采用的仍然是傳統(tǒng)方案。
 
  某個設計域的變動往往會對其他域造成具有破壞性影響且耗時巨大的重新設計,。也就是說,,必須在設計階段早期就做出(并且鎖定)軟硬件分區(qū)等重大決策,這與傳統(tǒng)的非 FPGA 嵌入式設計別無二致,。實際上,,F(xiàn)PGA 器件和外設硬件等物理硬件和隨后的可編程硬件元素在有意義的軟件開發(fā)之前都被依次一一鎖定了。
 
  這些最初的決策決定了后續(xù)開發(fā)流程的參數(shù)和限制,,因此設計的可選項會隨著流程的逐步推進而越來越少,。例如,選定的 FPGA 器件(和硬件外設)將定義包括確定采用哪種嵌入式 IP 等在內(nèi)的性能上限,,嵌入式硬件設計進而定義軟件可用的功能,。或者說,F(xiàn)PGA 器件只能支持該器件廠商提供的軟處理器,,這進而也定義了應用軟件可用的編程選擇,。
 
  此外,要想微調(diào)設計方案的性能,,比如將軟件算法轉(zhuǎn)移到嵌入式硬件中、或者從嵌入式處理器轉(zhuǎn)為硬連接的處理器,、抑或是選擇不同的 FPGA 類型等,,都會導致對硬件、可編程硬件和軟件等所有域進行大規(guī)模重新設計,。對開發(fā)時間緊迫的軍事/航空系統(tǒng)而言,,這種重新設計對設計周期造成的中斷影響極大,因此大多數(shù)工程師都會全力避免這種設計風險的發(fā)生,。不過,,高性能和設計穩(wěn)定性同樣至關重要,因此檢查處理器選項并充分利用軟算法的優(yōu)勢來替代硬算法也是必不可少的,。
 
重建一體化
  如前所述,,簡單地在現(xiàn)有的設計工作流程中添加 FPGA 開發(fā)流程難以充分發(fā)揮 FPGA 的全部優(yōu)勢。對于需要降低 NRE 成本,、加快設計速度的應用而言,,傳統(tǒng)設計方法所帶來的局限性會抵消這種優(yōu)勢;而這正是 FPGA 應當發(fā)揮最大作用的地方,。
 
  恢復設計選擇和全面發(fā)揮 FPGA 優(yōu)勢的第一步就是讓硬件設計,、軟件開發(fā)和可編程硬件設計等統(tǒng)一起來。通過使用來自整體設計統(tǒng)一數(shù)據(jù)模型中的一體化設計系統(tǒng)和應用,,設計域可隨各域中設計的變化而實現(xiàn)交互和及時響應,。在實踐中,各個域采用的都是同一設計和組件庫數(shù)據(jù)中的子集,。由于更改可以方便地(甚至是自動地)反映在所有設計領域中,,因而可以顯著簡化設計更改,如在軟件與硬件之間進行功能轉(zhuǎn)移,,或探索其他器件等,。
 
  例如,在統(tǒng)一設計數(shù)據(jù)池中,,針對選定 FPGA 器件的設計數(shù)據(jù)和配置文件可同時適用于硬件和 FPGA 設計領域,。如果 FPGA 器件或其引腳配置在 FPGA 設計階段進行了更改,該信息會立即用于硬件設計的實施,。這樣,,我們探索不同設計選擇就能變得更加有效,而且硬件和FPGA設計域之間的引腳交換等高級設計功能也得以簡化。
 
充分利用可再編程性
  在這種一體化的設計環(huán)境中,,開發(fā)人員終于能夠充分發(fā)揮 FPGA 的靈活性了,。例如在典型的環(huán)境中,物理硬件組件的大多數(shù)實際放置位置會造成 FPGA 與外設的連接極為復雜,,而這一方面也是高密度 BGA 封裝造成的問題,。解決方法之一就是在 FPGA 內(nèi)部來解決部件之間布線的復雜性,通過 FPGA 可重新配置的引腳和內(nèi)部布線功能來實現(xiàn)板上連接線路的戰(zhàn)略安排,。
 
  我們在這里用 FPGA 的引腳再分配和內(nèi)部布線功能解決板上布線難題,,還有可能減少板上空間占用和層數(shù)要求。這一理念同樣依賴于平臺級的軟硬件與 FPGA 開發(fā)環(huán)境,,只有這樣才能支持硬件與 FPGA 域之間的智能和自動引腳交換,。
 
  此外,這種一體化設計方案還將實施可提升設計流程抽象程度的全局軟件系統(tǒng)變成了一種可能,,如可采用圖表或圖形化嵌入式設計方法,,實現(xiàn)軟硬件域的同步。由于數(shù)據(jù)已經(jīng)作為貫穿于一體化設計環(huán)境所有域的統(tǒng)一實體而存在,,所以與采用一系列獨立工具的系統(tǒng)不同的是,,單個域中較高級的設計抽象不會增加設計數(shù)據(jù)流的復雜性。
 
  這種設計抽象的自然延伸的目的是實施軟件元素與其所依附硬件能有效分離的高級嵌入式層,。這些插入的層實現(xiàn)了處理器與其他硬件(如內(nèi)存和外設)之間接口的標準化,,因而無需再考慮 I/O 配置和總線系統(tǒng)的底層硬件復雜性問題。無論是進行傳統(tǒng)設計更新,、不同產(chǎn)品模式配置,、現(xiàn)有 IP 重用,還是執(zhí)行生產(chǎn)后期升級,,F(xiàn)PGA 設計的再配置都將成為一個更簡單,、更低風險的過程。
 
  在實踐中,,采用 Wishbone 總線架構,、基于庫的 FPGA 內(nèi)核可同時支持處理器和外設。通過有效“包裹”器件,,使其在架構上等同于其他處理器,,該內(nèi)核可以提取處理器接口,從而能夠根據(jù)需要修改處理器,,而不會影響與其相連的外設,,或者造成設計方案的被迫大幅修改。除了基于 FPGA 的“軟”器件之外,,上述理念還可擴展適用于混合型硬內(nèi)核處理器,、外部處理器以及片外獨立外設和存儲器器件,。
 
新一代 FPGA 設計
  本文介紹的一體化高級設計方法是通過發(fā)揮 FPGA 主機的可再編程功能實現(xiàn)的。所有應用的層和接口以及功能設計本身都自動包含在 FPGA 系統(tǒng)中,。因此,,與適用于“固定”ASIC 類 SoC 設計的傳統(tǒng)流程不同,功能相當?shù)母呒?FPGA 能在不嚴重影響設計方案其他部分的情況下動態(tài)探索不同的硬件設計選擇,。
 
  Rob Evans 現(xiàn)任 Altium Limited 技術編輯,。他在電子設計與出版行業(yè)擁有超過 20 年的豐富經(jīng)驗,并曾在澳大利亞墨爾本的 RMIT 學習電子工程,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉(zhuǎn)載。