時序不滿足約束,會導致以下問題:
? 編譯時間長的令人絕望
? 運行結果靠運氣——時對時錯
導致時序問題的成因及其發生的概率如下表:
由上表可見,造成時序問題的主要原因除了約束不完整,就是路徑問題,本文就時序路徑分析問題作一介紹:
時鐘網絡反映了時鐘從時鐘引腳進入FPGA后在FPGA內部的傳播路徑。
報告時鐘網絡命令可以從以下位置運行:
① Vivado?IDE中的Flow Navigator
② Tcl命令:report_clock_networks -name {network_1}
報告時鐘網絡提供設計中時鐘樹的樹視圖。 如下圖。每個時鐘樹顯示從源到端點的時鐘網絡,端點按類型排序。
時鐘樹:
? 顯示由用戶定義或由工具自動生成的時鐘。
? 報告從I / O端口加載的時鐘。
? 可用于查找驅動其他BUFGs的BUFGs。
? 顯示驅動非時鐘負載的時鐘。
溫馨提醒:完整的時鐘樹僅在報告的GUI形式中詳細說明。此報告的文本版本僅顯示時鐘根的名稱。
以vivado自帶的例子wavegen為例。點擊Synthesis的Report CLock Networks如下圖所示:
時鐘clk_pin_p從輸入引腳輸入之后,經過IBUFDS,再通過MMCM生成時鐘,同時顯示了各個時鐘的頻率。如果我們未添加時鐘約束,報告將顯示Unconstrained(未約束的時鐘,root clock).可以選中未約束的時鐘右擊選擇Create Clock創建時鐘。
如下圖所示:
2、 跨時鐘域路徑分析
若要查看跨時鐘域路徑分析報告,可選擇以下內容之一來查看:
? Reports > Timing > Report Clock Interaction
? Flow Navigator > Synthesis > Report Clock Interaction
? Flow Navigator > Implementation > Report Clock Interaction
? Tcl command: report_clock_interaction -name clocks_1
如下圖所示,點擊Synthesis–>Report Clock Interaction.
跨時鐘域路徑分析報告分析從一個時鐘域(源時鐘)跨越到另一個時鐘域(目標時鐘)的時序路徑。跨時鐘域路徑分析報告有助于識別可能存在數據丟失或亞穩態問題的情況.
運行“Report Clock Interaction”命令后,結果將在“時鐘交互”窗口中打開。如下圖所示,時鐘交互報告顯示為時鐘域矩陣,源時鐘位于垂直軸,目標時鐘位于水平軸。
No Path --用黑色框來表示:沒有從源時鐘到目標時鐘的定時路徑。在這種情況下,沒有時鐘交互,也沒有任何報告。
Timed – 用綠色框來表示:源時鐘和目標時鐘具有同步關系,并安全地被約束在一起。當兩個時鐘具有共同的主時鐘和簡單的周期比時,該狀態由定時引擎確定。
User Ignored Paths–用深藍色框來表示:用戶定義的假路徑或時鐘組約束涵蓋從源時鐘到目標時鐘的所有路徑。
Partial False Path–用淡藍色框來表示:用戶定義的偽路徑約束覆蓋了從源時鐘到目標時鐘的一些時序路徑,其中源時鐘和目標時鐘具有同步關系。
Timed (Unsafe)–用紅色框來表示:源時鐘和目標時鐘具有異步關系。在這種情況下,沒有共同的主時鐘或沒有可擴展的時段。
Partial False Path (Unsafe)–用橘橙色框來表示:此類別與Timed(Unsafe)相同,只是由于偽路徑異常,從源時鐘到目標時鐘的至少一條路徑被忽略。
Max Delay Datapath Only --用紫色框來表示:set_max_delay -datapath_only約束涵蓋從源時鐘到目標時鐘的所有路徑。
Report_clock_interaction呈現的報告并不是根據時序約束生成的,但是和時序約束有關,它反映出用戶定義的偽路徑。
以wavegen工程為示例,點擊Report Clock Interaction,如下圖所示:
ID: 正在顯示的源/目標時鐘對的數字ID。
Source Clock: 路徑源時鐘域。
Destination Clock: 路徑終端的時鐘域。
Edges (WNS):用于計算最大延遲分析(設置/恢復)的最差裕度的時鐘邊緣。
WNS (Worst Negative Slack):為跨越指定時鐘域的各種路徑計算的最差裕度時間。負裕量時間表示路徑違反了所需的建立(或恢復)時間的問題。
TNS (Total Negative Slack):屬于跨越指定時鐘域的路徑的所有端點的最差松弛違規的總和。
Failing Endpoints (TNS): 交叉路徑中的端點數量無法滿足時序要求。違規的總和對應于TNS。
Total Endpoints (TNS):交叉路徑中端點的總數。
Path Req (WNS):定時路徑要求對應于WNS列中報告的路徑。如果兩個時鐘中的至少一個時鐘的上升沿和下降沿都有效,則在任何時鐘對之間可能存在若干路徑要求,或者在兩個時鐘之間的路徑上應用了一些時序異常。本專欄中報告的值并不總是最具挑戰性的要求。
Clock Pair Classification: 提供有關公共節點和時鐘對之間的公共周期的信息。從最高優先級到最低優先級:忽略,虛擬時鐘,無公共時鐘,無公共周期,部分公共節點,無公共節點和清除。
Inter-Clock Constraints: 顯示源時鐘和目標時鐘之間所有路徑的約束摘要。
-
Vivado
+關注
關注
19文章
812瀏覽量
66472 -
時序路徑
+關注
關注
0文章
12瀏覽量
1397
發布評論請先 登錄
相關推薦
評論