在低于40納米的超深亞微米VLSI設計中,時鐘樹網絡在電路時序收斂、功耗、PVT變異容差和串擾噪聲規避方面所起的作用要更重要得多。高性能DSP芯片會有大量關鍵時序路徑,會要求時鐘偏斜超低的全局時鐘分布。兩點間時鐘偏斜若不合要求,特別是如果這些點間還存在數據路徑的話,可能會限制時鐘頻率或導致功能性錯誤。
本文中所描述的是以500MHz時鐘頻率運行的DSP核心,多數時序關鍵路徑都有超過20級的邏輯層。考慮到時鐘抖動率和建立時間,滿足高頻需求真的是項非常具有挑戰性的任務。如果使用傳統時鐘樹設計方法,我們至多能獲得全局時鐘偏斜為150ps的時鐘樹。而在早期STA階段,我們會發現由于時鐘偏斜不平衡而導致的從-100ps到0ps的建立時序違規高達1萬多條。這些均使得偏斜較低的時鐘設計方法成為了一種迫切需要,而且還要求這種方法應能夠改善時鐘PVT變異容差并降低功耗。
用以衡量DSP時鐘樹分布結果質量(QOR)的參數主要有三個:一是RC分布擴展;二是插入延時擴展;三是同級延時擴展。我們將比較新時鐘設計方法與傳統方法,產生時鐘衡量指標。
時鐘設計
本文中40nm 500MHz DSP設計使用了一種可覆蓋整個功能塊的單節點、雙相全局時鐘,在這個案例下我們將其稱為CLK。DSP的時鐘結構如圖1所示,CLK可驅動超過 5.3萬的觸發器,因此我們建議采用一種有效的設計方法來創建更魯棒的低偏斜時鐘。
圖1 DSP功能塊的時鐘結構
時鐘緩沖器選擇
驅動強度超低和超高的時鐘緩沖器都是隱藏的。
隱藏超高驅動強度單元有以下優勢:降低由于打開關閉高驅動單元而導致的局部時鐘樹功耗和動態IR違規;縮短每級時鐘的有效網路長度。
隱藏超低驅動強度單元有以下優勢:減少時鐘樹根上緩沖器總數;避免EM問題的潛在風險性。它也將帶來一些劣勢,比如:可能潛在地提高時鐘插入延時;可能導致同樣插入延時具有更高時鐘樹功耗(同時減輕局部動態IR降熱點)。
在此我們還禁用了時鐘樹反相器(CTI),因為它將導致毫無差別的時鐘樹拓撲結構。而且我們還發現微捷碼工具用來創建只有緩沖器(buffer-only)的時鐘樹拓撲結構會比用來創建混合型時鐘樹拓撲結構更有效。
時鐘斜率控制
非可控性斜率違規不僅會導致時鐘插入延時的增加和電學DRC違規,而且還會造成不符合通道熱載流子規則的設計違規。在本文中,我們使用了以下兩種方法來控制好時鐘斜率:
1)限制每個時鐘樹單元(icg、ctb) 的扇出。
2) 在CTS過程中使用微捷碼Talus命令明確定義時鐘樹斜率范圍,當依據全局‘斜率’范圍所設置的斜率范圍還不如這個范圍嚴格時則以這個范圍為準。
force limit slew $m/mpin:clk -clock 250p -context $m
增強區別于微捷碼自帶“fix clock”的選項/方法
微捷碼提供了一個名稱為‘fix clock’的可預先創建時鐘插入腳本。微捷碼自帶CTS圍繞兩個命令為中心:i)“run route clock”(RRC) ,創建初始時鐘樹;ii) “run gate clock”(RGC),調整RRC所創建的時鐘樹。
RRC有個默認值為2.0的隱藏選項。時鐘樹布線器可根據這個選項的指示,通過2.0因子超速驅動時鐘單元,其效果會比根據其時序弧報告指示來得更好。雖然這個選項可能用于高驅動單元時是極為理想,但當高驅動單元處于隱藏狀態時它達不到最佳結果。如果我們發現時鐘樹處于緩沖狀態時,那可能就是出于這項功能的原因。
對該設計進行的各項實驗均顯示出,這種開關的最佳值為1.5。在本文中,微捷碼自帶CTS腳本通過編輯可加入這個隱藏的開關。
到RRC的最后,默認使用標準全局和信號布線器執行時鐘布線。微捷碼自帶CTS中標準全局和信號布線器用于65納米以上設計可能已足夠準確,但若用于40納米設計則還需要在RGC之前執行精確的詳細布局和高強度全局布線,這樣才可確保到時RGC時有準確的時序信息來調整時鐘偏斜。
RGC后,建議再進行一次詳細布局和高強度全局布線來完成RGC中新添加的時鐘偏斜緩沖器的布局,這樣才能為CTS后進一步時序優化提供必要時序信息。
時鐘串擾規避
在本文中,一直使用非默認時鐘網路規則來降低串擾影響。如下所示,選擇較高MET層進行時鐘網路布線:
rule layer preference Mn clock /sr70
rule layer preference Mn+1 clock /sr70
我們一直建議采用具有2倍寬和3倍間距的NDR(Non-default Rule)來降低耦和度。事實證實,這對PTSI有很大幫助。微捷碼工具中所定義的非默認規則。這種規則只應用于MET3及更高層,同樣還只應用于時鐘網絡中非葉級網路。
時鐘分析
時鐘分析是采用已開發的腳本,產生時鐘樹分布指標,*估時鐘樹的結果質量(QOR)。
RC分布擴展
RC延時分布是可用以改善設計期間時鐘樹魯棒性的第一個指標。時鐘樹RC延時百分比等于互連線延時在每個接收端(sink)總插入延時中所占比率。
對于每個時鐘網路:
%RC delay = [RC delay ]/[RC delay + Gate delay]
窄(<10%)分布意味著良好的跨角點時鐘延時追蹤。互連線在時鐘路徑占主導地位與門在時鐘路徑占主導地位相交疊的機率比較小。這種分析不包括數據路徑時鐘樹。
圖2顯示了一種更好的RC擴展分析 。在圖3中,采用了微捷碼自帶CTS的NOM角點RC擴展率在25%以上,而圖2的則在15%左右。在圖3中,MAX 角點RC擴展率在10%左右,而圖2的則在5%左右。
圖 2 使用新時鐘設計方法的RC擴展
圖3 使用微捷碼自帶CTS的RC擴展
插入延時擴展
插入延時分布是可用以改善設計期間時鐘樹魯棒性的第二個指標。不同角點的插入延時通過使用以下方法實現w.r.t WEAK角點(QC_MAX)標準化。
1) 每個時鐘接收端的插入延時是依據不同角點來計算的。稱呼延時為,Di,corner
2) 一個角點的插入延時率等于每個接收端插入延時除以WEAK角點插入延時。
Ri,corner = Di,corner/Di,WEAK
3) 上述插入延時率的平均值是針對每個角點來計算。
Avgcorner= ∑iRi,corner/N, 在此N系指接收端的數量
4) 每個接收端的插入延時率等于每個角點平均率的標準值。
NRi,corner=Ri,corner/Avgcorner
5) 現在,{NRi,corner}的劃分如圖4和圖5所示。WEAK角點結構位于y=1這一條直線。
圖4顯示了一個50ps的較低擴展,這意味著更好的跨角點延時追蹤。在圖5中,微捷碼自帶CTS結果顯示了超過150ps的較高擴展。
圖4使用新時鐘設計方法的插入延時擴展
圖5使用微捷碼自帶CTS的插入延時擴展
同級延時擴展
同級延時分布是可用以*估設計期間時鐘樹魯棒性的第三個指標。它是通過以下程序進行計算:
1)對于每個接收端,讓Di,corner 作為插入延時,讓Li 作為時鐘樹深度。
2) 每個接收端平均級延時為
Si,corner=Di,corner/Li
級被定義為一個緩沖器和其驅動的互連線。
3) 計算所有“平均級延時”的全局平均值,
ESDcorner= ∑iSi,corner/N
4) 計算同級延時,
ESi,corner=Di,corner/ESDcorner
5) 理想上,每個接收端應可跨角點地擁有同等的級數,例如,對于接收端j,
ESj,corner1=ESj,corner2=…
圖6和圖7所展示的例子是相同級數以及兩種實現方式的擴展。在圖6中,ESD擴展擁有從18到23的一種更好分布。在圖7中,微捷碼自帶CTS結果顯示了從27到37的一種分布。
圖6使用新時鐘設計方法的 ESD擴展
圖7使用微捷碼自帶CTS的ESD擴展
新時鐘設計方法已經實施于40納米DSP核心。事實證明,使用這種方法的CTS單元門數要比使用微捷碼自帶CTS工具的少了17%。魯棒性低偏斜時鐘樹分布現已成功實現。實驗結果顯示,新設計方法在降低保持緩沖器門數方面可起到很好效果。同時這種設計方法還可用于H-tree時鐘結構。未來工作中,我們還將部署更多分析來改善功耗。
-
dsp
+關注
關注
553文章
7998瀏覽量
348942 -
時鐘
+關注
關注
10文章
1733瀏覽量
131485 -
觸發器
+關注
關注
14文章
2000瀏覽量
61158
發布評論請先 登錄
相關推薦
評論