超越SoC的設(shè)計創(chuàng)新
大多數(shù)軟、硬件工程師都很熟悉 FPGA,這點(diǎn)應(yīng)該勿庸置疑。這種熟悉不見得是實(shí)質(zhì)性的熟悉,而是從概念上比較了解,也就是說 FPGA 功能的快速發(fā)展和成本的不斷下降是大家都不容忽略的優(yōu)勢。同時,他們也認(rèn)識到這種可編程器件顯然能方便地作為各種數(shù)字電路以及邏輯處理的高靈活度、低成本的載體。
基本說來,在設(shè)計方案中發(fā)揮 FPGA 的功能就是簡單地映射出所需的邏輯,然后將其下載至適當(dāng)容量大小的器件中。這有些像大型處理器系統(tǒng)主體設(shè)計的輔助支持工作,而且在該層面上也確實(shí)發(fā)揮著自身的支持性作用。
近期一些應(yīng)用開始充分利用 FPGA 的高吞吐量和并行計算功能進(jìn)行數(shù)據(jù)處理工作,不過這種工作仍屬于發(fā)揮支持性作用,而不是主要作用。例如,我們往往在設(shè)計工作后期才決定采用基于 FPGA 的 DSP 模塊,而且是將其作為主設(shè)計規(guī)劃與工藝流程的附屬部分來開發(fā)。
隨著 FPGA 功能獲得長足發(fā)展,我們已開始采用能夠在可編程空間內(nèi)實(shí)施處理器、存儲器、高速數(shù)據(jù)處理以及外設(shè)等核心功能模塊的 SoC 設(shè)計方案。隨著FPGA器件各代工藝技術(shù)從 65 納米向先進(jìn)的 40 納米方向發(fā)展,而且門的容量達(dá)到數(shù)百萬個,F(xiàn)PGA 目前已開始走向發(fā)揮主導(dǎo)作用的前臺,能夠支持真正的大型設(shè)計,達(dá)到專業(yè)化 ASIC 器件的實(shí)施水平。
從某種程度上說,這要?dú)w功于 FPGA 廠商推動的技術(shù)發(fā)展,拉近了 FPGA 與 ASIC 器件之間的性能與效率差距。對于大多數(shù)投入中低規(guī)模量產(chǎn)的產(chǎn)品而言,基于 FPGA 的方案顯然比 ASIC 更實(shí)際,這主要是因為后者的 NRE 成本已然非常高昂,而且還在不斷升高。不過,目前高產(chǎn)量產(chǎn)品仍然主要選用 ASIC 器件。
發(fā)揮潛力的障礙
不過,如果我們簡單地認(rèn)為 FPGA 就是 ASIC 設(shè)計方案的低成本與多功能備選方案的話,那么我們就會忽視 FPGA 可提供的巨大潛力。FPGA 的更高級潛力集中體現(xiàn)在 FPGA 從根本上與 ASIC 存在的技術(shù)差異性,即 FPGA 的關(guān)鍵技術(shù)組件具有強(qiáng)大的可再編程能力。要充分發(fā)揮其這一潛力需要采用不同的設(shè)計理念和設(shè)計方法,這就遠(yuǎn)遠(yuǎn)超出了傳統(tǒng) SoC 的設(shè)計思路和 ASIC 的原有方案。
FPGA 型產(chǎn)品設(shè)計的傳統(tǒng)開發(fā)進(jìn)程反映了傳統(tǒng)的設(shè)計理念,即將設(shè)計方案的各個部分(軟件、硬件及嵌入式硬件)作為彼此獨(dú)立、不相聯(lián)系的任務(wù)。這就是說,傳統(tǒng)方案與 ASIC 開發(fā)工作差不多,軟硬件分組等重大設(shè)計決策都是在設(shè)計周期的早期階段做出的(并在早期階段就固定了)。
其結(jié)果是,物理硬件(FPGA 器件與外設(shè)硬件)以及可編程硬件元素在進(jìn)行有意義的軟件開發(fā)之前就已經(jīng)鎖定了。這些初期決策確定了后續(xù)開發(fā)工作的參數(shù)和局限性,因而導(dǎo)致越到開發(fā)后期設(shè)計選擇的局限性就越大。通過修改軟硬件分組、將嵌入式處理器改為硬連接處理器抑或是選擇不同的 FPGA 器件類型等來進(jìn)行細(xì)節(jié)調(diào)整設(shè)計方案的理念是不存在的。
在上述基本層面進(jìn)行任何設(shè)計方案調(diào)整都必須對包括硬件、可編程硬件和軟件在內(nèi)的所有設(shè)計領(lǐng)域進(jìn)行大量重新設(shè)計,這對設(shè)計工作造成的沖擊是極其巨大的,因此我們必須不惜一切代價避免這種設(shè)計巨變。簡而言之,只能在可編程硬件的限制框架內(nèi)創(chuàng)建軟件,而可編程硬件則又相應(yīng)局限于固定的物理硬件。
在當(dāng)今設(shè)計中,軟件定義著產(chǎn)品的獨(dú)特優(yōu)勢與競爭元素(功能性與最終用戶體驗),因此傳統(tǒng)的 SoC 設(shè)計方案會人為地制造軟件開發(fā)的局限性,影響設(shè)計最具價值的成分。對基于 FPGA 的設(shè)計而言,產(chǎn)品最核心的資產(chǎn)當(dāng)屬應(yīng)用軟件和嵌入式 FPGA 硬件所決定的“軟”屬性。
智能層
如果對 FPGA 平臺采用傳統(tǒng)的 SoC 設(shè)計方案,就會面臨 ASIC 方法的大多數(shù)局限性,但是 FPGA 自身的巨大靈活性則能帶來更多可能。特別是如果 FPGA 開發(fā)進(jìn)程與軟硬件開發(fā)進(jìn)程密切相關(guān)、共享相同的設(shè)計環(huán)境和設(shè)計數(shù)據(jù)池的話,就更能發(fā)揮靈活性優(yōu)勢。
例如,如果 FPGA 的架構(gòu)能夠采用高靈活性接口層,有效地將設(shè)計的“軟”元素與主機(jī)硬件相隔離,那么就能充分發(fā)揮各種可能性,可以盡可能地降低應(yīng)用軟件和可編程硬件設(shè)計變動對周圍硬件系統(tǒng)所造成的影響。
這是發(fā)揮最新高容量 FPGA 器件功能的進(jìn)一步合理舉措,可讓可編程元素進(jìn)一步成為設(shè)計方案的核心,而不僅是傳統(tǒng) SoC 系統(tǒng)的簡單載體??删幊淘貙?shí)際上可以發(fā)揮更大的作用。
此外,F(xiàn)PGA 利用這種方案還能發(fā)揮外設(shè)、I/O 協(xié)處理器以及接口連接的作用。除了構(gòu)成傳統(tǒng) SoC 系統(tǒng)的高級功能元素之外,F(xiàn)PGA 還可作為設(shè)計方案中軟硬元素之間的連接機(jī)制。處理器、存儲器或 DSP 可作為軟內(nèi)核或物理硬件實(shí)施,甚至也可同時兼顧二者實(shí)施,同時 FPGA 提供的可再編程層能夠?qū)⑵渎?lián)系在一起。
這些更為豐富的 FPGA 元素通??勺鳛樘幚砥饕约按鎯ζ骱屯庠O(shè)等硬件之間的接口,可將不同功能器件之間的接口實(shí)現(xiàn)“標(biāo)準(zhǔn)化”,這樣設(shè)計人員就不必?zé)┬目紤] I/O 配置和總線系統(tǒng)等低級而復(fù)雜的硬件問題了。事實(shí)上,這些層可提取外設(shè)或處理器接口,從而能夠在不影響周圍硬件的情況下簡化對功能器件的更改。
在實(shí)踐中,基于 Wishbone 總線架構(gòu)之上的 FPGA 內(nèi)核可同時支持處理器和外設(shè)。內(nèi)核能夠高效地將器件“打包”,從而提取處理器接口,使其在架構(gòu)上相當(dāng)于其他處理器,而且能確保在不影響與其相連的外設(shè)的情況下對處理器方便地進(jìn)行修改。除了基于 FPGA 的“軟”器件之外,還可將上述理念進(jìn)一步擴(kuò)展適用于混合型硬核處理器、外部處理器以及片外分立式外設(shè)以及存儲器器件等。
高級設(shè)計
在不必考慮大多數(shù)低級硬件架構(gòu)問題的情況下,我們可以有機(jī)會采用高級 FPGA 設(shè)計捕獲系統(tǒng),使設(shè)計人員只需簡單地將邏輯功能模塊連接在一起。符合 Wishbone 標(biāo)準(zhǔn)的元件(從庫中拉出)可在原理圖上連在一起,甚至也可在更高級的設(shè)計抽象上組合,通過簡單的示意圖(反映功能或器件)組成類似于流程圖的配置。
請注意,這種高級設(shè)計方案各加能夠充分發(fā)揮 FPGA 的可再編程功能。任何添加層和接口都可自動與功能設(shè)計本身一起包含在 FPGA 結(jié)構(gòu)中。與固定芯片 SoC 產(chǎn)品設(shè)計所使用的傳統(tǒng)過程不同的是, FPGA 的硬件設(shè)計可以動態(tài)開發(fā),而不會對設(shè)計方案的其他組成部分構(gòu)成嚴(yán)重影響。
此外,這種方案從軟件開發(fā)人員的角度來說也非常重要。以編寫編寫存取或控制外設(shè)器件的軟件為例,我們需要全面了解器件在底層硬件級上的工作情況,其中包括需要哪些器件寄存器、采用哪些器件專用的命令、使用哪些通信協(xié)議,以及如何處理中斷等。
為了滿足這一需求,可以在層棧管理器中標(biāo)準(zhǔn)化的硬件接口層中添加驅(qū)動層與應(yīng)用層的驅(qū)動軟件。與 Wishbone包裝內(nèi)核相似,也可在構(gòu)建時間時將這些驅(qū)動層下載到 FPGA中,為您解決低級硬件接口連接的復(fù)雜性問題。
相反,許多硬件開發(fā)人員也擁有充足的編程知識完成應(yīng)用軟件開發(fā),但是他們受阻于操作系統(tǒng)、通信協(xié)議棧、用戶界面框架等方面的知識。上述層與驅(qū)動系統(tǒng)移除了這些障礙,它將軟硬件設(shè)計聯(lián)系了起來,從而使所有工程師都能夠在現(xiàn)有的技巧基礎(chǔ)上開發(fā)出更高級的產(chǎn)品。
可編程單元
此外,F(xiàn)PGA 的高靈活技術(shù)也是可通過將軟件程序與算法轉(zhuǎn)移到硬件中來最大限度發(fā)揮其加速作用的理想環(huán)境。FPGA 開發(fā)環(huán)境中的 C 到硬件轉(zhuǎn)換可以是一個動態(tài)過程,而不是 ASIC SoC 備選方案那樣的固定預(yù)設(shè)過程。軟件設(shè)計和 FPGA 設(shè)計共存于同一環(huán)境時,選定的軟件功能可在 FPGA 硬件中“復(fù)制”為相應(yīng)的協(xié)處理器??梢噪S時啟用備用選項來判斷性能的改善情況。
除了將并行處理等功能帶到軟設(shè)計區(qū)域的明顯優(yōu)勢之外,還可充分發(fā)揮 FPGA 物理器件引腳的固有可編程特性優(yōu)勢來降低電路板布線復(fù)雜性,并簡化外部連接。
例如,通常情況下,在實(shí)際布局中物理器件的放置會使 FPGA 與外設(shè)之間的連接極為復(fù)雜,這在一定程度上與 BGA 封裝的高密度有關(guān),我們可通過 FPGA的本身解決這個問題。這里可采用 FPGA 的引腳的重新分配與內(nèi)部布線來解決電路板布線的技術(shù)難題,還可以降低電路板空間占用與板子的層數(shù)要求。這一理念同樣依賴于在平臺層面上互連的軟件-硬件-FPGA 開發(fā)環(huán)境,只有這樣才能支持硬件 FPGA 域之間的智能與自動引腳交換。
這里我們確實(shí)需要從根本上解決超越傳統(tǒng) SoC 設(shè)計方法限制的問題。要想實(shí)現(xiàn)本文所描述的系統(tǒng),就需要可將所有設(shè)計進(jìn)程集中在同一領(lǐng)域的高級設(shè)計系統(tǒng)。通過統(tǒng)一設(shè)計應(yīng)用,采用整體設(shè)計的統(tǒng)一數(shù)據(jù)模型,就可消除嵌入式軟件、可編程硬件以及物理硬件等不同設(shè)計領(lǐng)域之間的分割。
用來實(shí)施的單純 SoC 設(shè)計方法與傳統(tǒng)系統(tǒng)都有極大的局限性,不能充分發(fā)揮 FPGA 的潛力。系統(tǒng)設(shè)計必須超越當(dāng)前這種不靈活的分離式設(shè)計方法,讓 FPGA(實(shí)際上是多個 FPGA)成為整體設(shè)計的可再編程中央平臺。
只有在統(tǒng)一的產(chǎn)品設(shè)計環(huán)境中采用這種方法,設(shè)計應(yīng)用軟件才能提高可移植性,實(shí)現(xiàn)軟硬件的真正協(xié)調(diào)設(shè)計,而且在了解相關(guān)要求后在設(shè)計周期后期決定重要硬件。這樣創(chuàng)建出來的具有高度靈活性的動態(tài)設(shè)計環(huán)境,可以幫助更多工程師創(chuàng)建出極具競爭力的特色創(chuàng)新電子產(chǎn)品。
評論
查看更多