quartus中有三種時序約束方法:
1️⃣timing setting
2️⃣wizards/timing wizard
3️⃣assignment/assignment editor
一般來說,前面兩種是全域性約束,後面一種是個別約束。
先全域性,後個別。約束操作的目標就是得到合理的時序報告。
(1)時序驅動的編譯(tdc)
fitter setting,約束設定,可以調整時序的優先策略並自動提供解決方案。時序編譯的主要操作有:
優化時序:將關鍵路徑的節點放置地更近,降低延時,提高餘量
優化io單元暫存器放置:為了滿足時序,自動將暫存器移到io單元中。
其中優化保持時間,還可以選擇優化io路徑保持時間與最小tpd路徑的時間,或者是所有路徑。
優化的方法就是在關鍵路徑上新增佈線延時以滿足保持時間的要求。
(2)全域性時鐘設定
在timing setting 中即可設定全域性時鐘,用於乙個時鐘域的全域性時鐘約束。在timing requirements & options的中間位置。
(3)全域性io時序約束
在全域性時鐘設定的上面就是io的最小時序設定。設定的引數包括:tsu,tco,tpd和最小延時要求的th、min tco、min tpd共六個引數,具體的使用方法需要在實際的工程中體現。
(4)時序分析和時序報告
quartus中在綜合後會自動生成時序分析報告,可以通過時序分析報告檢視設計的時序要求是否符合預期。
(5)時序嚮導(timing wizard)
由自帶的軟體嚮導設定全域性時鐘。
(1)指定個別時鐘要求
quartus預設的時鐘有兩類:獨立時鐘和衍生時鐘。時鐘域對應的是獨立時鐘,對於衍生時鐘,則依附於對應的獨立時鐘的時序。對兩類時鐘的宣告也是不一樣的,獨立時鐘需要時鐘頻率和占空比,而衍生時鐘則需要相位差、頻率倍數等關係約束。
(2)個別時序約束
時鐘設定:在設定獨立時鐘時就可以將其的物理節點指定。
輸入輸出最大延時:輸入延時直接影響時鐘建立、保持時間,輸出直接影響插傳輸延時和路徑延時。
反相時鐘:可以宣告某個時鐘的反相時鐘訊號。
非時鐘:將某些不必要的時鐘去除。
(3)時序約束的種類
單點:輸入到所有暫存器的延時約束
點到點:輸入到某個暫存器的延時約束
萬用字元:輸入到某些相似暫存器的約束
時序組:輸入到某組暫存器的延時
(4)檢視所有時序約束
在前面的時序約束操作最後都可以在quartus中的assignment editor中檢視,也可以在裡面將其刪除。
時序分析報告是得到這個設計的時序狀況,而時序約束則是優化時序狀況。時序約束的前提是有明確的時序設計目標。這點需要注意。
時序約束Quartus
quartus選單翻譯 時序約束名字 頂層檔案的module名字與頂層檔案的檔案的名字要一致。例 若.v檔案為top.v,則其內部必須為module top,而不能是module top。時序約束步驟學習 主要是乙個是先建sdc檔案,乙個是頁面操作自動生成制定,最後儲存sdc檔案,且要記得將檔案加入...
基於quartus的高階時序分析
派生時鐘就是和獨立時鐘存在頻率或者相位關係的時鐘,非同步儲存器就是具有儲存讀寫非同步功能的儲存器。在時序分析中,這兩個部分的靜態時序分析是需要設定個別約束的。派生時鐘會產生時鐘偏斜或者不同頻率時序問題,非同步儲存器則類似latch,存在建立時間和保持時間的要求。分別對獨立時鐘和衍生時鐘做時序約束,保...
時序的約束
前端時間,學校的社團有人在問我關於對設計約束的問題,碰巧在網上看見一篇關於約束的問題,現狀貼如下 個人覺得有些觀點不是太認同,但是主要的思想是很好的 對自己的設計的實現方式越了解,對自己的設計的時序要求越了解,對目標器件的資源分布和結構越了解,對eda工具執行約束的效果越了解,那麼對設計的時序約束目...