quartus中的時序約束常用方法
一、約束操作
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中查看,也可以在里面將其刪除。
四、小結
時序分析報告是得到這個設計的時序狀況,而時序約束則是優化時序狀況。時序約束的前提是有明確的時序設計目標。這點需要注意。