新增時序約束的技巧分析

2021-08-20 06:23:38 字數 1321 閱讀 2619

使用約束檔案新增時序約束2010-01-16 13:07一般來講,新增約束的原則為先附加全域性約束,再補充區域性約束,而且區域性約束比較寬鬆。其目的是在可能的地方盡量放鬆約束,提高佈線成功概率,減少ise 布局佈線時間。典型的全域性約束包括週期約束和偏移約束。

在新增全域性時序約束時,需要根據時鐘頻率劃分不同的時鐘域,新增各自的週期約束;然後對輸入輸出埠訊號新增偏移約束,對片內邏輯新增附加約束。

1.週期約束

週期約束是附加在時鐘網路上的基本時序約束,以保證時鐘區域內所有同步元件的時序滿足要求。在分析時序時,週期約束能自動處理暫存器時鐘端的反相問題,如果相鄰的同步元件時鐘相位相反,則其延遲會被自動限制為週期約束值的一半,這其實相當於降低了時鐘週期約束的數值,所以在實際中一般不要同時使用時鐘訊號的上公升沿和下降沿。

硬體設計電路所能工作的最高頻率取決於晶元內部元件本身固有的建立保持時間,以及同步元件之間的邏輯和佈線延遲。所以電路最高頻率由**和晶元兩部分共同決定,相同的程式,在速度等級高的晶元上能達到更高的最高工作頻率;同樣,在同一晶元內,經過速度優化的**具有更高的工作頻率,在實際中往往取二者的平衡。

在新增時鐘週期之前,需要對電路的期望時鐘週期有乙個合理的估計,這樣才不會附加過鬆或過緊的週期約束,過鬆的約束不能達到效能要求,過緊的約束會增加布局佈線的難度,實現的結果也不一定理想。常用的工程策略是:附加的時鐘週期約束的時長為期望值的90%,即約束的最高頻率是實際工作頻率的110% 左右。

附加時鐘週期約束的方法有兩個:一是簡易方法,二是推薦方法。簡易方式是直接將週期約束附加到暫存器時鐘網線上,其語法如下所示:

[ 約束訊號] period = [ 脈衝持續時間];

其中, 內的內容為可選項,{} 中的內容為必選項,「|」表示選擇項。[ 約束訊號] 可為「net net_name」或「timegrp group_name」,前者表示週期約束作用到線網所驅動的同步元件上,後者表示約束到timegrp所定義的訊號分組上( 如觸發器、鎖存器以及ram 等)。 為要求的時鐘週期,可選用ms、s、ns以及ps 等單位,預設值為ns,對單位不區分大小寫。 用於指定週期內第乙個脈衝是高電平還是低電平。[ 脈衝持續時間] 用於指定第乙個脈衝的持續時間,可選用ms、s、ns 以及ps 等單位,預設值為ns,如果預設該項,則預設為50% 的占空比。如語句:

net「 clk_100mhz」 period = 10ns high 5ns;

指定了訊號clk_100mhz 的週期為10ns,高電平持續的時間為5ns,該約束將被新增到訊號clk_100mhz

所驅動的元件上。

推薦方法常用於約束具有複雜派生關係的時鐘網路,其基本語法為:

timespec「 ts_identifier」 = period「 tnm_reference」

時序分析之IO約束

時序分析的基本原理 無圖,先略。io約束的基本原理 io約束有輸入延遲約束和輸出延遲約束。輸入延遲和輸出延遲約束的方法完全一致。因此,只需要了解輸入延遲的約束即可。輸入延遲的約束需要用到最基本的時序分析模型。由於編譯工具並不清楚io介面處的時序和相位關係。因此,不做時序約束的話,將可能導致不能正確的...

時序分析(2) 時序約束原理

一 基本概念 1 時序 時鐘和資料的對應關係 2 約束 告訴綜合工具,我們希望時序達到什麼樣的標準 3 違例 時序達不到需要的標準 4 收斂 通過調整布局佈線方案來達到這個標準 5 靜態時序分析 電路未跑起來時,延時等已知,以此分析時序 6 動態時序分析 電路跑起來,如modelsim軟體 理想狀態...

時序的約束

前端時間,學校的社團有人在問我關於對設計約束的問題,碰巧在網上看見一篇關於約束的問題,現狀貼如下 個人覺得有些觀點不是太認同,但是主要的思想是很好的 對自己的設計的實現方式越了解,對自己的設計的時序要求越了解,對目標器件的資源分布和結構越了解,對eda工具執行約束的效果越了解,那麼對設計的時序約束目...