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