Vivado使用技巧(30):使用時序約束嚮導

FPGADesigner發表於2018-09-21

時序約束嚮導

開啟綜合設計或實現設計後,在Flow Navigator中點選Open Synthesized/Implemented Design目錄下的Constraints Wizard可以開啟時序約束嚮導(會要求選擇一個target約束檔案)。彈出如下視窗:
在這裡插入圖片描述
利用該向導可以快速地完成時序約束。時序約束嚮導會分析網表、時鐘網路的連線和已存在的時序約束,給出一些缺少的時序約束的建議。時序約束嚮導的前11頁按照3個目錄給出不同種類的時序約束,下表給出一個大致介紹:

時鐘
Primary clocks 通常指通過輸入埠進入設計的時鐘
Generated clocks 由主時鐘產生的時鐘,如MMCM/PLL輸出的時鐘
Forwarded clocks 定義在輸出埠上的內部時鐘
External feedback delays FPGA輸入和輸出埠之間的板級延時
輸入與輸出埠
Input delays 描述了輸入訊號與參考時鐘之間的相對相位
Output delays 描述了輸出訊號與參考時鐘之間的相對相位
Combinatorial delays 沒有經過任何時序單元,直接穿過FPGA的路徑
時鐘域交叉
Physically exclusive clock groups 指不會在設計中同時存在的物理互斥時鐘
Logically exclusive clock groups with no interaction 這部分時鐘在共享時鐘樹之外,彼此之間沒有邏輯路徑時,它們在邏輯上是互斥的。
Logically exclusive clock groups with interaction 這部分時鐘彼此之間有邏輯路徑時,只有限定在共享時鐘樹部分的時鐘在邏輯上才是互斥的。
Asynchronous clock domain crossings 指在不具有明確相位關係的兩個時鐘之間傳輸資料,稱為非同步時鐘域交叉

上面的每一步都可以根據約束嚮導的建議進行約束,如果執意不想約束該物件,取消勾選物件前的核取方塊即可。如果取消勾選了某條建議,則後續步驟中的一些缺少的時序約束不會被檢測出來。比如跳過了建立主時鐘的步驟,約束嚮導便不會識別出與此時鐘相關的時序約束。

最後是一個Summary介面,給出了前面建立的所有約束,可以點選檢視約束的詳細資訊,退出約束嚮導後在時序約束視窗中也可以看到新約束。點選Finish結束約束嚮導時,還可以勾選如下選項建立相應報告:

  • Create Timing Summary report:報告在新約束條件下的時序裕量,如果設定的週期或I/O延遲約束太過苛刻,會出現時序違背情況。
  • Create Check Timing report:識別出不恰當地或缺少的約束。
  • Create DRC Report using only Timing Checks:執行時序相關DRC檢查。

時序約束嚮導不會推薦會引進不安全的時序分析的約束,也不會修復當前將設計匯入記憶體時已經存在的不恰當約束。因此如果使用嚮導之後,執行時序檢查或DRC檢查時仍然存在一些時序問題,通常都是由源XDC檔案中已經存在的約束問題引起的,設計者需要自己解決這些問題,而不是試圖依靠約束嚮導來解決問題。


在嚮導中編輯約束

上文已經提到過,可以通過物件前的核取方塊來選擇是否建立該約束,該功能也可以通過選擇物件->右鍵->Create Constraint或Do Not Create Constraint實現。如下圖所示:
在這裡插入圖片描述
缺少的值顯示為紅色的undefined,如上圖中的Frequency和Period,雙擊可以設定值。如果希望同時編輯多個約束,則選中所有約束相同的行,點選Edit Selected Rows按鈕,在彈出的視窗中同時編輯所有物件的約束值:
在這裡插入圖片描述
使用Back和Next可以在不同的約束介面之間進行切換,但是如果沒有處理當前介面的所有缺少的值,便無法切換到下一個約束介面。再次強調一遍,時鐘約束嚮導無法編輯已經存在的時序約束,只會建立新的約束。


時序約束視窗

如果想要編輯已經存在的約束,在Elaborated設計階段,只能通過修改XDC檔案實現;而在綜合設計或實現設計階段,還可以通過時序約束視窗來實現。在Flow Navigator中點選Open Synthesized/Implemented Design目錄下的Edit Timing Constraints可以開啟時序約束視窗:
在這裡插入圖片描述
時序約束視窗下方的All Constraints按照XDC檔案和Tcl指令碼中的順序,或者在Tcl控制檯中輸入約束的順序顯示時序約束。如果某些約束不能在該視窗中編輯,則會標記為No Edit狀態,前面有一個?的圖示。

時序約束視窗中顯示了所有存在約束的詳細資訊,並且可以直接編輯。左邊以目錄的形式列出了各種約束型別。右邊雙擊最後一行可以建立當前所選型別的一個新約束,彈出視窗中完善約束資訊。點選OK即可將約束在記憶體中應用,但是隻有點選Save Constraints後才會儲存到XDC檔案中。如建立一個新的時鐘約束,彈出視窗如下:
在這裡插入圖片描述
另外IP核約束是無法編輯或刪除的,如果非要這樣做,可以禁用IP核發布的約束檔案,將其中的內容複製貼上到使用者XDC中,即可進行編輯操作。

相關文章