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