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