驗(yàn)證FPGA設(shè)計(jì):模擬,仿真,還是碰運(yùn)氣?
對(duì)電路內(nèi)方法的討論
FPGA 內(nèi)驗(yàn)證方法的優(yōu)劣與模擬正好相反。首先, 顯然FPGA 很快。人們經(jīng)??梢砸匀龠\(yùn)行設(shè)計(jì)。不過(guò),在某些情況下,這樣做就意味著時(shí)序收斂問(wèn)題會(huì)較多,超乎設(shè)計(jì)早期預(yù)期的程度。另外,與模擬不同,將多個(gè)模塊綜合到設(shè)計(jì)中時(shí),FPGA 并不會(huì)降速。這樣就可以測(cè)試整個(gè)設(shè)計(jì),而非單個(gè)塊,并且可以以大量的實(shí)際數(shù)據(jù)集來(lái)運(yùn)行測(cè)試,而不是采用精心編制的測(cè)試用例。
由于FPGA速度較快,而且它的I/O部件就是實(shí)際應(yīng)用所需要的I/O部件,所以也可以采用系統(tǒng)中測(cè)試設(shè)計(jì):可以在裝入目標(biāo)系統(tǒng)的FPGA開(kāi)發(fā)板上測(cè)試,或者,如果目標(biāo)PCB(印刷電路板)可以用的話,就在目標(biāo)PCB上測(cè)試。這樣的測(cè)試可以消除測(cè)試用例是否能夠如實(shí)反映設(shè)計(jì)工作環(huán)境的疑慮。另外,在實(shí)際使用的電路板上測(cè)試設(shè)計(jì)可以暴露出I/O方面的問(wèn)題——例如電氣問(wèn)題、信號(hào)完整性問(wèn)題,或是在高速串行協(xié)議下不兼容問(wèn)題。這些問(wèn)題用其他方法幾乎無(wú)法檢測(cè),而系統(tǒng)內(nèi)測(cè)試則會(huì)形成一個(gè)軟件測(cè)試平臺(tái),帶來(lái)額外的好處。
這些優(yōu)點(diǎn)都是系統(tǒng)級(jí)驗(yàn)證方面的。但Altera公司的Simpson指出:在芯片內(nèi)測(cè)試塊也有一些有用的優(yōu)點(diǎn)?!耙坏⒛硞€(gè)塊裝入FPGA,就可以使用嵌入式處理器核(如Nios)來(lái)輔助調(diào)試過(guò)程,” Simpson說(shuō)。“例如,處理器核可以使數(shù)據(jù)進(jìn)出芯片,可以控制測(cè)試時(shí)序。這樣,在塊周邊電路還沒(méi)做好的時(shí)候就可以單獨(dú)測(cè)試某個(gè)塊。”
“在我們的自有IP(知識(shí)產(chǎn)權(quán))開(kāi)發(fā)部門,我們編寫了在Nios核上運(yùn)行的事務(wù)處理器,以此來(lái)生成偽隨機(jī)測(cè)試,” Simpson 接著說(shuō)?!皳?jù)我所知,這樣的做法在用戶中還不普遍,但它非常有價(jià)值?!?
既然FPGA有這么多優(yōu)點(diǎn),您可能會(huì)覺(jué)得疑惑:直接將編好的核裝入FPGA、為它編寫一個(gè)試件(test fixture),然后開(kāi)始測(cè)試 ,這樣做會(huì)有什么問(wèn)題呢?這個(gè)問(wèn)題的答案在于FPGA的一些缺點(diǎn)。
評(píng)論