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