專(zhuān)家點(diǎn)撥:如何發(fā)揮FPGA設計的無(wú)限潛力
盡管FPGA為嵌入式設計帶來(lái)了強大的功能與靈活性,但額外的開(kāi)發(fā)流程也給設計工作增加了新的復雜性和限制問(wèn)題。整合傳統的硬件-FPGA-軟件設計流程并充分利用FPGA的可再編程功能是我們的一個(gè)解決之道。
隨著(zhù)FPGA技術(shù)逐步延伸至軍事電子系統以及嵌入式電子產(chǎn)業(yè)的幾乎全部領(lǐng)域,能發(fā)揮可編程邏輯優(yōu)勢的應用已經(jīng)占據主流地位。通信、機載和控制系統尤其受益于FPGA的設計靈活性、現場(chǎng)重構和并行處理功能。同時(shí),較短的設計周期和更加簡(jiǎn)化的驗證過(guò)程則有助于加快應用投入現場(chǎng)的進(jìn)程。
盡管FPGA無(wú)所不在,但能真正全面發(fā)揮FPGA靈活設計潛力的應用卻很少。之所以存在這種局限性,原因在于FPGA開(kāi)發(fā)很大程度上只是簡(jiǎn)單地疊加,或者最多也只是連接于傳統的軟硬件工作流程上。這個(gè)孤立的FPGA開(kāi)發(fā)階段會(huì )導致整個(gè)設計流程的復雜性大幅上升——并最終限制軟硬件領(lǐng)域可用的設計選擇范圍。
為了簡(jiǎn)化整體設計工作,并豐富設計選項,硬件設計、軟件開(kāi)發(fā)和可編程硬件設計等獨立的設計過(guò)程需集成在一起,以作為一個(gè)整體的任務(wù)進(jìn)行處理。只有在基礎層面上讓所有設計進(jìn)程都能共享統一的設計數據庫和通用的設計環(huán)境,FPGA的可再編程性這一最主要的獨特優(yōu)勢才能得到充分發(fā)揮,從而將FPGA設計推向前所未有的水平。全面發(fā)揮FPGA靈活性?xún)?yōu)勢的關(guān)鍵在于了解其發(fā)展趨勢及所面臨的設計挑戰,并掌握如何讓包含FPGA系統中的三大設計方面(硬件、可編程硬件和軟件)實(shí)現協(xié)調整合。
FPGA從膠合邏輯向SoC方向發(fā)展
FPGA剛進(jìn)入嵌入式市場(chǎng)領(lǐng)域時(shí),被認為是用于實(shí)施大量簡(jiǎn)單膠合邏輯的方便而有效的替代技術(shù)。在這種應用中,嵌入式硬件是主要軟硬件設計的附屬部分,其開(kāi)發(fā)過(guò)程不涉及其他組件的設計流程,也不需要與這些流程進(jìn)行交互。
不過(guò),現在的FPGA器件及其使用方式已經(jīng)在海量數字邏輯便捷容器概念的基礎上發(fā)生了重大變化。大容量FPGA現在能承載整個(gè)SoC設計,其中處理器、內存以及高速數據處理等核心功能元素都在可編程領(lǐng)域實(shí)施。在軍用嵌入式系統中,由于受產(chǎn)量相對較低的影響,很難采用ASIC設計方案,而FPGA則為充分發(fā)揮SoC設計方案的物理簡(jiǎn)單性和可靠性等優(yōu)勢提供了一條經(jīng)濟高效的可行之道。
相對于簡(jiǎn)單的膠合邏輯設計而言,SoC實(shí)施的一個(gè)重大不同點(diǎn)在于,軟硬件開(kāi)發(fā)現在基本上都是關(guān)聯(lián)于、且依賴(lài)于FPGA設計。這是因為FPGA器件和支持外設是物理設計的中心與核心元素,而嵌入式應用軟件也要裝載在FPGA上發(fā)揮作用。因此,FPGA域的任何更改都會(huì )對軟硬件域造成顯著(zhù)影響。
受限制的創(chuàng )新
如果將硬件、軟件乃至當前的嵌入式硬件等設計的各個(gè)部分視作是彼此分開(kāi)、互不關(guān)聯(lián)的任務(wù),則無(wú)論設計域之間如何相互依存,FPGA產(chǎn)品設計的常規開(kāi)發(fā)流程采用的仍然是傳統方案。
某個(gè)設計域的變動(dòng)往往會(huì )對其他域造成具有破壞性影響且耗時(shí)巨大的重新設計。也就是說(shuō),必須在設計階段早期就做出(并且鎖定)軟硬件分區等重大決策,這與傳統的非FPGA嵌入式設計別無(wú)二致。實(shí)際上,FPGA器件和外設硬件等物理硬件和隨后的可編程硬件元素在有意義的軟件開(kāi)發(fā)之前都被依次一一鎖定了。
這些最初的決策決定了后續開(kāi)發(fā)流程的參數和限制,因此設計的可選項會(huì )隨著(zhù)流程的逐步推進(jìn)而越來(lái)越少。例如,選定的FPGA器件(和硬件外設)將定義包括確定采用哪種嵌入式IP等在內的性能上限,嵌入式硬件設計進(jìn)而定義軟件可用的功能?;蛘哒f(shuō),FPGA器件只能支持該器件廠(chǎng)商提供的軟處理器,這進(jìn)而也定義了應用軟件可用的編程選擇。
此外,要想微調設計方案的性能,比如將軟件算法轉移到嵌入式硬件中、或者從嵌入式處理器轉為硬連接的處理器、抑或是選擇不同的FPGA類(lèi)型等,都會(huì )導致對硬件、可編程硬件和軟件等所有域進(jìn)行大規模重新設計。對開(kāi)發(fā)時(shí)間緊迫的軍事/航空系統而言,這種重新設計對設計周期造成的中斷影響極大,因此大多數工程師都會(huì )全力避免這種設計風(fēng)險的發(fā)生。不過(guò),高性能和設計穩定性同樣至關(guān)重要,因此檢查處理器選項并充分利用軟算法的優(yōu)勢來(lái)替代硬算法也是必不可少的。
評論