隨著 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é)調整合。
FPGA 從膠合邏輯向 SoC 方向發(fā)展
FPGA 剛進入嵌入式市場領域時,被認為是用于實施大量簡單膠合邏輯的方便而有效的替代技術。在這種應用中,嵌入式硬件是主要軟硬件設計的附屬部分,其開發(fā)過程不涉及其他組件的設計流程,也不需要與這些流程進行交互。
不過,現(xiàn)在的 FPGA 器件及其使用方式已經(jīng)在海量數(shù)字邏輯便捷容器概念的基礎上發(fā)生了重大變化。大容量 FPGA 現(xiàn)在能承載整個 SoC 設計,其中處理器、內存以及高速數(shù)據(jù)處理等核心功能元素都在可編程領域實施。在軍用嵌入式系統(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 等在內的性能上限,嵌入式硬件設計進而定義軟件可用的功能?;蛘哒f,F(xiàn)PGA 器件只能支持該器件廠商提供的軟處理器,這進而也定義了應用軟件可用的編程選擇。
此外,要想微調設計方案的性能,比如將軟件算法轉移到嵌入式硬件中、或者從嵌入式處理器轉為硬連接的處理器、抑或是選擇不同的 FPGA 類型等,都會導致對硬件、可編程硬件和軟件等所有域