什么是FPGA原型??
FPGA原型設(shè)計(jì)是一種成熟的技術(shù),用于通過(guò)將RTL移植到現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)來(lái)驗(yàn)證專(zhuān)門(mén)應(yīng)用的集成電路(ASIC),專(zhuān)用標(biāo)準(zhǔn)產(chǎn)品(ASSP)和片上系統(tǒng)(SoC)的功能和性能。?
由于硬件復(fù)雜性不斷增加,需要驗(yàn)證的相關(guān)軟件數(shù)量不斷增加,因此它今天的使用范圍更加廣泛。?
為什么公司使用FPGA原型??
FPGA已經(jīng)被用于驗(yàn)證相對(duì)成熟的RTL,因?yàn)樗鼈兛梢源硪粋€(gè)近乎精確的以高速運(yùn)行的設(shè)計(jì)的復(fù)制品。這些復(fù)制品通常也足夠便攜,可用于現(xiàn)場(chǎng)測(cè)試。在純硬件方面,由于FPGA供應(yīng)商盡快轉(zhuǎn)向最先進(jìn)的制造工藝節(jié)點(diǎn),F(xiàn)PGA原型設(shè)計(jì)變得更加簡(jiǎn)單和強(qiáng)大。??
由于該軟件通常占設(shè)計(jì)工作量的一半以上,所以SoC RTL的FPGA實(shí)現(xiàn)也可以用作軟件開(kāi)發(fā),硬件/軟件協(xié)同驗(yàn)證和軟件驗(yàn)證的基礎(chǔ) - 所有這些都在最終硅芯片可用之前完成。??
所有這些因素都有助于降低設(shè)計(jì)成本并縮短上市時(shí)間,降低重新調(diào)整的風(fēng)險(xiǎn)。例如,已經(jīng)在FPGA原型上得到廣泛驗(yàn)證的軟件應(yīng)該更容易與來(lái)自晶圓廠的第一塊硅相結(jié)合。FPGA原型也可用于設(shè)置任何可能的硅后調(diào)試路徑。??
一個(gè)可用的FPGA原型也可以用于產(chǎn)品演示和現(xiàn)場(chǎng)試驗(yàn)。? ?
還有哪些其他原型方法可用嗎??
FPGA原型不是SoC或ASIC開(kāi)發(fā)人員唯一的原型設(shè)計(jì)選項(xiàng)。??
虛擬原型可在電子系統(tǒng)級(jí)(ESL)上使用。它可用于定義和驗(yàn)證設(shè)計(jì)的某些部分,如處理器架構(gòu),電源管理方案和一些軟件代碼。? ?
RTL仿真可以提供設(shè)計(jì)代碼工作方式的大量可視性,盡管速度遠(yuǎn)遠(yuǎn)低于真實(shí)設(shè)備的運(yùn)行速度。? ?
硬件模擬器是預(yù)封裝的原型FPGA陣列,可提供比仿真器更高的調(diào)試可視性和運(yùn)行速度。? ?
硬件加速器介于仿真和模擬之間,提供了每種仿真的一些優(yōu)點(diǎn)。?
這些方法不直接與FPGA原型競(jìng)爭(zhēng),因?yàn)榻裉斓脑O(shè)計(jì)通常非常復(fù)雜,工程團(tuán)隊(duì)會(huì)在設(shè)計(jì)流程的不同階段使用部分或全部。? ?
鑒于在等待第一顆硅片期間越來(lái)越多地使用FPGA作為開(kāi)發(fā)平臺(tái),隨著設(shè)計(jì)的RTL映射到FPGA原型時(shí),它通常會(huì)達(dá)到高級(jí)階段。?
FPGA原型設(shè)計(jì)的好處是什么??
性能?
FPGA通常建立在最新的制造流程上,以實(shí)現(xiàn)最高的密度和運(yùn)行速度。即使是采用主流工藝構(gòu)建的FPGA,也可以提供高門(mén)限等效計(jì)數(shù)(FPGA通常以可容納多少個(gè)標(biāo)準(zhǔn)查找表來(lái)衡量)。根據(jù)現(xiàn)成的主板廠商Polaris的說(shuō)法,兩款Xilinx的Virtex-7器件可以提供相當(dāng)于48M的門(mén)電路 - 足以承載目前近85%的SoC設(shè)計(jì)。?
??
超過(guò)最大FPGA功能的設(shè)計(jì)有時(shí)在多個(gè)FPGA上進(jìn)行原型設(shè)計(jì)。這使得將源RTL映射到FPGA原型環(huán)境變得更加困難,并且可能會(huì)降低原型的性能。?
成本?
FPGA是批量生產(chǎn)的芯片,具有競(jìng)爭(zhēng)力的價(jià)格。許多公司 - 特別是The Dini Group, S2C, Polaris Design Systems和Synopsys(HAPS) - 將它們集成到現(xiàn)成(OTS)原型板上,盡管一些公司更喜歡建立自己的原型印刷電路板(PCB) 。這個(gè)所謂的“構(gòu)建vs購(gòu)買(mǎi)”辯論將在下面進(jìn)一步討論。?
基礎(chǔ)設(shè)施?
兩家主要FPGA供應(yīng)商(原型設(shè)計(jì)市場(chǎng)領(lǐng)導(dǎo)者Xilinx及其競(jìng)爭(zhēng)對(duì)手Altera)都提供了廣泛的工具來(lái)支持他們的產(chǎn)品。他們還與主要的EDA供應(yīng)商建立了聯(lián)盟,這些供應(yīng)商為軟件套件提供了增強(qiáng)的FPGA原型設(shè)計(jì)。?
Cadence Design Systems提供Allegro FPGA系統(tǒng)規(guī)劃器。Mentor Graphics將其Precision Precision工具與Veridae Systems提供的Certus和Corus驗(yàn)證和調(diào)試工具聯(lián)系起來(lái)。Synopsys提供OTS板卡以及Synplify Pro和Premier綜合工具(在2012年4月發(fā)布的版本中增加了重要功能)。??
其他OTS主板供應(yīng)商也與這些和其他工具供應(yīng)商以及他們自己的軟件有合作關(guān)系。?
??
?2011年,Synopsys和Xilinx發(fā)布了基于FPGA的原型方法手冊(cè)。這本由Synopsys出版社出版的書(shū)籍不可避免地通過(guò)兩家公司自己的產(chǎn)品解決了具體的案例研究項(xiàng)目,但是更一般地說(shuō),它旨在描述一種用可編程邏輯來(lái)構(gòu)建原型項(xiàng)目的供應(yīng)商中立方法。您可以閱讀本指南中討論的許多高層次問(wèn)題的示例章節(jié),或者閱讀本手冊(cè)的更多詳細(xì)信息,并在此處下載電子書(shū)版本。?
??
可移植性?
FPGA板可以在與最終SoC相同的嘈雜環(huán)境中進(jìn)行測(cè)試。這對(duì)于打算用于便攜式消費(fèi)設(shè)備以及工業(yè),通信基礎(chǔ)設(shè)施,醫(yī)療和軍事/航空航天市場(chǎng)的產(chǎn)品有益。?
??
可用性?
FPGA原型的成本相對(duì)較低意味著公司通??梢詷?gòu)建其中的幾個(gè),這加速了硬件驗(yàn)證,軟件開(kāi)發(fā),硬件/軟件協(xié)同驗(yàn)證和軟件驗(yàn)證。每個(gè)團(tuán)隊(duì)都可以有自己的原型,可能有幾個(gè)。?
??
FPGA原型設(shè)計(jì)面臨的挑戰(zhàn)是什么??
FPGA原型設(shè)計(jì)面臨技術(shù)和商業(yè)挑戰(zhàn)。?
技術(shù)挑戰(zhàn)?
分區(qū)?
大型設(shè)計(jì)可能需要在多個(gè)FPGA之間進(jìn)行分離(分區(qū))以實(shí)現(xiàn)所需的門(mén)控容量。這項(xiàng)任務(wù)通常被認(rèn)為是FPGA原型設(shè)計(jì)的最大挑戰(zhàn)。?
分區(qū)包括估計(jì)持有該設(shè)計(jì)所需的FPGA數(shù)量,以及購(gòu)買(mǎi)OTS板卡(可提供各種配置)或者構(gòu)建一個(gè)用于容納大量FPGA的OTS板卡。通過(guò)將設(shè)計(jì)中的每個(gè)主要功能塊分配給一個(gè)器件,或者根據(jù)結(jié)果預(yù)先綜合設(shè)計(jì)和工作,您可以估算要使用多少個(gè)FPGA。您還可以利用由硅和OTS主板供應(yīng)商提供的標(biāo)準(zhǔn)第三方IP模塊,為您的設(shè)計(jì)中使用的每個(gè)模塊分配一個(gè)FPGA。同樣,您需要決定哪些配件,如子板,您將需要:這些配件的“經(jīng)過(guò)驗(yàn)證”版本。?
分區(qū)過(guò)程本身很可能是一個(gè)棘手的迭代過(guò)程,涉及將設(shè)計(jì)映射到設(shè)備的眾多判斷調(diào)用,以及從RTL或軟件中的實(shí)際錯(cuò)誤中過(guò)濾出并糾正映射錯(cuò)誤。每個(gè)FPGA的利用率是最優(yōu)的??jī)?nèi)存要求如何?那么I / O和互連呢??
手動(dòng)干預(yù)?
FPGA原型設(shè)計(jì)可能需要幾種類(lèi)型的手動(dòng)干預(yù)。?
由于原始設(shè)計(jì)RTL被轉(zhuǎn)換為FPGA綜合和布局工具所需的硬件描述語(yǔ)言(HDL),因此即使工具已經(jīng)實(shí)現(xiàn)了大部分翻譯的自動(dòng)化,也可能需要一些手動(dòng)編碼才能使原型工作。很可能起源于設(shè)計(jì)的工程師不熟悉FPGA的HDL編碼風(fēng)格。因此這可能是一個(gè)漫長(zhǎng)而容易出錯(cuò)的過(guò)程。? ?
映射的各個(gè)方面都面臨著挑戰(zhàn)。FPGA上的時(shí)鐘樹(shù)路由(特別是原始設(shè)計(jì)具有門(mén)控時(shí)鐘的地方)非常困難。如果允許關(guān)鍵路徑通過(guò)緩慢的芯片到芯片到芯片路徑運(yùn)行,原型性能將會(huì)受到影響。原創(chuàng)中的內(nèi)存和加密塊也會(huì)帶來(lái)重大困難。? ?
對(duì)于設(shè)計(jì)的許多方面,一對(duì)一映射是不可能的。確保您有足夠的資源和專(zhuān)業(yè)知識(shí)來(lái)處理過(guò)渡中較為困難的部分 - 也可能是您設(shè)計(jì)中最敏感的部分,因?yàn)樗鼈兙哂胁町愋浴? ?
調(diào)試可見(jiàn)性?
上述兩個(gè)挑戰(zhàn)所代表的工作量說(shuō)明了為什么FPGA原型設(shè)計(jì)最好采用成熟的RTL代碼來(lái)提供,而這種代碼幾乎沒(méi)有什么意外。確保調(diào)試ram的可見(jiàn)性成為難題。? ?
從第一個(gè)單FPGA原型開(kāi)始就有足夠的設(shè)計(jì)可視性來(lái)進(jìn)行有效的調(diào)試存在一個(gè)問(wèn)題??捎玫目梢?jiàn)性往往局限于單個(gè)FPGA,這使得跨多個(gè)FPGA映射的設(shè)計(jì)使調(diào)試可見(jiàn)性變得更加困難。? ?
編譯時(shí)間?
從歷史上看,工程師們編譯了一個(gè)FPGA原型,直到錯(cuò)誤停止了這個(gè)過(guò)程。他們會(huì)修復(fù)這個(gè)錯(cuò)誤,然后從頭開(kāi)始重新編譯。這里的潛在延誤很明顯。在Synplify Premier的最新版本中,Synopsys已經(jīng)加入了“繼續(xù)出錯(cuò)”功能,旨在緩解這個(gè)問(wèn)題。編譯將不會(huì)停止,并會(huì)在最后生成一個(gè)整理錯(cuò)誤列表。(這不像RTL仿真,在這種仿真中,您可能會(huì)遇到錯(cuò)誤,請(qǐng)修復(fù)并從此處繼續(xù)。)???
商業(yè)挑戰(zhàn)?
時(shí)間對(duì)原型?
一些FPGA原型在他們?cè)緫?yīng)該進(jìn)行原型設(shè)計(jì)的第一塊硅片抵達(dá)時(shí)未完成。這是生活中的事實(shí)。?
設(shè)計(jì)經(jīng)理?yè)?dān)心將重要的工程資源投入到一個(gè)有失敗風(fēng)險(xiǎn)的原型項(xiàng)目中?,F(xiàn)實(shí)情況是,大多數(shù)失敗是在原型開(kāi)始工作之前沒(méi)有進(jìn)行徹底的風(fēng)險(xiǎn)評(píng)估的結(jié)果。什么是適當(dāng)?shù)馁Y源,它們是可用的(內(nèi)部還是外部)?正在采用哪種方法(有幾種可用并在下面討論)?? ?
FPGA原型設(shè)計(jì)過(guò)程變得更加自動(dòng)化,但假設(shè)設(shè)計(jì)團(tuán)隊(duì)不需要進(jìn)行任何手動(dòng)干預(yù),除了涉及修復(fù)令人滿意的原型所發(fā)現(xiàn)的錯(cuò)誤之外的其他手動(dòng)干預(yù)。相反,在可用時(shí)間內(nèi)對(duì)所需內(nèi)容進(jìn)行研究和保守估計(jì)。?
建設(shè)vs購(gòu)買(mǎi)?
關(guān)于FPGA原型設(shè)計(jì)最激烈的辯論之一是您是否應(yīng)該自己購(gòu)買(mǎi)FPGA并構(gòu)建PCB,或購(gòu)買(mǎi)OTS板并根據(jù)您的要求量身定制。答案是,“這取決于項(xiàng)目?!? ?
爭(zhēng)論的“構(gòu)建”方面表示OTS板卡太不靈活,無(wú)法應(yīng)對(duì)日益復(fù)雜的項(xiàng)目日新月異的需求。它繼續(xù)說(shuō),盡管開(kāi)發(fā)自己的PCB確實(shí)花費(fèi)了大量的時(shí)間和精力,但與支付可能無(wú)法滿足您的要求的OTS等效品相比,有一些工具可以以更具成本效益的方式來(lái)協(xié)助此過(guò)程。論證的“構(gòu)建”一面也指出了OTS板卡的總線寬度和工作頻率有限。? ?
爭(zhēng)論的“購(gòu)買(mǎi)”方面表明,關(guān)于不靈活的說(shuō)法被夸大了,構(gòu)建先進(jìn)FPGA原型所需的PCBs會(huì)進(jìn)一步增加設(shè)計(jì)過(guò)程的復(fù)雜性。它還表示,構(gòu)建自己的板卡可能會(huì)影響到時(shí)間原型,甚至可能會(huì)縮短上市時(shí)間。此外,OTS板在其上的芯片和互連,其他本地特征和附件的可用性(如子板)連接到與最終硅芯片可能連接的外部系統(tǒng)方面“已證實(shí)”。'購(gòu)買(mǎi)'支持者也指出,電路板也被設(shè)計(jì)為與當(dāng)今FPGA的性能相匹配。?
那么,它值得嗎??
FPGA原型設(shè)計(jì)是一個(gè)有價(jià)值的策略,特別是對(duì)于嵌入式軟件內(nèi)容高的項(xiàng)目,可以滿足對(duì)時(shí)間敏感或要求很高的市場(chǎng)的需求。??
最近的一項(xiàng)調(diào)查發(fā)現(xiàn),一半的嵌入式軟件項(xiàng)目錯(cuò)過(guò)了最后期限,其中44%未達(dá)到最初設(shè)想的功能。如果沒(méi)有其他,F(xiàn)PGA原型使軟件團(tuán)隊(duì)能夠在最終的系統(tǒng)集成中盡早開(kāi)始工作。? ?
FPGA原型提供了執(zhí)行全面的硬件 - 軟件協(xié)同驗(yàn)證的最有效方法,特別是在降低堆棧的關(guān)鍵階段,以及在與最終芯片結(jié)合的軟件代碼之前的最終驗(yàn)證。?
是否采用FPGA原型的問(wèn)題很大程度上取決于您的團(tuán)隊(duì)是否可以平衡執(zhí)行復(fù)雜且通常非常困難的任務(wù)所需的風(fēng)險(xiǎn)和資源。?
評(píng)論
查看更多