新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的原型能為您做些什么

基于FPGA的原型能為您做些什么

作者: 時間:2011-10-31 來源:網(wǎng)絡(luò) 收藏

協(xié)議測試需要開發(fā)產(chǎn)品的各種軟件特性,包括硬件驅(qū)動程序、操作系統(tǒng)和協(xié)議棧代碼。雖然如前所述主要的目的是協(xié)議測試,通過使用 ,所有這些軟件開發(fā)工作都能夠在流片前完成,從而大大加快各種最終產(chǎn)品的開發(fā)進度。

本文引用地址:http://butianyuan.cn/article/190984.htm


Freescale構(gòu)建了一個多芯片系統(tǒng)的原型,其中包括一個雙核MXC2基帶處理器和一個RF收發(fā)器芯片的數(shù)字部分?;鶐幚砥鲀?nèi)置一個用于調(diào)制解調(diào)器處理的Freescale StarCore DSP內(nèi)核、一個用于用戶應(yīng)用處理的ARM 926內(nèi)核,以及 60多個外設(shè)。


Synopsys HAPS-54原型板用來實現(xiàn)原型(如圖3所示)。該基帶處理器有500多萬個ASIC門,Scott的團隊使用Synopsys Certify工具將其在原型板上劃分給3個賽靈思Virtex-5 ,同時把數(shù)字RF設(shè)計布置在第四個中。Freescale 決定不構(gòu)建模擬部分的原型,而是直接從Antritsu協(xié)議測試盒中以數(shù)字形式提供移動網(wǎng)絡(luò)數(shù)據(jù)。

圖3 Freescale的SoC設(shè)計在HAPS-54原型板上的分區(qū)


較早的內(nèi)核使用的某些設(shè)計技術(shù)對ASIC來說非常有效果,但對FPGA來說卻不太好用。另外,RTL的一部分是從系統(tǒng)級設(shè)計代碼中自動生成的,由于其過于復雜的時鐘網(wǎng)絡(luò),對FPGA來說也是相當不利的。因此,必須對RTL進行一些調(diào)整,使其更加兼容FPGA,這樣做的成效非常顯著。


僅在完成首個芯片后一個月,F(xiàn)reescale團隊就成功地從這個系統(tǒng)中撥出了第一個移動電話呼叫,把產(chǎn)品開發(fā)進度縮短了6個多月,這非常具有里程碑式的意義。


這個例子說明基于 FPGA的原型方法能夠給軟件開發(fā)團隊提供什么樣的增值工具,能夠在產(chǎn)品質(zhì)量和項目進程方面帶來怎樣顯著的回報。

接口優(yōu)勢:測試真實條件下的數(shù)據(jù)效應(yīng)
很難想象有這樣一種 SoC 設(shè)計可以不遵守輸入數(shù)據(jù)、處理數(shù)據(jù)、生成輸出數(shù)據(jù)的基本結(jié)構(gòu)。實際上,如果我們深入SoC設(shè)計,就會發(fā)現(xiàn)無數(shù)的子模塊遵循著同樣的結(jié)構(gòu),直到單個門級。


要在這些層級中的每一個層級驗證正確的處理,要求我們提供完整的輸入數(shù)據(jù)集,并觀察處理結(jié)果的輸出數(shù)據(jù)是否正確。對單個門來說,這個工作很簡單,對小型 RTL 模塊來說,也是可能的。但隨著系統(tǒng)日趨復雜,從統(tǒng)計上來說基本沒有可能確保輸入數(shù)據(jù)和初始條件的完整性,尤其是在有軟件運行在一個以上的處理器的時候。


最后一點非常重要,因為不可預(yù)測的輸入數(shù)據(jù)能擾亂所有的SoC系統(tǒng),即便是精心設(shè)計的關(guān)鍵SoC設(shè)計也難以幸免。與新輸入的數(shù)據(jù)或者輸入數(shù)據(jù)不尋常的組合或序列相結(jié)合的,是非常多的SoC 可能的前置狀態(tài),可能會使SoC處于某種無法驗證的狀態(tài)。當然,這種情況不一定是什么問題,SoC可以在無需系統(tǒng)的其他部分干預(yù)的情況下恢復,或者用戶根本就沒有察覺。


但是,不能驗證的狀態(tài)必須在最終芯片中避免,因此我們需要盡可能全面地測試設(shè)計的方法。在設(shè)計的功能仿真過程中,驗證工程師會采用有力的方法,比如受約束隨機激勵和高級測試工具來完成多種測試,旨在達到可接受的測試覆蓋面。但是,完整性仍受驗證工程師選擇的方向和給定的約束條件的限制,并受限于可用于運行仿真的時間。結(jié)果雖然受約束隨機驗證永遠不可能窮盡,但能夠大大增強我們已經(jīng)測試了所有輸入的組合(包括可能的輸入和極端情況輸入)的信心。

對實驗室可行性實驗的優(yōu)勢
在項目的初始階段,需要對芯片拓撲、性能、功耗以及片上通信結(jié)構(gòu)做出基本決策。部分決策采用算法或系統(tǒng)級建模工具便可良好執(zhí)行,但也可以采用 FPGA 進行某些額外的實驗。這是否是真正基于FPGA的原型設(shè)計呢?我們正使用 FPGA進行某個概念的原型設(shè)計,但這與使用算法或數(shù)學工具不同,因為我們需要某些可能是由這些高級工具生成的 RTL。一旦進入FPGA,就可采集早期信息幫助推進算法和最終SoC架構(gòu)的優(yōu)化?;贔PGA的原型為項目該階段帶來的優(yōu)勢是,可使用更準確的模型,而且這些模型的運行速度非???,能夠與實時輸入互動。


這種類型的實驗性原型值得一提,因為它們是在全面的SoC項目中使用基于FPGA的原型設(shè)計硬件和工具的又一途徑,可為我們的投資帶來更高的回報。

在實驗室外使用原型
基于FPGA的原型設(shè)計可用于驗證SoC設(shè)計的一個真正獨到之處,是其獨立工作的能力。這是因為FPGA可通過閃存EEPROM卡或其他獨立介質(zhì)進行配置,無須主機PC管理。因此該原型不但可獨立運行,而且還可用于各種環(huán)境下的SoC設(shè)計測試,這與其他建模技術(shù)(如需要依賴主機干預(yù)的仿真)提供的環(huán)境儼然不同。
在極端情況下,原型可以完全從實驗室中取出,用于現(xiàn)場真實環(huán)境中。比如將原型安裝在開動的車輛上,研究設(shè)計對外部噪聲、移動、天線場強等條件變化的依賴性。比如,本文作者就曾將移動電話的基帶原型安裝在車輛上,通過公共GSM網(wǎng)絡(luò)在移動中撥打電話。


芯片架構(gòu)師與其他產(chǎn)品專家需要與早期客戶互動,展示其算法的重要特性。基于FPGA的原型設(shè)計在項目極早期的這個階段可能是非常關(guān)鍵的優(yōu)勢,但這種方法與主流SoC原型設(shè)計略有不同。


基于FPGA原型的不足
我們撰寫本文的目的是公正地看待基于FPGA的原型的優(yōu)勢與局限性,因此在前面談及各種優(yōu)勢之后,我們將在下面介紹部分局限性。


首先最重要的是,F(xiàn)PGA原型不是RTL模擬器。如果我們的目的是編寫一些RTL,然后盡快在FPGA中實施,以查看它是否能工作,那么我們應(yīng)該重新思考所忽略的東西。FPGA對運行RTL“模型”來說確實是一種速度更快的引擎,但當我們開始設(shè)置該模型的時候,速度優(yōu)勢就會大打折扣。此外,模擬器的儀表盤部分能夠完整地控制激勵和掌握結(jié)果。我們應(yīng)該思考儀表化FPGA的方法,深入了解設(shè)計的功能性,但即便是在這方面最完善的設(shè)計,也只能提供一部分真正能用于 RTL 模擬器儀表盤的信息。因此,該模擬器是用于重復編寫和評估RTL代碼更加理想的環(huán)境,因此我們應(yīng)該等到模擬基本完成后,RTL相當成熟后才能將其交付給FPGA原型設(shè)計團隊。

基于FPGA的原型不是ESL
Synopsys的Innovator或Synphony等電子系統(tǒng)級(ESL)工具或算法工具可在SystemC中完成設(shè)計,或通過預(yù)定義模型庫進行構(gòu)建。然后,我們不但可在相同的工具中模擬這些設(shè)計,而且還可深入了解其系統(tǒng)級性能,包括運行軟件,在項目初期階段進行軟硬件權(quán)衡。


使用基于FPGA的原型方法,我們需要RTL,因此它不太適合研究算法或架構(gòu),因為這兩者通常不采用RTL方式表達。對軟件來說,F(xiàn)PGA原型設(shè)計的優(yōu)勢是在當 RTL 成熟得可以構(gòu)建硬件平臺的時候,軟件可在更加準確以及更加真實的環(huán)境中運行。對那些具有天馬行空想法的人來說,可以編寫少量RTL在FPGA上運行,進行可行性研究。這是一種極少而又非常重要的FPGA原型設(shè)計的使用方法,但別把它和整個SoC的系統(tǒng)級或算法研究混淆在一起。

持續(xù)性是關(guān)鍵
優(yōu)秀的工程師往往會為其工作選擇適當?shù)墓ぞ撸珣?yīng)該隨時有一種方法可以將半成品交給他人繼續(xù)完成。我們應(yīng)該能夠在盡量不增加工作量的情況下,將來自ESL模擬的設(shè)計移交給基于FPGA的原型。此外,部分ESL工具還可通過高層次綜合實現(xiàn)設(shè)計,生成RTL供SoC項目整體使用?;贔PGA的原型能夠接收該RTL,并以高周期精度在電路板上運行。但我們需要再次等到RTL相對穩(wěn)定下來,這需要等到項目軟硬件分區(qū)和架構(gòu)研究階段完成后。

采用FPGA進行原型設(shè)計的原因
當前SoC是從算法研究人員到硬件設(shè)計人員,乃至軟件工程師和芯片布局團隊等眾多專家的工作結(jié)晶,在項目不斷發(fā)展的同時,各類專家也都有自己的需求。SoC項目的成功很大程度上取決于上述各類專家所使用的硬件驗證、軟硬件聯(lián)合驗證以及軟件驗證的方法,基于FPGA的原型設(shè)計可為每一類專家?guī)砀鞣N不同的優(yōu)勢。


對于硬件團隊而言,驗證工具的速度可對驗證吞吐量產(chǎn)生巨大的影響。因此一些團隊采用基于FPGA的原型為這種硬件測試提供具有更高性能的平臺。例如,我們可以在近乎實時的條件下運行整個操作系統(tǒng)的引導程序,節(jié)省需要花上數(shù)天才能達到相同目的的模擬時間。


對于軟件開發(fā)團隊而言,基于FPGA的原型可為目標芯片提供獨特的流片前模型,能夠在開發(fā)接近尾聲時高速、高度準確地進行軟件調(diào)試。


對于整個團隊而言,SoC項目的關(guān)鍵階段是在軟硬件初次結(jié)合的時候。硬件將由最終軟件執(zhí)行,而執(zhí)行方式可能是單純硬件驗證方案難以預(yù)見或預(yù)測的,從而最終將出現(xiàn)新的硬件問題。這在多核系統(tǒng)中或者在那些運行同步實時應(yīng)用的系統(tǒng)中特別普遍。如果這種軟硬件的采用要等到第一個器件制造完畢后,那么毫不夸張地說,到那時再發(fā)現(xiàn)新的缺陷就不太好了。


上一頁 1 2 下一頁

關(guān)鍵詞: FPGA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉