驗證FPGA設計:模擬,仿真,還是碰運氣?
FPGA的缺點(diǎn)
最明顯的突出的問(wèn)題是可見(jiàn)性。理論上說(shuō), FPGA中每個(gè)邏輯元件都可以通過(guò)芯片的調試接口觀(guān)察。但是,廠(chǎng)商估計只有一半的FPGA用戶(hù)在設計中加入了調試接口并將其用于驗證??紤]到內置調試口提供的功能是如此強大,這非常令人吃驚。Xilinx公司的Patel認為,隨著(zhù)FPGA規模變大,人們會(huì )更普遍地使用調試接口。
因此,在多數情況下,如果想觀(guān)測設計中的某個(gè)信號,就必須先把它引出到一個(gè)引腳,然后用邏輯分析儀分析它。由于邏輯分析儀的特點(diǎn),可能還需要引出大量其他信號,如內部時(shí)鐘。這樣做就會(huì )有很多額外的工作,另外,如果要觀(guān)測的信號是一個(gè)與I/O塊相隔甚遠的快信號,可能還必須降低FPGA上的時(shí)鐘頻率。因此,一些經(jīng)理認為:在原始驗證方案中包括對FPGA信號可觀(guān)性的要求是很重要的。
訪(fǎng)問(wèn)信號所需的附加設計工作是該方法的一個(gè)缺點(diǎn)。芯片內部節點(diǎn)的激勵和觀(guān)測還涉及另一個(gè)問(wèn)題,那就是需要修改設計、重建和重新綜合測試,因此有可能導致設計和測試部分不能清楚地分割開(kāi)。如果不能仔細地將調試代碼和設計代碼分開(kāi)和切實(shí)做好版本控制,就可能無(wú)法跟蹤這些修改,有可能發(fā)生類(lèi)似于外科醫生把手術(shù)工具留在患者體內的情況。
另外,建立測試的時(shí)間也是個(gè)弱項。規模較大的設計中,綜合時(shí)間并不短,而插入測試設備、重建、重新綜合和重新繪圖的時(shí)間也會(huì )是個(gè)重要因素,可以影響到是否進(jìn)行某個(gè)試驗。這里采用增量綜合(Incremental-synthesis)工具會(huì )有所幫助,但是對于有2千萬(wàn)個(gè)門(mén)的設計,構造和合成過(guò)程可能需要一晚上的時(shí)間。
最后,將測試平臺從模擬環(huán)境轉向FPGA環(huán)境也有問(wèn)題。此時(shí),激勵模塊需要有電路,而非一組模擬命令。觀(guān)測某個(gè)節點(diǎn)需要的不僅是命令,還需要有電路和物理儀器。盡管基于斷言的驗證被越來(lái)越多的人接受,但似乎還沒(méi)人開(kāi)發(fā)出哪種方法可以系統性地將斷言從模擬環(huán)境移植到FPGA。 “現在還沒(méi)有可以自動(dòng)將斷言移植到FPGA的解決方案,但是我們收到的對該功能的要求在不斷增加,” Simpson說(shuō)。
覆蓋尺度也是一個(gè)弱項。雖然對于模擬環(huán)境正在開(kāi)發(fā)完善的工具來(lái)測評驗證覆蓋情況和來(lái)自不同類(lèi)工具的熔斷測量值(fuse measurement),但在FPGA領(lǐng)域,幾乎就沒(méi)什么覆蓋的概念,也沒(méi)有現存的工具可用于測評測試設計的覆蓋情況并將數據報告給中心覆蓋收斂(coverage-closure)系統。
評論