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 Labels?Name進行占位。 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 Checks?Entries、Timing Environment Entries兩個部分
(一)SDF3.0?Timing Checks主要分以下兩種:
VCS/NC-Verilog后仿真在timing violation時報出warning;
Timing Sign-Off工具報出timing check violations;
以時序分析工具Sign-Off為主,后仿為輔,SDF3.0?Timing 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.0?Timing Environment Entries SDF3.0?Timing Environment Entries分成Constraints與Timing Environment兩個部分,首先解析Constraints。 1.Constraints 首先,SDF3.0?Timing 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.0?Timing Environment Entries分成Constraints與Timing Environment兩個部分,上文解析了Constraints,現在解析Timing Environment。Timing Environment包含以下4點約束 a)Arrival Time
b)Departure Time
c)Slack Time
d)Waveform Specification
實戰ISP圖像算法效果
知識星球發起MCU項目啟動,大家一起參與MCU項目規格啟動討論,我把設計、驗證、DFT、后端的知識點全部羅列出來,大家一起來完善。
以項目驅動的方式介紹MCU芯片全流程設計的方法;提煉相關的檢查列表、signoff checklist的樣本;讓星球成員熟悉SoC架構、設計流程、開發進度、項目管理;
編輯:黃飛
?
評論