Min pulse width定義
最小脈沖寬度檢查可確保時鐘信號的寬度足夠寬,以便采集到正確的數據,保證設計功能。即為了獲得穩定的輸出,需要確保時鐘信號寬度至少達到某個“最小寬度”。比如lib中就對寄存器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.
以下圖為例,一個時鐘信號CLK,經過六級普通buffer(各自的rise time和fall time是不相同的)到達一個寄存器的CK 端。我們來計算下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文件中對寄存器的CLK pin和reset pin均有一個默認的min pulse width check值。在STA分析時工具會自動載入進行check。如圖1所示,index_1為input transition。
圖1 lib中min_pulse_width屬性定義
- SDC約束
除了采用lib文件中默認的min pulse width值check外,我們還可以通過如下SDC命令來設置特殊的約束條件。
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能夠驅動較長的net以及更多的fanout
普通buffer如何導致pulse width violation?
圖2顯示了Wp = 100nm&Wn = 100nm的Buffer電路的示意圖。β比率(PMOS的寬度與NMOS的寬度的比率)由于NMOS的遷移率高于PMOS,因此上升時間大于下降時間。這個結論是根據電流公式得出的,不懂的請移步模擬電路查閱。
圖2 Unbalanced Buffer電路原理圖
這里的每個buffer都需要更多的時間來充電(相比放電過程)。輸入為占空比為50%的周期為4ns的脈沖信號。當時鐘信號通過buffer chain傳播時,脈沖寬度如下圖4所示減少相當多。最后一個buffer的輸出具有相同的周期,但占空比發生了變化。在最壞的情況下,這種情況可能會小于設計所需的脈沖寬度(最小脈沖寬度)。
圖3 Unbalanced Buffer Chain
圖4 pulse width reduction
Balanced buffers have equal rise and fall time
為了使得buffer的上升和下降時間一致,PMOS的寬度應該約為NMOS的兩倍(具體倍數關系取決于工藝)。Balance buffer電路結構圖如圖5所示。圖6為一堆balanced buffer級聯的buffer chain的輸出波形。從輸出波形看到,當我們在clock path上使用這種balanced buffer,輸出時鐘信號周期未發生變化且占空比仍然為1:1,即不會出現pulse width violation。
圖5 balance buffer電路結構圖
圖6 Balanced Buffer Chain 輸出波形
unbalanced inverter有沒有min pulse width問題?
如果在時鐘路徑中使用偶數個反相器,一對反相器上升和下降時間會相互補償,所以脈沖寬度并不會改變。所以反相器輸出不會導致脈沖寬度違規。
圖7所示為一個反相器的電路結構圖。其中Wp = 100nm,Wn = 300nm。根據P管和N管的尺寸,我們得知上升時間比下降時間小得多。
圖7 Unbalanced 反相器原理圖
圖8所示為一個十級反相器級聯的電路圖。圖9為第九級和第十級反相器輸出波形圖。從圖中可以得知,unbalance inverter同樣也不會導致min pulse width問題。
圖8 unbalanced inverter chain
圖9 第九級,第十級反相器輸出波形圖
所以,在做時鐘樹綜合時,我們往往選用clock inverter來長clock tree。
-
寄存器
+關注
關注
31文章
5342瀏覽量
120277 -
SDC
+關注
關注
0文章
49瀏覽量
15534 -
VDD
+關注
關注
1文章
312瀏覽量
33207 -
NMOS管
+關注
關注
2文章
121瀏覽量
5407 -
PMOS管
+關注
關注
0文章
83瀏覽量
6633
發布評論請先 登錄
相關推薦
評論