Min pulse width定義
最小脈沖寬度檢查可確保時(shí)鐘信號(hào)的寬度足夠?qū)挘员悴杉秸_的數(shù)據(jù),保證設(shè)計(jì)功能。即為了獲得穩(wěn)定的輸出,需要確保時(shí)鐘信號(hào)寬度至少達(dá)到某個(gè)“最小寬度”。比如lib中就對(duì)寄存器Flipflop的CLK pin有min pulse width的check。
- High pulse width
If you need a formal definition of the term, it is the interval between the rising edge of the signal crossing 50% of VDD and the falling edge of the signal crossing 50% of VDD.
- Low pulse width
If talking in terms of low signals, it is the the interval between falling edge of the signal crossing 50% of VDD and the rising edge of signal crossing 50% of VDD.
以下圖為例,一個(gè)時(shí)鐘信號(hào)CLK,經(jīng)過六級(jí)普通buffer(各自的rise time和fall time是不相同的)到達(dá)一個(gè)寄存器的CK 端。我們來計(jì)算下high pulse width,low pulse width以及判斷是否存在min pulse width違例(uncertainty:80ps Reg ck pin requirement min pulse width:0.420ns)。
High pulse width = 0.5 + (0.049-0.056) + (0.034 -0.039) + (0.023-0.026) + (0.042-0.046) + (0.061 – 0.061) + (0.051-0.054) = 0.478ns
Low Pulse width = 0.5 + (0.056 – 0.049) + (0.038 – 0.034) + (0.026 – 0.023) + (0.046 – 0.042) + (0.061 – 0.061) + (0.054 – 0.051) = 0.522ns
high pulse width = 0.478-0.080 = 0.398ns (小于0.420ns)
因此, 存在min pulse width violation 。
Min pulse width檢查方式
- Liberty文件
Liberty文件中對(duì)寄存器的CLK pin和reset pin均有一個(gè)默認(rèn)的min pulse width check值。在STA分析時(shí)工具會(huì)自動(dòng)載入進(jìn)行check。如圖1所示,index_1為input transition。
圖1 lib中min_pulse_width屬性定義
- SDC約束
除了采用lib文件中默認(rèn)的min pulse width值check外,我們還可以通過如下SDC命令來設(shè)置特殊的約束條件。
set_min_pulse_width -high 2 [get_clocks clk]
set_min_pulse_width -low 1 [get_clocks clk]
理想clock buffer/inverter的特性
- Equal rise and fall times
- Less delay variations with PVT and OCV
- Clock buffer能夠驅(qū)動(dòng)較長的net以及更多的fanout
普通buffer如何導(dǎo)致pulse width violation?
圖2顯示了Wp = 100nm&Wn = 100nm的Buffer電路的示意圖。β比率(PMOS的寬度與NMOS的寬度的比率)由于NMOS的遷移率高于PMOS,因此上升時(shí)間大于下降時(shí)間。這個(gè)結(jié)論是根據(jù)電流公式得出的,不懂的請(qǐng)移步模擬電路查閱。
圖2 Unbalanced Buffer電路原理圖
這里的每個(gè)buffer都需要更多的時(shí)間來充電(相比放電過程)。輸入為占空比為50%的周期為4ns的脈沖信號(hào)。當(dāng)時(shí)鐘信號(hào)通過buffer chain傳播時(shí),脈沖寬度如下圖4所示減少相當(dāng)多。最后一個(gè)buffer的輸出具有相同的周期,但占空比發(fā)生了變化。在最壞的情況下,這種情況可能會(huì)小于設(shè)計(jì)所需的脈沖寬度(最小脈沖寬度)。
圖3 Unbalanced Buffer Chain
圖4 pulse width reduction
Balanced buffers have equal rise and fall time
為了使得buffer的上升和下降時(shí)間一致,PMOS的寬度應(yīng)該約為NMOS的兩倍(具體倍數(shù)關(guān)系取決于工藝)。Balance buffer電路結(jié)構(gòu)圖如圖5所示。圖6為一堆balanced buffer級(jí)聯(lián)的buffer chain的輸出波形。從輸出波形看到,當(dāng)我們?cè)赾lock path上使用這種balanced buffer,輸出時(shí)鐘信號(hào)周期未發(fā)生變化且占空比仍然為1:1,即不會(huì)出現(xiàn)pulse width violation。
圖5 balance buffer電路結(jié)構(gòu)圖
圖6 Balanced Buffer Chain 輸出波形
unbalanced inverter有沒有min pulse width問題?
如果在時(shí)鐘路徑中使用偶數(shù)個(gè)反相器,一對(duì)反相器上升和下降時(shí)間會(huì)相互補(bǔ)償,所以脈沖寬度并不會(huì)改變。所以反相器輸出不會(huì)導(dǎo)致脈沖寬度違規(guī)。
圖7所示為一個(gè)反相器的電路結(jié)構(gòu)圖。其中Wp = 100nm,Wn = 300nm。根據(jù)P管和N管的尺寸,我們得知上升時(shí)間比下降時(shí)間小得多。
圖7 Unbalanced 反相器原理圖
圖8所示為一個(gè)十級(jí)反相器級(jí)聯(lián)的電路圖。圖9為第九級(jí)和第十級(jí)反相器輸出波形圖。從圖中可以得知,unbalance inverter同樣也不會(huì)導(dǎo)致min pulse width問題。
圖8 unbalanced inverter chain
圖9 第九級(jí),第十級(jí)反相器輸出波形圖
所以,在做時(shí)鐘樹綜合時(shí),我們往往選用clock inverter來長clock tree。
-
寄存器
+關(guān)注
關(guān)注
31文章
5325瀏覽量
120054 -
SDC
+關(guān)注
關(guān)注
0文章
48瀏覽量
15528 -
VDD
+關(guān)注
關(guān)注
1文章
311瀏覽量
33123 -
NMOS管
+關(guān)注
關(guān)注
2文章
120瀏覽量
5398 -
PMOS管
+關(guān)注
關(guān)注
0文章
82瀏覽量
6618
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論