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