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