縮短調試時間
實施潛在的RTL或約束故障解決方案可能需要好幾個小時才能看出結果。我們來看看如何利用分級“分治法”設計方法和“錯誤繼續(xù)”功能在單次綜合迭代中發(fā)現(xiàn)多個錯誤,從而減少迭代次數(shù)。
為縮短運行時間,模塊化流程必不可少。這種流程支持設計保存,能鎖定已經證明有效的設計部分。支持模塊化流程的工具能幫助您在進行綜合前創(chuàng)建RTL分區(qū),也就是編譯點。一些軟件還能幫助設計人員將有故障的設計部分變成黑盒子,徹底將該部分導出并作為獨立的設計子項目進行再加工。一旦解決問題,子項目還能夠以網表形式通過自下而上的流程或用作為RTL通過自上而下的流程整合回原設計,甚至還能綜合利用自上而下和自下而上兩種流程。
要集成和調試大型設計,應盡早在設計進程中發(fā)現(xiàn)錯誤的說明。舉例來說,“錯誤繼續(xù)”功能可提供涉及每個綜合通過信息的組合錯誤報告。“錯誤繼續(xù)”能容許非致命的非語法HDL編譯問題和某些映射錯誤,因此設計人員可在每次綜合迭代中分析并完成盡可能多的設計內容。為了在帶有 SynplifyPro/Premier GUI 的Synplify Premier 軟件中調用“錯誤繼續(xù)”功能,應啟用項目視圖左側的Continue-on-Error 選項。
在TCL中:set_option –continue_on_error 1
用屬性is_error_blackbox=1 標記故障模塊和帶接口錯誤的實例父模塊,如圖3 所示。
用TCL找到所有“故障實例”:
c_list [find -hier -inst * -filter
@is_error_blackbox==1]
用TCL列出所有“故障模塊”:
get_prop -prop inst_of [find -hier -inst
* -filter @is_error_blackbox==1]
要查看將被關入黑盒子或導出的故障模塊,請查找HDLAnalyst RTL視圖中的紅色塊(圖3)。
通過導出模塊隔離問題
您可將故障模塊作為完全獨立的綜合項目導出,以便專門對該模塊進行調試。導出過程會產生隔離的綜合項目,其中包含所有該模塊的源文件、語言標準和編譯庫,以及所含文件的目錄路徑和路徑順序,以達到對該模塊進行單獨綜合與調試的目的。如前一節(jié)所示,出現(xiàn)錯誤的模塊會自動在設計數(shù)據庫中標出錯誤屬性,并在設計原理圖中突出顯示,便于對該模塊進行查找和提取。
為了導出模塊及其所有相關源文件進行隔離調試,應首先在Synplify Pro/Premier 軟件GUI 中(圖4)的設計分級視圖或RTL視圖中選擇設計模塊或實例,然后點擊右鍵并在彈出菜單中選擇“Generate Dependent File List”。
將每個分級模塊的錯誤進行修復后,您可將其再集成到設計中,既可作為RTL在整個設計環(huán)境中重新綜合(自上而下的綜合流程),也可作為網表(自下而上的流程)進行綜合(見圖5)。
要滿足時序要求就不可避免地要用到設計分級,這可能會帶來挑戰(zhàn)。層級界限可能會限制性能,除非為設計的每個層級分區(qū)建立時序預算。使用RTL分區(qū)(也稱為手動鎖定編譯點)時,一些工具能自動設置時序預算。Synplify Pro/Premier 軟件還能提供自動編譯點,能創(chuàng)建自動分區(qū),比方說通過多處理加速運行速度。預算功能為每個RTL分區(qū)建立接口邏輯模型(ILM),這樣軟件就能知道如何滿足每個分區(qū)的時序目標。這樣,您可為每個編譯點指定一個約束文件,從而覆蓋手動鎖定編譯點自動時序預算。
Synopsy 近期進行的全球用戶調查發(fā)現(xiàn),59% 的設計人員認為“設計規(guī)范的正確性”是最重要的設計挑戰(zhàn)之一。這個挑戰(zhàn)會造成設計延期,最壞情況下可能導致設計失敗。設計工具必須能盡早捕捉到錯誤,并就設計工作提供更高的可視化,確保設計規(guī)范得到有效驗證和修復。這些工具還必須就提出的設計修復方案提供反饋途徑。
作者:Synopsys公司資深產品營銷經理Angela Sutton
?
評論