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