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

集成電路設(shè)計(jì)中靜態(tài)時(shí)序分析介紹
一文讀懂:LED 驅(qū)動(dòng)電路二極管挑選要點(diǎn)
一文讀懂什么是「雷電4」

時(shí)序約束一主時(shí)鐘與生成時(shí)鐘

FPGA 高級(jí)設(shè)計(jì):時(shí)序分析和收斂
【古瑞瓦特光伏逆變器品牌】一文讀懂PCS儲(chǔ)能變流器

Xilinx FPGA編程技巧之常用時(shí)序約束詳解
FPGA工程的時(shí)序約束實(shí)踐案例

時(shí)序約束實(shí)操

評(píng)論