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