首先,min_pulse_width, 是檢查時序邏輯中clock信號的高電平與低電平的寬度是否超過了規定的最窄寬度。
對於這個check,是不能夠忽略的。理論上必須fix。但是由於在signoff是會加壹些derating,uncertainty, 以及各種corner,因為存在壹定的margin,所以,如果有違例,但是芯片回來卻沒有問題,也不必驚訝,那是因為這些違例尚在margin的覆蓋範圍之內。
強烈建議不要帶著mpw違例進行signoff,而如果必須如此,需謹慎評估風險。
min_period
既然有了min_pulse_width, 為什麽對於sram,還有個min_period的check?
這個要從sram的原理說起。
六管sram bitcell
對於壹個常見的六管sram為例。
那麽,對於這個bitcell的讀取過程如下:
假定存儲的內容為1, 即在Q處的電平為高. 讀周期之初,兩根位線預充值為邏輯1, 隨後字線WL充高電平,使得兩個訪問控制晶體管M5與M6通路。第二步是保存在Q的值傳遞給位線BL在它預充的電位,而瀉掉(BL非)預充的值,這是通過M1與M5的通路直接連到低電平使其值為邏輯0 (即Q的高電平使得晶體管M1通路). 在位線BL壹側,晶體管M4與M6通路,把位線連接到VDD所代表的邏輯1 (M4作為P溝道場效應管,由於柵極加了(Q非)的低電平而M4通路). 如果存儲的內容為0, 相反的電路狀態將會使(BL非)為1而BL為0. 只需要(BL非)與BL有壹個很小的電位差,讀取的放大電路將會辨識出哪根位線是1哪根是0. 敏感度越高,讀取速度越快。
簡單來說,SRAM在讀取之前需要對BL BLB進行預充電(precharge), 然後打開WL,然後BL,BLB才是被送入sense amp進行比較。
再來看時序圖。
時序圖
當sram讀取之後,BL/BLB需要再次重新進行預充電,以便進行下壹次讀取。
那麽這個min period,就是SRAM本身的delay(CLK->RD)再加上BL/BLB預充電的時間。
因此回到最初的問題。
為什麽sram有個min_period的check。
答案是為了給sram的bitline進行預充電留足時間。
原文鏈接:/graymount/article/details/106132592