ICG結(jié)構(gòu)知識
ICG timing check 的瓶頸
在不人工干預(yù)的情況下,tool默認(rèn)會嘗試把reg1的CK pin和Reg2的CK pin做平。但是靜態(tài)時序分析時,reg1→ICG也會做時序check;所以,ICG會天然存在一個很大的clock skew,導(dǎo)致建立時間違例。
如何解決呢?
在place階段,在ICG的CK pin設(shè)置一個負(fù)的latency,這個負(fù)的latency的值可以大概等于CTS之后T3的delay大小;這樣就可以讓tool在給reg1的CK pin的樹長識別時,會盡力將T1(即reg1的launch path)做短至少T3(ICG→reg2的時鐘樹長度)的大小。
Place階段工具也會考慮時鐘樹skew引入的時序問題,讓某些cell盡可能的靠近和不要在path上過多插入delay。
Innovus命令:
set_cloCK_latency -0.300 [get_pins ICG/CK]
在CTS階段,在Reg1的CK pin上設(shè)置一個insert delay,這就是所謂的floating pin,這個insert delay的值大概也等于CTS后T3(ICG→reg2的時鐘樹長度)的大小。
Innovus命令:
set_ccopt_property insertion_delay 0.300 -pin reg1/CK
在timing path中為何ICG的delay跟一個組合邏輯似的
如下圖所示,ICG在reg2icg的timing path中只體現(xiàn)一個組合邏輯的delay。其實(shí)icg就是一個組合邏輯。
芯片工作時,時鐘電平本身一直在高低變化,因?yàn)榫д癫粫V拐駝樱坏獻(xiàn)CG的ENABLE信號是固定在高電平1(開啟模塊時鐘)或者低電平0(關(guān)斷模塊時鐘)。
ICG的兩個輸入端一個是ENABLE信號,一個是clock信號,因?yàn)镋NABLE的電平是固定的(例如固定在高電平1),所以每個時鐘周期內(nèi)鎖存器向后面輸出的信號一直是固定的(信號電平等于ENABLE 信號電平),ICG的delay大概就是一個鎖存器環(huán)路的delay(結(jié)合鎖存器結(jié)構(gòu)一看便知)。
為何在timing path中ICG一般不體現(xiàn)timing borrow
ICG可以是latch + AND組成;或reg + AND組成。肯定要用一個時序器件,因?yàn)镮CG的ENABLE信號是上一級reg產(chǎn)生的,這樣就和ICG組成了兩級同步電路,可以規(guī)避亞穩(wěn)態(tài)的風(fēng)險。
為什們ICG一般用latch + AND組合,而不是reg + AND組合呢?我個人理解,一方面latch的面積更小,功耗更低;另一方面,ICG上很容易有建立時間違例,latch有半個時鐘周期的timing borrow可以用,可以作為ICG時序瓶頸的“緊急鑰匙”。
那為什么ICG 的timing borrow一般不打開呢?因?yàn)槿绻蜷_了,ICG就由邊沿觸發(fā)check變成電平觸發(fā)check,采集到亞穩(wěn)態(tài)的概率增大,可能導(dǎo)致clock信號不穩(wěn)定,影響電路狀態(tài)。
在INNOVUS中怎么打開ICG timing check的timing borrow:
-
鎖存器
+關(guān)注
關(guān)注
8文章
922瀏覽量
42122 -
同步電路
+關(guān)注
關(guān)注
1文章
60瀏覽量
13483 -
時鐘樹
+關(guān)注
關(guān)注
0文章
56瀏覽量
10964 -
CTS
+關(guān)注
關(guān)注
0文章
35瀏覽量
14386
發(fā)布評論請先 登錄
組合邏輯太多了
【技巧分享】時序邏輯和組合邏輯的區(qū)別和使用
在FPGA中何時用組合邏輯或時序邏輯
Timing Groups and OFFSET Const
Path-Specific Timing Constrain
Skew Correction Using Delay Li

邏輯分析儀中Timing-State存儲方式的應(yīng)用

組合邏輯電路設(shè)計(jì)步驟詳解(教程)

EDA技術(shù)在組合邏輯電路中的設(shè)計(jì)概述

不同VT cell的delay差異
組合邏輯電路中的危害

數(shù)字電路中組合邏輯電路設(shè)計(jì)步驟詳解
如何做一條合格的path?同一條path在物理設(shè)計(jì)不同階段的變化

評論