說實話這個不太懂,沒用過也沒有遇到相應的狀況(或者說我不知道)。你們能夠更多的去參考特定約束FROM TO和MicroZed開發板筆記,第72部分:多週期約束等內容。html
本文待修正工具
系列目錄 post
創建時間和保持時間(setup time 和 hold time)spa
OFFSET約束(OFFSET IN 和OFFSET OUT)設計
Clock Skew , Clock uncertainly 和 Periodhtm
特殊約束From Toblog
「A timing exception is needed when the logic behaves in a way that is not timed correctly by default.」
前面談時序約束的時候,略去了Path specific exceptions。'Path specific exceptions'能夠直接理解爲特別指定的路徑例外。咱們天然但願軟件幫咱們作好絕大多數事情,既然存在這個例外,那麼說明軟件在知道了OFFSET 和 PERIOD以後,還有並不知曉的時序要求。因此這個時序要求須要咱們人爲指定。這可能有多種狀況,一下分別說明(注意,From to 我也沒用過,因此可能不對……)
多週期(Multi-Cycle)約束
在上圖的例子中,默認的分析方式是Q和D之間數據在下一個時鐘沿捕獲,也就意味着邏輯延時要小於一個時鐘週期(其餘影響因素均不考慮,認爲是0) 。這一例子下圖就是默認的分析方法下時序圖,能夠看到這裏約束的requirement是1個clk,也就意味這是一個單週期時間的約束。多週期約束,故名思議就是這一段長度是多個時鐘週期。爲什麼能夠是多個時鐘週期取決以設計自己,可是工具不可以智能的分析出結果,須要人爲指定,這就是多週期約束。
多週期約束的一個例子來自於特定約束FROM TO,相似的以下圖所示,軟件的默認分析結果是1個clk,可是顯然因爲電路邏輯的緣故,約束能夠是2個clk。默認的分析結果是不對的(或說很差),咱們須要認爲的指定約束。
多週期約束的寫法相似,可參考特定約束FROM TO 圖2.
NET "CLKIX" TNM_NET = "CLKIX";
TIMESPEC "TS_CLKIX" = PERTOD "CLKlX" 5.0 ns HIGH 50%;
NET ENABLE TNM_NET = SLOW_FFS;
TIMESPEC TS_SLOWPATH = FROM SLOW_FFS TO SLOW_FFS TS_CLK1X*2;