驗證FPGA設計:模擬,仿真,還是碰運氣?
對ASIC開發組的觀察
因此,簡言之,每種方法都有優缺點。根據這些信息,有經驗的ASIC設計組(即經常在其驗證流程中采用FPGA者)是如何在模擬測試和基于FPGA的測試間做出平衡的呢?
視頻處理器廠商Ambarella有一個例子來回答這個問題。執行副總裁Didier LeGall 說,“多數情況下,我們根本就不使用FPGA 仿真。根據我們的經驗,必須得有非常成熟的RTL仿真才會有用。但是,目前流程階段,將設計輸入 FPGA和建立測試平臺(的過程)是一件事倍功半的事。”
但是,實際應用情況可能會使LeGall 的看法有所調整。Ambarella 公司的SOC (片上系統) 用于以高幀速率處理高清視頻和10M像素靜止圖像,需要采用非常快的內部時鐘和復雜的算法。但是,LeGall 在對FPGA 仿真做出評論后,又對整個驗證過程的目標提出了一個非常有趣的看法。“新推出IC成功的關鍵不在于完美的驗證工作,” LeGal說。“而在于軟件”:也就是說,要知道設計中哪部分比較容易出問題,并且在開始,而不是事后,就做好軟件解決計劃。這種策略下,驗證工程師經過廣泛的基于FPGA的測試所獲得的很多信息的確會變得比較沒用。
LSI Corp的存儲元件部門提出了另一個觀點。該部門的副總裁和總經理Bill Wuertz敘述了他們是如何做SCSI (小型計算機系統接口)和SAS (串行連接)控制器的。
Wuertz 說LSI采用了幾乎是并行的過程,一個驗證小組進行模擬實現一些目的,而另一組則采用FPGA實現另外一些目的。“在設計早期,我們建立一個稱為試驗RTL(trial RTL)的步驟,” Wuertz 說。“我們要知道RTL基本工作正常、各個塊互相已連接好,這是第一個點。在此階段,驗證工作分為兩個方向。模擬小組編寫他們的工具所用的設計,并繼續對單個的塊進行模擬。另一個組,即系統工程組,則通過綜合RTL得到內部開發FPGA 版——我們現在正在設計第五代板卡——然后開始在系統級進行徹底的壓力測試。”
如Wuertz所述,這兩個組具有不同的工作目的。模擬組要努力確保電路正確。系統組通常不考慮電路,但要確保芯片在變化異常大和非常復雜的存儲網絡環境下可以工作。Wuertz 說FPGA 原型會與一屋子的磁盤和磁帶驅動器相連運行幾天的測試。“這些測試已經過了20多年的發展,”他說。“我們知道,可能需要對不同磁盤驅動器組合進行很長時間的測試后才可以產生暴露設計問題的時間匹配異常情況。”
LSI 已開發了自有的將兩種環境聯系起來的內部工具。例如,通過這些工具,系統組可以捕捉到導致故障的跟蹤數據,并將此數據轉換為模擬組可用的激勵文件。反過來說,模擬組可以根據它在設計中所發現的危險,給系統組發出提醒。在兩個工作于不同環境的驗證組間建立聯系是LSI公司兩方向測試方法的關鍵。在整個過程中,兩個組會交換數據,而且,最后設計晶粒需要兩個組的結論。
評論