2017-03-06 131 views
1

我有一個關於設計編譯器約束的問題。 特別是,set_false_path vs。 set_clock_group。set_false_path VS之間的區別是什麼? set_clock_group?

據我所知,

  1. set_false_path

的(a) - 從set_false_path [get_clocks CLKA] -to [get_clocks CLKB]。

我認爲這是考慮單向的方向。

(b)中set_false_path -from [get_clocks CLKA] -to [get_clocks CLKB]]

set_false_path -from [get_clocks CLKB] -to [get_clocks CLKA]]

- > CLKA - > CLKB,CLKB - > CLKA(雙向)

  • set_clock_groups
  • (一)set_clock_groups -asynchronous -group CLKA -group CLKB

    我認爲這是考慮到有關雙向。

    所以這裏是我的問題 我認爲set_false_path和set_clock_group之間只有區別只是方向。

    然後我想1.(b)和2.(a)是一樣的。那麼我可以用2.(a)代替1.(b)嗎?

    回答

    1

    在某些情況下(如1b和2a),兩個命令都有相同的結果,因此用戶可以選擇其中的任何一個。但是在一些情況下也有一些差異。

    set_false_path允許刪除時鐘之間的特定約束。例如,我可以在保持檢查狀態的情況下移除設置檢查。或者我只能選擇一個時鐘的一個邊沿(上升或下降)。這個命令有很多選項。

    set_false_path -rise_from CLKA -fall_to CLKB -setup 
    

    set_clock_groups的優點很簡單。它使我們免於定義太多錯誤的路徑。這就是爲什麼2a比1b好。如果我們有更多的時鐘,它將有更多的幫助。

    set_clock_groups -asynchronous -group CLKA -group CLKB -group CLKC 
    
    相關問題