智能調(diào)試與綜合技術(shù)隔離FPGA設計中的錯誤淺析
如果您的FPGA設計無法綜合或者沒能按預期在開發(fā)板上正常工作,原因往往不明,要想在數(shù)以千計的RTL和約束源文件中找出故障根源相當困難,而且很多這些文件還可能是其他設計人員編寫的。考慮到FPGA設計迭代和運行時間的延長,設計人員應該在設計流程的早期階段就找出可能存在的諸多錯誤,并想方設法重點對設計在開發(fā)板上進行驗證。
本文引用地址:http://2s4d.com/article/226766.htm在特定條件下采用更智能的技術(shù)來隔離特定錯誤,找到問題電路的源頭并漸進式修復錯誤,這很重要。為了節(jié)省時間,您可以對時鐘、約束和模塊級接口進行初步設置檢查以確保符合設計規(guī)范,這樣就不必在綜合與布局布線(PR)時浪費大量時間。
Synopsys公司的Synplify Premier 和Synplify ProFPGA設計工具以及Identify RTLDebugger 等產(chǎn)品能幫助設計人員完成上述工作。這些工具的特性使得設計人員能快速隔離錯誤,有效縮短運行時間,并減少開發(fā)板啟動所需的迭代次數(shù)。
精確找到開發(fā)板上的問題
如果開發(fā)板出現(xiàn)明顯的功能性錯誤,要縮小查找問題根源的范圍可能會相當困難。為了進行設計調(diào)試,我們應當創(chuàng)建附加電路并保留某些節(jié)點,以便我們對設計運行時得到的數(shù)據(jù)進行探測、檢查和分析。下面我們就看看如何用板級調(diào)試軟件來查找錯誤。
按下列四步法并利用RTL調(diào)試器,您能精確查找問題,并對信號和關注的條件采樣,然后將觀察結(jié)果關聯(lián)至原始RTL,從而將問題鎖定在RTL規(guī)范或約束設置范圍內(nèi)。
第一步:指定探測。在RTL中明確要監(jiān)控哪些信號和條件。在此要聲明您所感興趣的觀察點(要觀察的信號或節(jié)點)和斷點(RTL控制流程聲明,如IF、THEN 和CASE 等)。
第二步:通過探測構(gòu)建設計。利用附加的監(jiān)控電路——即用于根據(jù)您的監(jiān)控要求捕捉并導出調(diào)試數(shù)據(jù)的智能內(nèi)部電路仿真器(IICE)——對FPGA設計進行綜合。
第三步:分析和調(diào)試。設計綜合完成之后,運行設計并用RTL調(diào)試器觀察數(shù)據(jù)。在開發(fā)板上運行測試時,觀察點和斷點共同觸發(fā)數(shù)據(jù)采樣,使您能在您所關注的非常明確的條件下觀察并調(diào)試特定節(jié)點的電路的行為。您可將觀察到的采樣數(shù)據(jù)寫入VCD 文件并將其關聯(lián)到RTL。
第四步:漸進性修復錯誤(incrementaLfix)。一旦找到了錯誤所在,就可以通過分級、漸進式流程在RTL或約束中漸進地進行修復。
評論