SDF文件是在VCS/NC-Verilog后仿真運(yùn)行時(shí)將STD/IO/Macro門級(jí)verilog中specify的延遲信息替換為QRC/Star-RC抽取的實(shí)際物理延時(shí)信息。如果SDF文件的條件信息在verilog的specify中沒有的話,就會(huì)報(bào)SDFCOM_INF的warning,意思是IOPATH not found。
本文解析SDF的Header Section信息、Cell Entries信息,尤其重點(diǎn)講解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,設(shè)計(jì)頂層名
3. Date Entry,SDF生成日期,PT或Tempus產(chǎn)生
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官方解釋如下
下文繼續(xù)講解SDF文件的第二部分Cell Entries:
完整的Delay Entries信息格式如下:
PATHPULSE
PATHPULSEPERCENT
ABSOLUTE Delays
INCREMENT Delays
1. PATHPULSE 舉例說明:
當(dāng)從i1到o1輸出的低電平脈沖小于13ns時(shí),該低電平脈沖直接被忽略;
當(dāng)從i1到o1輸出的低電平脈沖介于13ns~21ns時(shí),輸出為X態(tài);
當(dāng)從i1到o1輸出的低電平脈沖大于21ns時(shí),正常輸出低電平;
2. PATHPULSEPERCENT
本質(zhì)上和PATHPULSE是一回事,只不過是按照path延時(shí)比例來計(jì)算什么時(shí)候丟棄輸入脈沖寬度不足的信號(hào)(pulse rejection limit),什么時(shí)候?qū)⑤斎朊}沖寬度不足的信號(hào)顯示為X態(tài)(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中的物理延時(shí)數(shù)據(jù)就是用來替換verilog specify中的延時(shí)數(shù)據(jù)的。
4. INCREMENT Delays
用來疊加在verilog specify中的延時(shí)數(shù)據(jù)上的,INCREMENT Delays是存在負(fù)數(shù)的情況的,疊加后的延時(shí)若是負(fù)數(shù)的話,某些EDA工具可能不支持或直接強(qiáng)制延時(shí)為0。
上面介紹了SDF3.0的Header Section以及Cell Entries的Delay Entries部分內(nèi)容,下面繼續(xù)解析Delay Entries剩下的部分。
5. Delay Definition Entries
ABSOLUTE and INCREMENT delays都采用同樣的Delay Definition結(jié)構(gòu),其結(jié)構(gòu)語法如下:
6. Specifying Delay Values
Delay Values在delval_list里面指定,最多一共有12個(gè)小括號(hào),每個(gè)小括號(hào)里面有3個(gè)值,用":"隔開,分別代表minimum、typical、maximum的延時(shí)值;在delval_list里面包含如下情況:
若12個(gè)delval值都指定了,那么每一個(gè)delval分別代表:
若2個(gè)delval值被指定,第一個(gè)delval代表01("rising")延時(shí)值,第二個(gè)delval代表10("falling")延時(shí)值; 若3個(gè)delval值被指定,第一個(gè)delval代表01("rising")延時(shí)值,第二個(gè)delval代表10("falling")延時(shí)值,第三個(gè)delval代表-Z("Z transition")延時(shí)值; 若6個(gè)delval值被指定,那么它們分別代表01、10、0Z、Z1、1Z、Z0; 舉例說明,如下,IO PATH有6個(gè)delval值被指定:
但0-1, 1-0的延遲都缺省,后面四個(gè)括號(hào)分別對(duì)應(yīng)0Z、Z1、1Z、Z0,這種語法SDF3.0是支持的,annotator工具反標(biāo)的時(shí)候就不會(huì)替換verilog specify的0-1, 1-0轉(zhuǎn)換延遲值。
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工具反標(biāo)的時(shí)候可能會(huì)用Condition LabelsName進(jìn)行占位。
10. Output Retain Delays
輸出端口output/bidirectional port的數(shù)據(jù)在輸入發(fā)生變化后保持的時(shí)間,通常發(fā)生在memory/register file的數(shù)據(jù)選擇端/地址端到數(shù)據(jù)輸出端的路徑。 ?
第一個(gè)delval(4,5,7)是rising trigger情況下的do,從0到X的延時(shí); 第二個(gè)delval(5,6,9)是falling trigger情況下的do,從1到X的延時(shí);
11. Port Delays
12. Interconnect Delays
13. Device Delays
下文繼續(xù)講解SDF文件的Timing ChecksEntries、Timing Environment Entries兩個(gè)部分
(一)SDF3.0Timing Checks主要分以下兩種:
VCS/NC-Verilog后仿真在timing violation時(shí)報(bào)出warning;
Timing Sign-Off工具報(bào)出timing check violations;
以時(shí)序分析工具Sign-Off為主,后仿為輔,SDF3.0Timing Checks具體的類型如下:
1. Setup Timing Check
2. Hold Timing Check
3. SetupHold Timing Check
注意,示例中~reset必須為真(Ture),timing check才會(huì)進(jìn)行,此外,12是建立時(shí)間要求,9.5是保持時(shí)間要求。
4. Recovery Timing Check
5. Removal Timing Check
6. Recovery/Removal Timing Check
示例中,recovery time為1.5個(gè)time unit,removal time為0.8個(gè)time unit。
7. Skew Timing Check
8. Width Timing Check
示例中,第一個(gè)minimum pulse width檢查是posedge clock驅(qū)動(dòng)的high phase;第二個(gè)minimum pulse width檢查是negedge clock驅(qū)動(dòng)的low phase;
9. Period Timing Check
示例中,兩個(gè)連續(xù)上升沿之間或兩個(gè)連續(xù)下降沿之間的最小Cycle時(shí)間。
10. No Change Timing Check
示例中,addr提前write下降沿4.5個(gè)time unit, addr晚于write上升沿3.5個(gè)time unit。
(二)SDF3.0Timing Environment Entries
SDF3.0Timing Environment Entries分成Constraints與Timing Environment兩個(gè)部分,首先解析Constraints。
1.Constraints
首先,SDF3.0Timing Environment包括以下幾類constraints:
a)Path Constraint
針對(duì)timing analysis中發(fā)現(xiàn)的關(guān)鍵路徑添加的約束,PR工具可以利用這些約束優(yōu)化physical design,該約束指定路徑的最大延時(shí); 如下圖, y.z.i3是path起點(diǎn),a.b.o1是path終點(diǎn),25.1是起點(diǎn)和終點(diǎn)之間的maximum rise delay,15.6是起點(diǎn)和終點(diǎn)之間的maximum fall delay。 ?
b)Period Constraint
時(shí)鐘樹上common clock到其驅(qū)動(dòng)的leaf cell的路徑的最大延遲約束。 ?
c)Sum Constraint
顧名思義,指的是幾條路徑的延時(shí)之和。示例中,約束兩條net的延時(shí)之和小于67.3個(gè)time unit。
d)Skew Constraint
2.Timing Environment
SDF3.0Timing Environment Entries分成Constraints與Timing Environment兩個(gè)部分,上文解析了Constraints,現(xiàn)在解析Timing Environment。Timing Environment包含以下4點(diǎn)約束
a)Arrival Time
b)Departure Time
c)Slack Time
d)Waveform Specification ? ?
審核編輯:劉清
-
EDA工具
+關(guān)注
關(guān)注
4文章
273瀏覽量
32833 -
脈沖信號(hào)
+關(guān)注
關(guān)注
6文章
402瀏覽量
37627 -
低電平
+關(guān)注
關(guān)注
1文章
189瀏覽量
13670
原文標(biāo)題:一文講透芯片后仿中的SDF
文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄

[1.3.1]--信息安全模型:信息在傳輸、存儲(chǔ)、處理過程中保護(hù)信息的CIA



CAN報(bào)文解析需要知道DBC的哪些信息排序方式
請(qǐng)問HarmonyOS編程如何獲取手機(jī)信息的基站小區(qū)Cell值?
什么是Cell
如何將HTTP里面的Header信息記錄到訪問日志里
詳解芯片SDF文件 MCU芯片全流程設(shè)計(jì)

芯片后仿之SDF 3.0解析

評(píng)論