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 Labels?Name進(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 Checks?Entries、Timing Environment Entries兩個(gè)部分
(一)SDF3.0?Timing Checks主要分以下兩種:
VCS/NC-Verilog后仿真在timing violation時(shí)報(bào)出warning;
Timing Sign-Off工具報(bào)出timing check violations;
以時(shí)序分析工具Sign-Off為主,后仿為輔,SDF3.0?Timing 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.0?Timing Environment Entries SDF3.0?Timing Environment Entries分成Constraints與Timing Environment兩個(gè)部分,首先解析Constraints。 1.Constraints 首先,SDF3.0?Timing 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.0?Timing 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
實(shí)戰(zhàn)ISP圖像算法效果
知識(shí)星球發(fā)起MCU項(xiàng)目啟動(dòng),大家一起參與MCU項(xiàng)目規(guī)格啟動(dòng)討論,我把設(shè)計(jì)、驗(yàn)證、DFT、后端的知識(shí)點(diǎn)全部羅列出來,大家一起來完善。
以項(xiàng)目驅(qū)動(dòng)的方式介紹MCU芯片全流程設(shè)計(jì)的方法;提煉相關(guān)的檢查列表、signoff checklist的樣本;讓星球成員熟悉SoC架構(gòu)、設(shè)計(jì)流程、開發(fā)進(jìn)度、項(xiàng)目管理;
編輯:黃飛
?
評(píng)論
查看更多