新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA原型設(shè)計(jì) 能為您做些什么?

基于FPGA原型設(shè)計(jì) 能為您做些什么?

作者: 時(shí)間:2011-09-27 來源:網(wǎng)絡(luò) 收藏

除了能夠加快協(xié)議測(cè)試, 到Freescale 的工程師完成首個(gè)芯片時(shí),他們還能夠:
?發(fā)布調(diào)試器軟件,且在芯片實(shí)現(xiàn)后無需進(jìn)行大的修改;
?完成驅(qū)動(dòng)程序軟件;
?在操作系統(tǒng)提示符下引導(dǎo)SoC;
?實(shí)現(xiàn)調(diào)制解調(diào)器陣營(modem camp)和注冊(cè)。

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

如 Scott Constable 所說,“除了加速我們所述的協(xié)議測(cè)試目標(biāo)外,我們的 系統(tǒng)原型還加快了眾多其他領(lǐng)域的項(xiàng)目進(jìn)度,再次證明了它的價(jià)值。

也許最重要是給開發(fā)人員帶來的不可估量的好處:它能夠讓工程人員盡早參與項(xiàng)目,讓從設(shè)計(jì)到軟件到驗(yàn)證再到應(yīng)用
的所有開發(fā)團(tuán)隊(duì)在芯片完成前半年時(shí)間內(nèi)就對(duì)產(chǎn)品了如指掌。這種對(duì)產(chǎn)品專業(yè)知識(shí)認(rèn)知的進(jìn)程的加快是難以用甘特圖
(Gantt chart) 來衡量的,卻可能是最有益處的?!?P> “ 鑒于如此多的優(yōu)勢(shì), 用基于 的原型解決方案來加快 ASIC 的開發(fā)進(jìn)程是一件非常自然的事情。我們隨后將這種方法介紹給了 Freescale 網(wǎng)絡(luò)和微控制器部,還將其用于最新 IP驗(yàn)證、驅(qū)動(dòng)程序開發(fā)、調(diào)試器開發(fā)和客戶演示?!?P> 這個(gè)例子說明基于 的原型方法能夠給軟件開發(fā)團(tuán)隊(duì)提供什么樣的增值工具,能夠在產(chǎn)品質(zhì)量和項(xiàng)目進(jìn)程方面帶來怎樣顯著的回報(bào)。

接口優(yōu)勢(shì):測(cè)試真實(shí)條件下的數(shù)據(jù)效應(yīng)很難想象有這樣一種 SoC 設(shè)計(jì)可以不遵守輸入數(shù)據(jù)、處理數(shù)據(jù)、生成輸出數(shù)據(jù)的基本結(jié)構(gòu)。實(shí)際上,如果我們深入 SoC 設(shè)計(jì),就會(huì)發(fā)現(xiàn)無數(shù)的子模塊遵循著同樣的結(jié)構(gòu),直到單個(gè)門級(jí)。要在這些層級(jí)中的每一個(gè)層級(jí)驗(yàn)證正確的處理,要求我們提供完整的輸入數(shù)據(jù)集,并觀察處理結(jié)果的輸出數(shù)據(jù)是否正確。對(duì)單個(gè)門來說,這個(gè)工作很簡(jiǎn)單,對(duì)小型 RTL 模塊來說,也是可能的。但隨著系統(tǒng)日趨復(fù)雜,從統(tǒng)計(jì)上來說基本沒有可能確保輸入數(shù)據(jù)和初始條件的完整性,尤其是在有軟件運(yùn)行在一個(gè)以上的處理器的時(shí)候。

為了提升傳統(tǒng)驗(yàn)證方法的效率和覆蓋面,以及應(yīng)對(duì)這種復(fù)雜性所帶來的挑戰(zhàn),我們已經(jīng)投入了大量的研究工作和資金。在完整的 SoC 層面,我們需要使用多種不同的驗(yàn)證方法來覆蓋所有輸入組合并和剔除極端情況下的組合。

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

但是,不能驗(yàn)證的狀態(tài)必須在最終芯片中避免,因此我們需要盡可能全面地測(cè)試設(shè)計(jì)的方法。在設(shè)計(jì)的功能仿真過程中,驗(yàn)證工程師會(huì)采用有力的方法,比如受約束隨機(jī)激勵(lì)和高級(jí)測(cè)試工具來完成多種測(cè)試,旨在達(dá)到可接受的測(cè)試覆蓋面。但是,完整性仍受驗(yàn)證工程師選擇的方向和給定的約束條件的限制,并受限于可用于運(yùn)行仿真的時(shí)間。

結(jié)果雖然受約束隨機(jī)驗(yàn)證永遠(yuǎn)不可能窮盡,但能夠大大增強(qiáng)我們已經(jīng)測(cè)試了所有輸入的組合(包括可能的輸入和極端
情況輸入)的信心。

為了屏蔽極端情況下的組合,我們可以通過觀察真實(shí)條件下運(yùn)行在基于FPGA 原型上的設(shè)計(jì)來完善我們的驗(yàn)證工作。通過將 SoC設(shè)計(jì)植入原型,我們能夠以與最終芯片媲美的速度和準(zhǔn)確度來運(yùn)行設(shè)計(jì),從而在最終的環(huán)境數(shù)據(jù)中進(jìn)行“浸入式”測(cè)試,就如在最終芯片上進(jìn)行的一樣。

西班牙瓦倫西亞的 DS2 采用基于FPGA 的原型將 SoC 設(shè)計(jì)浸入到真實(shí)環(huán)境中就是一個(gè)很好的例子。

實(shí)例:浸入到真實(shí)環(huán)境數(shù)據(jù)中

電力線寬帶 (BPL) 技術(shù)一般采用無法檢測(cè)的信號(hào)來通過輸電線發(fā)送和接收信息。BPL 的一種典型應(yīng)用是將高清視頻從接收器通過輸電線傳輸?shù)绞覂?nèi)的任意一臺(tái)顯示器,如圖 4 所示。DS2 的 BPL 設(shè)計(jì)核心是復(fù)雜的硬件和嵌入式軟件算法,其可對(duì)電力線輸入輸出的高速傳輸信號(hào)進(jìn)行編碼和檢索。這些電力線可能工作在噪聲極高的電氣環(huán)境中,因此開發(fā)工作的關(guān)鍵部分是在各種真實(shí)情況下驗(yàn)證這些算法。

基于FPGA原型設(shè)計(jì) 能為您做些什么?
圖4 WiFi 范圍擴(kuò)展器采用的電力線寬帶 (BPL) 技術(shù)

DS2 的 BPL 設(shè)計(jì)核心是復(fù)雜的硬件和嵌入式軟件算法,其可對(duì)電力線輸入輸出的高速傳輸信號(hào)進(jìn)行編碼和檢索。這些電力線可能工作在噪聲極高的電氣環(huán)境中,因此開發(fā)工作的關(guān)鍵部分是在各種真實(shí)情況下驗(yàn)證這些算法。

DS2 的 ASIC 設(shè)計(jì)經(jīng)理 Javier Jimenez 說明了基于 FPGA 的對(duì)他們的用處:“采用穩(wěn)健的驗(yàn)證技術(shù)開發(fā)可靠的高速通信非常重要。它需要采用不同的通道和噪聲模型進(jìn)行大量的嘗試,只有基于 FPGA 的原型可幫助我們?nèi)鏈y(cè)試算法,在原型上運(yùn)行設(shè)計(jì)的嵌入式軟件。另外,我們還可將原型拿出實(shí)驗(yàn)室,進(jìn)行廣泛的現(xiàn)場(chǎng)測(cè)試。我們可將多個(gè)原型放在真正的家居和辦公環(huán)境中,其中部分電氣環(huán)境非常惡劣。我們不能考慮將仿真器系統(tǒng)用于該目的,因?yàn)槠鋬r(jià)格非常昂貴,也不便攜帶?!边@種在實(shí)驗(yàn)室外使用基于 FPGA的非常有指導(dǎo)意義,因?yàn)槲覀兠靼状蛟炜煽?、便攜的平臺(tái)對(duì)取得成功非常重要。

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

這種類型的實(shí)驗(yàn)性原型值得一提,因?yàn)樗鼈兪窃谌娴?SoC 項(xiàng)目中使用基于 FPGA 的原型設(shè)計(jì)硬件和工具的又一途徑,可為我們的投資帶來更高的回報(bào)。

在實(shí)驗(yàn)室外使用原型

基于 FPGA 的原型設(shè)計(jì)可用于驗(yàn)證 SoC 設(shè)計(jì)的一個(gè)真正獨(dú)到之處,是其獨(dú)立工作的能力。這是因?yàn)?FPGA 可通過閃存 EEPROM 卡或其它獨(dú)立介質(zhì)進(jìn)行配置,無需主機(jī) PC 管理。因此該原型不但可獨(dú)立運(yùn)行,而且還可用于各種環(huán)境下的 SoC 設(shè)計(jì)測(cè)試,這與其它建模技術(shù)(如需要依賴主機(jī)干預(yù)的仿真)提供的環(huán)境儼然不同。

在極端情況下,原型可以完全從實(shí)驗(yàn)室中取出,用于現(xiàn)場(chǎng)真實(shí)環(huán)境中。比如將原型安裝在開動(dòng)的車輛上,研究設(shè)計(jì)對(duì)外部噪聲、移動(dòng)、天線場(chǎng)強(qiáng)等條件變化的依賴性。比如,本文作者就曾將移動(dòng)電話的基帶原型安裝在車輛上,通過公共 GSM 網(wǎng)絡(luò)在移動(dòng)中撥打電話。

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

將基于 FPGA的原型用于實(shí)驗(yàn)室外的另一種極為常見的用途是在商業(yè)展示會(huì)上進(jìn)行新產(chǎn)品功能的預(yù)制造展示。下面讓我們來研究一下英國 BBC 下屬的研發(fā)部門將基于 FPGA 的原型用于實(shí)驗(yàn)室外和商業(yè)展示會(huì)的案例。

實(shí)例:現(xiàn)實(shí)世界中的原型

FPGA 獨(dú)立運(yùn)行的強(qiáng)大功能在英國用來推廣 DVB-T2 的 BBC 研發(fā)項(xiàng)目中得到了充分展現(xiàn)。DVB-T2 是業(yè)界領(lǐng)先的最新開放式標(biāo)準(zhǔn),其可實(shí)現(xiàn)通過地面發(fā)射器傳播高清電視。

使用基于 FPGA 的原型的原因和大多數(shù)國際標(biāo)準(zhǔn)一樣,DVB-T2 技術(shù)規(guī)范的完善花費(fèi)了數(shù)年時(shí)間,來自世界各地的研究人員和技術(shù)專家用了 3 萬個(gè)工程小時(shí)。只有 FPGA 才能高度靈活地滿足開發(fā)過程中不斷變更的需求。該規(guī)范于 2008 年 3 月終稿,并于三個(gè)月后在 6 月 26 日以《DVB 藍(lán)皮書》的方式發(fā)行。

由于 BBC 在規(guī)范制定的同時(shí)就已經(jīng)在使用基于 FPGA 的原型,由 BBC研發(fā)部 Justin Mitchell 帶領(lǐng)的 BBC 實(shí)施團(tuán)隊(duì)就能夠?yàn)?DVB-T2 開發(fā)一種基于硬件的調(diào)制器和解調(diào)器。該調(diào)制器建立在具有賽靈思Virtex-5 FPGA 的 Synopsys HAPS-51卡基礎(chǔ)之上。該卡連接至 BBC 研發(fā)部設(shè)計(jì)的子卡上。該子卡提供一個(gè) ASI 接口,可接收輸入的傳送流。輸入的傳送流隨后傳輸給 FPGA,按 DVB-T2 標(biāo)準(zhǔn)編碼,然后傳回子卡,直接上變頻為UHF。

該調(diào)制器用于業(yè)界首次從現(xiàn)場(chǎng) TV發(fā)射器傳輸 DVB-T2 標(biāo)準(zhǔn)信號(hào),時(shí)間是該規(guī)范發(fā)行的同一天。解調(diào)器也采用 HAPS 作為另一種FPGA 原型的基礎(chǔ),完善了端對(duì)端的工作鏈,并在 2008 年阿姆斯特丹的 IBC展會(huì)上進(jìn)行了演示,時(shí)間是規(guī)范最終確定后三個(gè)月。這是一項(xiàng)不平常的成就,幫助建立了該系統(tǒng)于 2009 年投入使用的信心。

此外, B B C 研發(fā)部還參與了DVB-T2 項(xiàng)目的其它重要部分,包括2009 年 3 月在 Turin 舉辦的非常成功的插拔測(cè)試大會(huì)。在這次大會(huì)上,共有五種不同的調(diào)制器和六種不同的解調(diào)器亮相,在各種模式下協(xié)同工作。BBC原型穩(wěn)健的便攜式構(gòu)造使其成為本次插拔測(cè)試大會(huì)上的亮點(diǎn)。

Justin Mitchell 對(duì)基于 FPGA 的原型評(píng)論道:“FPGA 最大優(yōu)勢(shì)之一是能夠在從預(yù)備階段到宣布傳輸?shù)倪@段時(shí)間里跟蹤規(guī)范的最新變化。根據(jù)規(guī)范的變動(dòng)迅速對(duì)調(diào)制器做出調(diào)整的能力非常重要。很難想出有另一種可如此快速開發(fā)調(diào)制器與解調(diào)器并支持便攜性的技術(shù),其可使調(diào)制器與解調(diào)器獨(dú)立應(yīng)用于現(xiàn)場(chǎng)發(fā)射器和公共展會(huì)。”

基于 FPGA 原型有何不足?

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

首先最重要的是,F(xiàn)PGA 原型不是 RTL 模擬器。如果我們的目的是編寫一些 RTL,然后盡快在 FPGA 中實(shí)施,以查看它是否能工作,那么我們應(yīng)該重新思考所忽略的東西。模擬器有兩個(gè)基本組件,可以把它們考慮成引擎和儀表盤。引擎的作用是激勵(lì)模型,記錄結(jié)果,而儀表盤的作用則是幫助我們檢驗(yàn)這些結(jié)果。我們可以以小幅增量運(yùn)行模擬器,然后通過我們的儀表盤進(jìn)行調(diào)整;我們可能采用某些非常復(fù)雜的激勵(lì)方式,這基本上都是仿真器的工作?;?FPGA 的原型能夠完成相同的工作嗎?當(dāng)然不能。

FPGA 對(duì)運(yùn)行 RTL“模型”來說確實(shí)是一種速度更快的引擎,但當(dāng)我們開始設(shè)置該模型的時(shí)候,速度優(yōu)勢(shì)就會(huì)大打折扣。此外,模擬器的儀表盤部分能夠完整地控制激勵(lì)和掌握結(jié)果。我們應(yīng)該思考儀表化 FPGA 的方法,深入了解設(shè)計(jì)的功能性,但即便是在這方面最完善的設(shè)計(jì),也只能提供一部分真正能用于 RTL 模擬器儀表盤的信息。因此,該模擬器是用于重復(fù)編寫和評(píng)估 RTL代碼更加理想的環(huán)境,因此我們應(yīng)該等到模擬基本完成后,RTL 相當(dāng)成熟后才能將其交付給 FPGA 原型設(shè)計(jì)團(tuán)隊(duì)。

基于 FPGA 原型不是 ESL

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

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

持續(xù)性是關(guān)鍵

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

采用 FPGA 進(jìn)行原型設(shè)計(jì)的原因是什么呢?

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

對(duì)于硬件團(tuán)隊(duì)而言,驗(yàn)證工具的速度可對(duì)驗(yàn)證吞吐量產(chǎn)生巨大的影響。在大多數(shù) SoC 開發(fā)中,有必要隨項(xiàng)目的成熟運(yùn)行多次仿真,重復(fù)回歸測(cè)試。仿真器和模擬器是用于這類 RTL 驗(yàn)證的最常用平臺(tái)。然而即便使用基于 TLM的模擬與建模,由于長(zhǎng)時(shí)間的運(yùn)行,RTL 內(nèi)部或 RTL 與外部激勵(lì)物之間的部分互動(dòng)仍然不能在仿真或模擬中重新創(chuàng)建。因此一些團(tuán)隊(duì)采用基于 FPGA 原型為這種硬件測(cè)試提供具有更高性能的平臺(tái)。例如,我們可以在近乎實(shí)時(shí)的條件下運(yùn)行整個(gè)操作系統(tǒng)的引導(dǎo)程序,節(jié)省需要花上數(shù)天才能達(dá)到相同目的的模擬時(shí)間。

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

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

基于 FPGA原型有助于盡早地將軟件引入具有高周期精度的高速硬件模型。SoC 團(tuán)隊(duì)經(jīng)常告訴我們,F(xiàn)PGA 原型設(shè)計(jì)的最大優(yōu)勢(shì)就是在第一個(gè)器件上市時(shí),系統(tǒng)和軟件都已準(zhǔn)備就緒,當(dāng)天便可運(yùn)行。


上一頁 1 2 下一頁

關(guān)鍵詞: FPGA 原型設(shè)計(jì)

評(píng)論


相關(guān)推薦

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

關(guān)閉