什么是偽路徑?
偽路徑指的是該路徑存在,,但該路徑的電路功能不會發(fā)生或者無須時序約束。如果路徑上的電路不會發(fā)生,,那Vivado綜合后會自動優(yōu)化掉,因此我們無需考慮這種情況,。
2. 為什么要創(chuàng)建偽路徑,?
創(chuàng)建偽路徑可以減少工具運行優(yōu)化時間,增強實現(xiàn)結(jié)果,避免在不需要進行時序約束的地方花較多時間而忽略了真正需要進行優(yōu)化的地方。
3. 偽路徑一般應用于:
跨異步時鐘域
一上電就被寫入數(shù)據(jù)的寄存器
異步復位或測試邏輯
異步雙端口RAM
4.偽路徑的約束
set_false_path [-setup] [-hold] [-from <node_list>] [-to <node_list>] [-through <node_list>]
-from的節(jié)點應是有效的起始點.有效的起始點包含時鐘對象,時序單元的clock引腳,或者input(or inout)原語;
-to的節(jié)點應包含有效的終結(jié)點.一個有效的終結(jié)點包含時鐘對象,output(or inout)原語端口,或者時序功能單元的數(shù)據(jù)輸入端口;
-through的節(jié)點應包括引腳,端口,或線網(wǎng).當單獨使用-through時,應注意所有路徑中包含-through節(jié)點的路徑都將被時序分析工具所忽略
需要注意的是,,-through是有先后順序的,,下面的兩個約束是不同的約束:
set_false_path -through cell1/pin1 -through cell2/pin2
set_false_path -through cell2/pin2 -through cell1/pin1
因為它們經(jīng)過的先后順序不同,,偽路徑的約束是單向的,并非雙向的,,若兩個時鐘域相互之間都有數(shù)據(jù)傳輸,,則應采用如下約束:
set_false_path -from [get_clocks clk1] -to [get_clocks clk2]
set_false_path -from [get_clocks clk2] -to [get_clocks clk1]
也可以直接采用如下的方式,與上述兩行約束等效
set_clock_groups -async -group [get_clocks clk1] -to [get_clocks clk2]
更多信息可以來這里獲取==>>電子技術(shù)應用-AET<<