Vivado使用技巧(15):DRC設計規則檢查

FPGADesigner發表於2018-08-21

在I/O和時鐘規劃之後,需要驗證設計以確保其滿足設計需求。Vivado提供了兩種驗證途徑:DRCs用來檢查設計違反規則情況;SSN分析用來估計轉換噪聲等級。本文將介紹DRCs,本系列第16篇介紹了SSN分析。


執行DRCs

DRCs可以說是管腳規劃中最嚴苛的一個步驟,DRCs會使用一套設計檢查項(通常稱作rule deck),來檢查當前設計是否違反這套規則。本文將以執行DRCs檢查I/O埠和時鐘邏輯為例。

開啟某一階段的設計,點選Tools->Report->Report DRC,或在Flow Navigator中直接點選Report DRC,彈出如下視窗:
這裡寫圖片描述
Results name規定了顯示DRC結果的視窗名稱;Output file可以選中一個儲存DRC結果的檔案。Rule Decks中選擇用於DRCs的rule deck,一個rule deck便是一套設計規則。可以同時選擇多個rule deck,同一個規則也可以包含在多個rule deck中。

根據執行DRCs所處設計階段的不同(RTL設計、綜合後設計、實現後設計),可以選擇的Vivado提供的rule deck如下:

  • default:Xilinx推薦的預設規則檢查;
  • opt_checks:與邏輯優化相關的規則檢查;
  • placer_checks:與佈局相關的規則檢查;
  • router_checks:與佈線相關的規則檢查;
  • bitstream_checks:與bit流生成相關的規則檢查;
  • timing_checks:與時序約束相關的規則檢查;
  • incr_eco_checks:與增量ECO設計修改的有效性相關的規則檢查;
  • eco_checks:完成一個修改網表的ECO之後,與連通性和佈局相關的規則檢查。

選擇了rule deck之後,可以根據需要修改在Rules中使用的設計規則。執行DRCs的Tcl示例如下:

report_drc -ruledecks default -file C:/Data/DRC_rpt1.txt

如果不想使用Vivado提供的rule deck,可以建立一個使用者自定義的rule deck並新增到Rule Decks視窗中。該操作需要使用Tcl程式碼來完成,示例如下:


create_drc_ruledeck ruledeck_1
add_drc_checks -ruledeck ruledeck_1 [get_drc_checks {SYNTH-10 SYNTH-9 SYNTH-8 SYNTH-7 SYNTH-6 SYNTH-5 SYNTH-4}]

互動式DRCs

在I/O佈局過程中,Vivado IDE會執行一個基本的檢查以確保合理的引腳分配,但是隻有在實現後設計中的檢查才能確保最終引腳分配完全合法。管腳佈局時,互動式的I/O佈局例行檢查會報告常見的錯誤,這項功能可以在Package視窗或Device視窗的設定中通過Auto check I/O Placement核取方塊選擇是否開啟:
這裡寫圖片描述
互動式DRCs的檢查規則如下:

  • 阻止將高速收發器GTs的管腳賦值給噪聲敏感的管腳;
  • 避免I/O標準違反設計規則;
  • 確保I/O標準不會用於不支援它們的I/O Bank;
  • 確保Bank沒有不相容的Vcc埠賦值;
  • 確保需要Vref埠的Bank有可自由使用的Vref管腳;
  • 確保全域性時鐘和區域性時鐘有合適的賦值;
  • 確保差分I/O埠設定在合適的管腳上;
  • 確保輸出管腳不會佈局在僅支援輸入的管腳上/

Vivado預設開啟互動式DRCs功能(互動式指的是使用者每執行操作後都執行相關檢查),Xilinx也推薦始終開啟這個功能。


檢視DRC違規資訊

如果找到了違規資訊,會開啟DRC視窗,如下所示:
這裡寫圖片描述
違規資訊根據嚴重性分為4個等級,圖示顯示為不同的顏色:

  • Advisory:提供設計過程中的普通狀態和反饋;
  • Warning:約束和設定可能沒有按設計者意圖那樣實現,設計結果進行了一些優化;
  • Critical warning:某些使用者輸入和約束將不會應用或沒有遵守最佳做法(必須解決此類問題,否則會在生成bit流過程中升級為error);
  • Error:表明使設計結果不可用和沒有設計者干涉軟體無法自動解決的問題,會終止設計流程。

違規資訊所包含的內容一般比較長,可以單擊選中,在Violation Properties視窗中更方便地檢視資訊(如果屬性視窗沒有開啟,選中資訊右鍵選單中開啟):
這裡寫圖片描述
Details資訊中給出了具體描述和解決方案,供設計者參考是否要修改設計。有的資訊會包含一些藍色連結,單擊可以在其它視窗中交叉探測到產生違規的物件。


報告Methodology

在Vivado 2016.1之後的版本中,將部分DRC檢查組合為一個新功能Report Methodology中,該功能執行一些簡化的規則檢查來驗證設計(比如邏輯對映),遵從UltraFast設計方法。開啟某一階段設計後,在Flow Navigator中點選此功能:
這裡寫圖片描述
如果有設計違規會顯示在Methodology視窗,資訊檢視方式與DRC相同。最好的做法是在Elaborated Design階段就執行該功能,可以幫助設計者在早期發現設計問題,節約開發成本。

相關文章