xdc約束優先級
在xdc文件中,按約束的先后順序依次被執行,因此,針對同一個時鐘的不同約束,只有最后一條約束生效。
雖然執行順序是從前到后,但優先級卻不同;就像四則運算一樣,+-x÷都是按照從左到右的順序執行,但x÷的優先級比+-要高。
時序例外的優先級從高到低為:
① Clock Groups (set_clock_groups)
② False Path (set_false_path)
③ Maximum Delay Path (set_max_delay) and Minimum Delay Path (set_min_delay)
④ Multicycle Paths (set_multicycle_path)
set_bus_skew約束并不影響上述優先級且不與上述約束沖突。原因在于set_bus_skew并不是某條路徑上的約束,而是路徑與路徑之間的約束。
對于同樣的約束,定義的越精細,優先級越高。各對象的約束優先級從高到低為:
① ports->pins->cells
② clocks。
路徑聲明的優先級從高到低為:
① -from -through -to
② -from -to
③ -from -through
④ -from
⑤ -through -to
⑥ -to
⑦ -through
優先考慮對象,再考慮路徑。
Example1:
set_max_delay 12 -from [get_clocks clk1] -to [get_clocks clk2] set_max_delay 15 -from [get_clocks clk1]
該約束中,第一條約束會覆蓋第二條約束。
Example2:
set_max_delay 12 -from [get_cells inst0] -to [get_cells inst1] set_max_delay 15 -from [get_clocks clk1] -through [get_pins hier0/p0] -to [get_cells inst1]
該約束中,第一條約束會覆蓋第二條約束。
Example3:
set_max_delay 4 -through [get_pins inst0/I0] set_max_delay 5 -through [get_pins inst0/I0] -through [get_pins inst1/I3]
這個約束中,兩條都會存在,這也使得時序收斂的難度更大,因為這兩條語句合并成了:
set_max_delay 4 -through [get_pins inst0/I0] -through [get_pins inst1/I3]
編輯:hfy
-
FPGA
+關注
關注
1629文章
21753瀏覽量
604193 -
xdc
+關注
關注
1文章
24瀏覽量
5935
發布評論請先 登錄
相關推薦
評論