隨著設(shè)計復(fù)雜度和調(diào)用 IP 豐富度的增加,在調(diào)試時序約束的過程中,用戶常常會對除了頂層約束外所涉及的繁雜的時序約束感到困惑而無從下手。舉個例子,用戶在 XDC 里面并沒有指定 set_false_path,為什么有些路徑在分析時忽略了?那怎么去定位這些約束是哪里設(shè)定的?
事實上,Vivado 集成設(shè)計環(huán)境提供了很多輔助工具來協(xié)助用戶完成時序約束的分析。
本文闡述了如何結(jié)合 Timing Constraints 窗口對設(shè)計中的約束進(jìn)行查看及分析,希望為用戶的設(shè)計調(diào)試提供一些思路和方向。
Timing Constraints 窗口的開啟
Timing Constraints窗口僅對Synthesized Design或Implemented Design適用。您可以通過以下三種方式之一找到其入口:
1. Open Synthesized/Implemented Design,選擇菜單Windows > Timing Constraints
2. Open Synthesized Design,選擇Flow Navigator里Synthesized Design 部分的 Edit Timing Constraints
3. Open Implemented Design,選擇Flow Navigator里Implemented Design 部分的 Edit Timing Constraints
? ?
Timing Constraints 窗口一覽
Timing Constraints 窗口可以以圖示的方式直觀顯示當(dāng)前導(dǎo)入的設(shè)計中所存儲的時序約束,以分類組織的架構(gòu),用戶可以方便地定位約束創(chuàng)建的順序及來源。
打開后的窗口整體如下圖所示:
左上部分子窗口將約束做了分類,括號里是每一類約束的數(shù)量。
當(dāng)選定某一類約束后,設(shè)計中所有這類約束信息會以電子表格的形式顯示在右上部分子窗口。
以 Create Clock 約束為例:
Position 列是約束的位置信息,跟約束的讀入順序?qū)?yīng)。前面帶鎖圖標(biāo)表明此約束無法在表格上直接編輯,通常是 IP 自帶的約束。
Source File 列顯示了約束來源于哪個 XDC 或 Tcl 文件。
Scoped Cell 列顯示了約束的作用范圍,是全局還是某一個實例,通常此列顯示的名稱對應(yīng)于自帶特定約束的 IP 實例名。
當(dāng)點擊某一行選中約束后,同時在下方的 All Constraints 子窗口會高亮此約束語句
用戶可以快速看到原始約束語句以及其來源 XDC 的具體文件位置。
All Constraints 子窗口顯示加載到內(nèi)存中的約束的完整列表,其順序與應(yīng)用它們的順序相同。 約束根據(jù)它們所源自的 XDC file 或 Tcl 腳本進(jìn)行分組,根據(jù)查看需要可切換多種視圖。
您可以點擊 expand 或 collapse 圖標(biāo)展開或折疊每個約束文件的約束,如下圖所示:
展開約束:
折疊約束:
此時點擊 Constraints 旁的箭頭可以看到所有關(guān)聯(lián)的約束文件,進(jìn)一步可以點擊某個約束文件旁的箭頭進(jìn)行逐一查看。
您也可以取消選擇 Group by Source 圖標(biāo),將視圖切換到一個表格,按序顯示設(shè)計中的所有時序約束,其中source constraint 文件和 Scoped Cell 信息顯示在右側(cè)的兩列中。
? ?
在 Timing Constraints 窗口進(jìn)行約束編輯
除了在表格中查看已有約束,還可以對已有約束進(jìn)行刪減、修改或者添加新的約束,改動結(jié)果也會實時反映在下方的All Constraints 窗口并應(yīng)用在當(dāng)前的 in-memory 設(shè)計,方便用戶在不重新跑綜合實現(xiàn)的前提下進(jìn)行多角度的時序分析試驗。
要刪除某一條約束,可以從任一子窗口選中此約束,右鍵選Remove Constraint,或者點擊-圖標(biāo),并點擊窗口下方的Apply 按鍵以刷新內(nèi)存中的約束。
要編輯某一條約束(注意只能修改非只讀,即約束前沒有帶鎖標(biāo)志的),可以選中此約束,右鍵選 Edit Constraint,或者點擊編輯圖標(biāo)。
在隨后打開的約束編輯對話框中完成修改,并點擊窗口下方的Apply 按鍵以刷新內(nèi)存中的約束。
要添加新的約束,可以點擊分類表格子窗口的+圖標(biāo),或者在某一類約束的空白處雙擊,在隨后打開的對話框中將約束信息補充完整。
也可以在 Tcl Console 敲入新的約束進(jìn)行添加。
新約束出現(xiàn)在名為的組中的列表末尾。
約束修改后可以直接在 in-memory 設(shè)計上生效,由此展開更新后的時序分析,在當(dāng)前布局布線的結(jié)果上評估修改后的時序。
評估完成后,如果需要保存所作的修改,可以在 Close Design的時候選擇 Save Constraints,工具會自動選擇標(biāo)記為 Target的 XDC 文件進(jìn)行保存。如果并不想改動原始約束或者并不需要保存全部改動,可以在退出設(shè)計時忽略 Save Constraints,之后再手動修改設(shè)計中的約束文件,加入想要的改動。
總結(jié)
以上內(nèi)容對 Vivado IDE 中的Timing Constraints 窗口做了介紹,與 write_xdc 命令相比,其最大的優(yōu)勢是能直觀顯示設(shè)計中所有約束的分組及來源,為時序約束的查看、驗證及假設(shè)分析提供了比較方便的接口,與其他調(diào)試手段結(jié)合,可以提升設(shè)計效率。
-
接口
+關(guān)注
關(guān)注
33文章
8691瀏覽量
151920 -
時序
+關(guān)注
關(guān)注
5文章
392瀏覽量
37428 -
Vivado
+關(guān)注
關(guān)注
19文章
815瀏覽量
66890
原文標(biāo)題:開發(fā)者分享|讀懂用好 Timing Constraints 窗口
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
玩轉(zhuǎn)Vivado之Timing Constraints
vivado約束參考文檔
Vivado 2014.1工具流程結(jié)果不可重復(fù)
vivado掛在place_design
使用VIVADO IDE設(shè)計的最有效方法是什么?
Global Timing Constraints
Timing Groups and OFFSET Const
Achieving Timing Closure
具體介紹ISE中通過編輯UCF文件來對FPGA設(shè)計進(jìn)行約束
![具體<b class='flag-5'>介紹</b>ISE<b class='flag-5'>中</b>通過編輯UCF文件來對FPGA設(shè)計進(jìn)行約束](https://file1.elecfans.com//web2/M00/A6/F5/wKgZomUMQX2AGjPfAAAOHQj6kek146.jpg)
通過一個實例具體介紹ISE中通過編輯UCF文件來對FPGA設(shè)計進(jìn)行約束
![通過一個實例具體<b class='flag-5'>介紹</b>ISE<b class='flag-5'>中</b>通過編輯UCF文件來對FPGA設(shè)計進(jìn)行約束](https://file1.elecfans.com//web2/M00/A6/F5/wKgZomUMQX6AB52wAAAV0Ly5RqU369.png)
Vivado進(jìn)行時序約束的兩種方式
![<b class='flag-5'>Vivado</b>進(jìn)行時序約束的兩種方式](https://file.elecfans.com/web1/M00/B5/4F/pIYBAF5fcimABv2KAAEwILkB928203.png)
Vivado IDE全面了解XDC文件的約束順序
![<b class='flag-5'>Vivado</b> <b class='flag-5'>IDE</b>全面了解XDC文件的約束順序](https://file.elecfans.com/web1/M00/C7/D7/o4YBAF9t8IOALUTxAAAfAC1skGQ822.png)
如何在Vivado中添加時序約束呢?
![如何在<b class='flag-5'>Vivado</b><b class='flag-5'>中</b>添加時序約束呢?](https://file1.elecfans.com/web2/M00/8A/0E/wKgZomSP286APANYAAB3fF1WXeg526.jpg)
Vivado設(shè)計套件用戶:使用Vivado IDE的指南
![<b class='flag-5'>Vivado</b>設(shè)計套件用戶:使用<b class='flag-5'>Vivado</b> <b class='flag-5'>IDE</b>的指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論