新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 如何成功地完成ASIC原型驗證

        如何成功地完成ASIC原型驗證

        ——
        作者: 時間:2007-07-19 來源:嵌入式系統設計 收藏

          原型驗證---用軟件的方法來發現硬件的問題

          在芯片tap-out之前,通常都會計算一下風險,例如存在一些的嚴重錯誤可能性。通常要某個人簽字來確認是否去生產。這是一個艱難的決定。的產品NRE的費用持續上升。一次失敗的流片將會推遲數個月的上市時間。誰愿意承擔簽字的責任呢? 一些BUG通過仿真和Emulation是抓不到的。傳統的驗證方法認為設計的功能符合功能定義就是對的。 但功能定義到底對不對呢?唯一的辦法就是建立一個真實的硬件:原型。

          基于FPGA的原型 --- 一個虛擬的真實環境

          在密度,速度以及其他方面與的相似性使得FPGA成為原型驗證的最佳選擇。通常最擔心的是不但不會加速設計過程,反而會延長設計周期。因為建立一個原型驗證系統會耗費時間,額外的資源和需要FPGA設計的知識。因為FPGA的設計容量比ASIC小,設計通常會被劃分到幾塊FPGA中。最困難的是決定使用幾顆FPGA和他們之間的互連線如何規劃。在規劃過程中,劃分方案一般會被多次修改。模塊會被在FPGA之間移來移去,相應地FPGA之間的互連關系也要隨之改變。一些象IP和存儲器之類的模塊需要在FPGA外面額外增加硬件。原型驗證系統必須有足夠的靈活性來解決這些以及更多的問題。

          另一個問題是如何把ASIC的代碼應用到FPGA上。把設計劃分到多顆FPGA中需要改動RTL代碼。劃分也可能導致FPGA之間有很寬的總線,使得FPGA之間的互連線數量不夠。ASIC和FPGA的結構不同可能導致嚴重的設計問題。IP模塊,DesignWare元件,以及其他的ASIC風格的代碼例如門控時鐘必須被轉換到FPGA上。Synplicity的Certify解決方案正好可以解決這些問題。Certify幫助設計者把ASIC的RTL代碼用多顆FPGA實現。

          布局的考慮

          解決了邏輯實現的問題,還要考慮物理實現的問題。必須要設計一個或者幾個電路板,這也不是簡單的事情。設計高速的FPGA電路板的布局會帶來很多問題,需要很專業的知識來解決。串擾、反射、傳輸損耗、地彈噪聲等很多因素會影響信號完整性。高速PCB板的設計不僅需要數字電路的特性,也要考慮模擬特性的影響。

          選擇現有的成熟產品還是選擇自己動手做

          當你需要最靈活的、易于使用的、并且能重復利用的原型驗證系統時,你要自己設計嗎? 如果要考慮到時間和金錢的因素,那么決定是顯而易見的。要建立一個原型驗證系統,投資現有的成熟產品是一個聰明的選擇。HAPS是專門為ASIC原型驗證而設計的高速模塊化電路板系統。他是商業化的產品,可配置性能使用在幾乎可以適合所有的應用。配合Synplicity公司的Certify,ASIC的代碼可以直接被綜合并且映射到HAPS的FPGA上而不用做大的改動。

          應用實例

          Philips Semiconductor使用HAPS和Certify建立了驗證系統來驗證他們的2.5G/3G 多媒體基帶處理器。驗證當中他們發現了一些嚴重的但在仿真時卻沒有發現的RTL BUG。原型驗證也被用來做軟件的驗證。這個設計除了存貯器外有200萬的ASIC門。他們使用了帶有四顆Virtex-II 8000 (1517腳封裝) FPGA的HAPS母板。存儲器利用外面的SDRAM子板。最大的挑戰來自于劃分,平衡各個FPGA的利用率,最佳的劃分方案中兩個FPGA之間有3000根互連信號。由于信號的數量超過了FPGA的I/O的數量,這造成了一些麻煩,解決的方法是使用了Certify Pin Multiplexing (CPM)。

          Mihai Munteanu,瑞士蘇黎世的開發工程師,參與了這項工作。他給開始做原型驗證的人的建議是:分析ASIC的設計,要考慮到容量、互連線、時鐘、存儲器的需要。檢查所有的RTL代碼,嘗試綜合到FPGA中。要注意到ASIC的某些特性用FPGA實現很困難。嘗試

          用最少數目的FPGA來使流程簡化。使用增量的方法,但是要注意到減少設計后一些問題可能不會冒出來。另外建議使用最新的最好的工具。


         

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 东山县| 清原| 灵武市| 芮城县| 堆龙德庆县| 炉霍县| 彭山县| 平安县| 北宁市| 绍兴市| 泗阳县| 永兴县| 黄冈市| 婺源县| 长宁区| 双辽市| 阿合奇县| 霍城县| 禄丰县| 茶陵县| 新沂市| 巍山| 随州市| 法库县| 育儿| 高青县| 财经| 博兴县| 定日县| 兖州市| 志丹县| 靖江市| 大竹县| 称多县| 富锦市| 新邵县| 郁南县| 潞西市| 特克斯县| 望都县| 阿拉善盟|