1.時序分析與約束
1.1 約束是FPGA設計不可或缺的,約束文件分為:
用戶設計文件(.UCF),由用戶輸入
網表約束文件(.NCF),綜合生成
物理約束文件(.PCF),實現生成
約束類型分為:
周期約束、偏移約束、靜態路徑約束;
1.2 高的工作頻率意味著更加強大的處理能力,但帶來了:時序沖突的概率變大以及電路的穩定性降低,為此必須進行時序、面積和負載等多方面的約束。
對于一般的低速設計(處理時鐘不超過50MHz),基本上不需時序方面的處理。
1.3 時序分析貫穿整個FPGA設計,任何階段時序分析不滿足,都需重新修改代碼或者調整時序約束。
2. 動態時序分析與靜態時序分析
動態時序分析需要仿真條件, 需要輸入向量,著重于邏輯功能;
靜態時序分析不需要外部激勵,著重于時序性能分析;
靜態時序分析在分析過程中計算時序路徑上數據信號的到達時間和要求時間的差值,以
判斷是否違反設計規則的錯誤,即Slack (時裕量)= T_required_time(約束時長) – T_arrival_time (實際時延),Slack為正則滿足時序。
3.時鐘的時序特性:偏移(skew)、抖動(jitter)、占空比失真(duty cycle distortion)
時鐘偏移:指同一信號到達兩個不同寄存器之間的時間差值(原因:兩條時鐘路徑長度不同) ,在設計中主要時鐘應走全局時鐘網絡;
時鐘抖動、占空比失真
4.時序裕量
約束文件要求的時鐘周期與實際布局布線后時鐘周期的差值
5.添加約束原則
先附加全局約束,再補充局部約束。目的是在可能的地方盡量放松約束,提高布線成功概率,減少布局布線時間。典型的全局約束包括周期約束和偏移約束。
在添加全局時序約束時,先根據時鐘頻率不同劃分不同的時鐘域,添加各自的周期約束;然后對輸入輸出信號添加偏移約束,對片內邏輯添加附加約束
6.硬件設計電路的最高工作頻率
取決于芯片內部元件固有的建立時間和保持時間,以及同步元件之間的邏輯和布線延遲。即由芯片和代碼共同決定。
7.周期約束
常用的策略是:附加的時鐘周期約束的時長為期望值90%.
語法一:Net “信號名” period = 周期長度 high/low 脈沖持續時間
其中high/low指周期內第一個脈沖是高電平還是低電平,脈沖持續時間即該 脈沖的持續時間。
舉例 Net “clk_100MHz” period = 10 ns High 5ns
指定了信號clk_100MHz的周期為10ns,搞電平持續為5ns,該約束將被添加到clk_100MHz所驅動的元件上。
8.偏移約束
規定了外部時鐘和數據輸入輸出管腳之間的相對時序關系,只能用于端口信號,不能用于內部信號,語法結構:
OFFSET = [IN|OUT] “offset_time” [units] {BEFORE|AFTER} “clk_name” [TIMEGRP “group_name”]
[IN|OUT]:說明約束的是輸入還是輸出
offset_time:數據與有效時鐘沿之間的時間差
[units]:時間差單位,缺省為ns
{BEFORE|AFTER}:表明該時間差實在時鐘沿之前還是之后
“clk_name”:有效時鐘名字
[TIMEGRP “group_name”]:用戶添加的分組信號,缺省時為時鐘“clk_name”所能驅動的所有觸發器
偏移約束通知布局布線器輸入數據的到達時刻,從而可準確調整布局布線的過程,使約束信號建立時間滿足要求
舉例:NET “DATA_IN” OFFSET = IN 10 BEFORE “CLK_50MHz”。
責任編輯:lq6
-
時序
+關注
關注
5文章
387瀏覽量
37318
原文標題:FPGA學習筆記-時序分析與約束
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論