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