如何成功地完成ASIC原型驗(yàn)證
有很多原因使我們?cè)谛酒琓APOUT之前做原型驗(yàn)證,最終的目的都是盡可能高性?xún)r(jià)比的使芯片盡快推向市場(chǎng)。原型驗(yàn)證可以使我們找出其它的驗(yàn)證方法找不出的錯(cuò)誤?;谠偷乃俣冉咏诂F(xiàn)實(shí)速度,原型驗(yàn)證可以使我們盡早地來(lái)測(cè)試應(yīng)用軟件。如今隨著大容量的FPGA的出現(xiàn),建立一個(gè)高性?xún)r(jià)比的原型驗(yàn)證系統(tǒng)要比其他的方法更加便宜和快速。
原型驗(yàn)證---用軟件的方法來(lái)發(fā)現(xiàn)硬件的問(wèn)題
在芯片tap-out之前,通常都會(huì)計(jì)算一下風(fēng)險(xiǎn),例如存在一些的嚴(yán)重錯(cuò)誤可能性。通常要某個(gè)人簽字來(lái)確認(rèn)是否去生產(chǎn)。這是一個(gè)艱難的決定。ASIC的產(chǎn)品 NRE的費(fèi)用持續(xù)上升。一次失敗的ASIC流片將會(huì)推遲數(shù)個(gè)月的上市時(shí)間。誰(shuí)愿意承擔(dān)簽字的責(zé)任呢? 一些BUG通過(guò)仿真和Emulation是抓不到的。傳統(tǒng)的驗(yàn)證方法認(rèn)為設(shè)計(jì)的功能符合功能定義就是對(duì)的。 但功能定義到底對(duì)不對(duì)呢?唯一的辦法就是建立一個(gè)真實(shí)的硬件:原型。
基于FPGA的原型 --- 一個(gè)虛擬的真實(shí)環(huán)境
在密度,速度以及其他方面與ASIC的相似性使得FPGA成為原型驗(yàn)證的最佳選擇。通常最擔(dān)心的是不但不會(huì)加速設(shè)計(jì)過(guò)程,反而會(huì)延長(zhǎng)設(shè)計(jì)周期。因?yàn)榻⒁粋€(gè) 原型驗(yàn)證系統(tǒng)會(huì)耗費(fèi)時(shí)間,額外的資源和需要FPGA設(shè)計(jì)的知識(shí)。因?yàn)镕PGA的設(shè)計(jì)容量比ASIC小,設(shè)計(jì)通常會(huì)被劃分到幾塊FPGA中。最困難的是決定 使用幾顆FPGA和他們之間的互連線(xiàn)如何規(guī)劃。在規(guī)劃過(guò)程中,劃分方案一般會(huì)被多次修改。模塊會(huì)被在FPGA之間移來(lái)移去,相應(yīng)地FPGA之間的互連關(guān)系 也要隨之改變。一些象IP和存儲(chǔ)器之類(lèi)的模塊需要在FPGA外面額外增加硬件。原型驗(yàn)證系統(tǒng)必須有足夠的靈活性來(lái)解決這些以及更多的問(wèn)題。
另一個(gè)問(wèn)題是如何把ASIC的代碼應(yīng)用到FPGA上。把設(shè)計(jì)劃分到多顆FPGA中需要改動(dòng)RTL代碼。劃分也可能導(dǎo)致FPGA之間有很寬的總線(xiàn),使得 FPGA之間的互連線(xiàn)數(shù)量不夠。ASIC和FPGA的結(jié)構(gòu)不同可能導(dǎo)致嚴(yán)重的設(shè)計(jì)問(wèn)題。IP模塊,DesignWare元件,以及其他的ASIC風(fēng)格的代 碼例如門(mén)控時(shí)鐘必須被轉(zhuǎn)換到FPGA上。Synplicity的Certify解決方案正好可以解決這些問(wèn)題。Certify幫助設(shè)計(jì)者把ASIC的 RTL代碼用多顆FPGA實(shí)現(xiàn)。
布局的考慮
解決了邏輯實(shí)現(xiàn)的問(wèn)題,還要考慮物理 實(shí)現(xiàn)的問(wèn)題。必須要設(shè)計(jì)一個(gè)或者幾個(gè)電路板,這也不是簡(jiǎn)單的事情。設(shè)計(jì)高速的FPGA電路板的布局會(huì)帶來(lái)很多問(wèn)題,需要很專(zhuān)業(yè)的知識(shí)來(lái)解決。串?dāng)_、反射、 傳輸損耗、地彈噪聲等很多因素會(huì)影響信號(hào)完整性。高速PCB板的設(shè)計(jì)不僅需要數(shù)字電路的特性,也要考慮模擬特性的影響。
選擇現(xiàn)有的成熟產(chǎn)品還是選擇自己動(dòng)手做
當(dāng)你需要最靈活的、易于使用的、并且能重復(fù)利用的原型驗(yàn)證系統(tǒng)時(shí),你要自己設(shè)計(jì)嗎? 如果要考慮到時(shí)間和金錢(qián)的因素,那么決定是顯而易見(jiàn)的。要建立一個(gè)原型驗(yàn)證系統(tǒng),投資現(xiàn)有的成熟產(chǎn)品是一個(gè)聰明的選擇。HAPS是專(zhuān)門(mén)為ASIC原型驗(yàn)證而設(shè)計(jì)的高速模塊化電路板系統(tǒng)。他是商業(yè)化的產(chǎn)品,可配置性能使用在幾乎可以適合所有的應(yīng)用。配合Synplicity公司的Certify,ASIC的代碼可以直接被綜合并且映射到HAPS的FPGA上而不用做大的改動(dòng)。
應(yīng)用實(shí)例
Philips Semiconductor使用HAPS和Certify建立了驗(yàn)證系統(tǒng)來(lái)驗(yàn)證他們的2.5G/3G 多媒體基帶處理器。驗(yàn)證當(dāng)中他們發(fā)現(xiàn)了一些嚴(yán)重的但在仿真時(shí)卻沒(méi)有發(fā)現(xiàn)的RTL BUG。原型驗(yàn)證也被用來(lái)做軟件的驗(yàn)證。這個(gè)設(shè)計(jì)除了存貯器外有200萬(wàn)的ASIC門(mén)。他們使用了帶有四顆Virtex-II 8000 (1517腳封裝) FPGA的HAPS母板。存儲(chǔ)器利用外面的SDRAM子板。最大的挑戰(zhàn)來(lái)自于劃分,平衡各個(gè)FPGA的利用率,最佳的劃分方案中兩個(gè)FPGA之間有 3000根互連信號(hào)。由于信號(hào)的數(shù)量超過(guò)了FPGA的I/O的數(shù)量,這造成了一些麻煩,解決的方法是使用了Certify Pin Multiplexing (CPM)。
Mihai Munteanu,瑞士蘇黎世的開(kāi)發(fā)工程師,參與了這項(xiàng)工作。他給開(kāi)始做原型驗(yàn)證的人的建議是:分析ASIC的設(shè)計(jì),要考慮到容量、互連線(xiàn)、時(shí)鐘、存儲(chǔ)器 的需要。檢查所有的RTL代碼,嘗試綜合到FPGA中。要注意到ASIC的某些特性用FPGA實(shí)現(xiàn)很困難。嘗試用最少數(shù)目的FPGA來(lái)使流程簡(jiǎn)化。使用增量的方法,但是要注意到減少設(shè)計(jì)后一些問(wèn)題可能不會(huì)冒出來(lái)。另外建議使用最新的最好的工具。