SDF文件是在VCS/NC-Verilog后仿真運行時將STD/IO/Macro門級verilog中specify的延遲信息替換為QRC/Star-RC抽取的實際物理延時信息。如果SDF文件的條件信息在verilog的specify中沒有的話,就會報SDFCOM_INF的warning,意思是IOPATH not found。
本文解析SDF的Header Section信息、Cell Entries信息,尤其重點講解Cell Entries的Delay Entries信息。
下文先講SDF文件的第一部分Header Section
1. SDF Version Entry,包括1.0、2.1、3.0,SDF3.0是1995年release。
2. Design Name Entry,設計頂層名
3. Date Entry,SDF生成日期,PT或Tempus產生
4. Vendor Entry,Vendor信息,如下圖
5. Program Version Entry
6. Hierarchy Divider Entry
7. Voltage Entry,SDF3.0官方解釋如下
8. Process Entry,SDF3.0官方解釋如下
9. Temperature Entry,SDF3.0官方解釋如下
10.Timescale Entry,SDF3.0官方解釋如下
下文繼續講解SDF文件的第二部分Cell Entries:
完整的Delay Entries信息格式如下:
PATHPULSE
PATHPULSEPERCENT
ABSOLUTE Delays
INCREMENT Delays
1. PATHPULSE 舉例說明:
當從i1到o1輸出的低電平脈沖小于13ns時,該低電平脈沖直接被忽略;
當從i1到o1輸出的低電平脈沖介于13ns~21ns時,輸出為X態;
當從i1到o1輸出的低電平脈沖大于21ns時,正常輸出低電平;
2. PATHPULSEPERCENT
本質上和PATHPULSE是一回事,只不過是按照path延時比例來計算什么時候丟棄輸入脈沖寬度不足的信號(pulse rejection limit),什么時候將輸入脈沖寬度不足的信號顯示為X態(X limit)。比如:
以上圖為例,the high-to-low delay is 37, 因此,the pulse
rejection limit is 25% of 37 and the X limit is 35% of 37.
3. ABSOLUTE Delays
ABSOLUTE Delays中的物理延時數據就是用來替換verilog specify中的延時數據的。
4. INCREMENT Delays
用來疊加在verilog specify中的延時數據上的,INCREMENT Delays是存在負數的情況的,疊加后的延時若是負數的話,某些EDA工具可能不支持或直接強制延時為0。
上面介紹了SDF3.0的Header Section以及Cell Entries的Delay Entries部分內容,下面繼續解析Delay Entries剩下的部分。
5. Delay Definition Entries
ABSOLUTE and INCREMENT delays都采用同樣的Delay Definition結構,其結構語法如下:
6. Specifying Delay Values
Delay Values在delval_list里面指定,最多一共有12個小括號,每個小括號里面有3個值,用":"隔開,分別代表minimum、typical、maximum的延時值;在delval_list里面包含如下情況:
若12個delval值都指定了,那么每一個delval分別代表:
若2個delval值被指定,第一個delval代表01("rising")延時值,第二個delval代表10("falling")延時值; 若3個delval值被指定,第一個delval代表01("rising")延時值,第二個delval代表10("falling")延時值,第三個delval代表-Z("Z transition")延時值; 若6個delval值被指定,那么它們分別代表01、10、0Z、Z1、1Z、Z0; 舉例說明,如下,IO PATH有6個delval值被指定:
但0-1, 1-0的延遲都缺省,后面四個括號分別對應0Z、Z1、1Z、Z0,這種語法SDF3.0是支持的,annotator工具反標的時候就不會替換verilog specify的0-1, 1-0轉換延遲值。
7. Input/Output Path Delays
如下,port_spec是輸入/雙向IO,可以有edge identifier。 port_instance是輸出/雙向IO,不能有edge identifier。
8. Conditional Path Delays
語法如下,QSTRING作為Condition Labels是可選的。
特別需要注意的是,在none of the conditions specified for the path in the model are TRUE but a signal must still be propagated over the path,因此,CONDELSE可以用來指定條件脫靶的情況: CONDELSE ( IOPATH port_spec port_instance delval_list )
9. Condition Labels
QSTRING作為Condition Labels是可選的,有些EDA工具反標的時候可能會用Condition LabelsName進行占位。
10. Output Retain Delays
輸出端口output/bidirectional port的數據在輸入發生變化后保持的時間,通常發生在memory/register file的數據選擇端/地址端到數據輸出端的路徑。
?
第一個delval(4,5,7)是rising trigger情況下的do,從0到X的延時; 第二個delval(5,6,9)是falling trigger情況下的do,從1到X的延時;
11. Port Delays
12. Interconnect Delays
13. Device Delays
下文繼續講解SDF文件的Timing ChecksEntries、Timing Environment Entries兩個部分
(一)SDF3.0Timing Checks主要分以下兩種:
VCS/NC-Verilog后仿真在timing violation時報出warning;
Timing Sign-Off工具報出timing check violations;
以時序分析工具Sign-Off為主,后仿為輔,SDF3.0Timing Checks具體的類型如下:
1. Setup Timing Check
2. Hold Timing Check
3. SetupHold Timing Check
注意,示例中~reset必須為真(Ture),timing check才會進行,此外,12是建立時間要求,9.5是保持時間要求。
4. Recovery Timing Check
5. Removal Timing Check
6. Recovery/Removal Timing Check
示例中,recovery time為1.5個time unit,removal time為0.8個time unit。
7. Skew Timing Check
8. Width Timing Check
示例中,第一個minimum pulse width檢查是posedge clock驅動的high phase;第二個minimum pulse width檢查是negedge clock驅動的low phase;
9. Period Timing Check
示例中,兩個連續上升沿之間或兩個連續下降沿之間的最小Cycle時間。
10. No Change Timing Check
示例中,addr提前write下降沿4.5個time unit, addr晚于write上升沿3.5個time unit。
(二)SDF3.0Timing Environment Entries
SDF3.0Timing Environment Entries分成Constraints與Timing Environment兩個部分,首先解析Constraints。
1.Constraints
首先,SDF3.0Timing Environment包括以下幾類constraints:
a)Path Constraint
針對timing analysis中發現的關鍵路徑添加的約束,PR工具可以利用這些約束優化physical design,該約束指定路徑的最大延時; 如下圖, y.z.i3是path起點,a.b.o1是path終點,25.1是起點和終點之間的maximum rise delay,15.6是起點和終點之間的maximum fall delay。
?
b)Period Constraint
時鐘樹上common clock到其驅動的leaf cell的路徑的最大延遲約束。
?
c)Sum Constraint
顧名思義,指的是幾條路徑的延時之和。示例中,約束兩條net的延時之和小于67.3個time unit。
d)Skew Constraint
2.Timing Environment
SDF3.0Timing Environment Entries分成Constraints與Timing Environment兩個部分,上文解析了Constraints,現在解析Timing Environment。Timing Environment包含以下4點約束
a)Arrival Time
b)Departure Time
c)Slack Time
d)Waveform Specification
? ?
審核編輯:劉清
-
EDA工具
+關注
關注
4文章
267瀏覽量
31789 -
脈沖信號
+關注
關注
6文章
398瀏覽量
36956 -
低電平
+關注
關注
1文章
115瀏覽量
13269
原文標題:一文講透芯片后仿中的SDF
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論