文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2017.01.016
中文引用格式: 喻賢坤,,姜爽,王磊,,等. 數(shù)字集成電路門控時鐘可靠性研究[J].電子技術(shù)應(yīng)用,,2017,43(1):60-63,,67.
英文引用格式: Yu Xiankun,,Jiang Shuang,Wang Lei,,et al. Research on the reliability of clock-gating clock in digital integrated circuits[J].Application of Electronic Technique,,2017,,43(1):60-63,67.
0 引言
對于超大規(guī)模集成電路來說,功耗指標(biāo)是最重要的技術(shù)參數(shù)之一,。為了降低功耗,,研究出來許多行之有效的方法,包括靜態(tài)多電壓(MV-Design),、動態(tài)電壓頻率縮放(DVFS)[1],、門控電源(Power-Gating)、門控時鐘(Clock-Gating)等,。其中門控時鐘技術(shù)是最早發(fā)展起來,,并且是采用最多的低功耗設(shè)計技術(shù),甚至可以使得電路功耗降低一半以上,,具有實現(xiàn)簡單,、高效的特點。
門控時鐘技術(shù),,是通過在時鐘路徑上增加邏輯門對時鐘進(jìn)行控制(Gating),,使得電路的部分邏輯在不需要工作時停止時鐘樹的翻轉(zhuǎn),而并不影響原本的邏輯狀態(tài)[2],。
如圖1所示,,在插入門控時鐘前,前級寄存器輸出經(jīng)過組合邏輯產(chǎn)生控制信號EN,,EN選擇后級寄存器組的輸入是DATA IN還是其自身的Q,,即選擇更新還是保持?jǐn)?shù)據(jù),可以看出后級寄存器組即使保持?jǐn)?shù)據(jù),,其CLK仍在不停地翻轉(zhuǎn),。插入門控時鐘后,首先后級寄存器組的輸入不再有其自身的Q,,而只有DATA IN,,其次增加了門控邏輯,,EN連接到了門控邏輯,不再用于控制數(shù)據(jù)端,,而是用來控制時鐘端,。當(dāng)需要更新數(shù)據(jù)時,門控打開,,用門控后的時鐘ENCLK來采集新數(shù)據(jù),;而當(dāng)不需要更新數(shù)據(jù)時,門控關(guān)閉,,后級寄存器組的時鐘是靜止的,,并能保持原有數(shù)據(jù)。而當(dāng)一個芯片中有許多類似的邏輯,,并且不是每周期都更新數(shù)據(jù)時,,門控時鐘結(jié)構(gòu)對于降低功耗的貢獻(xiàn)是非常大的。
1 門控時鐘設(shè)計的風(fēng)險和影響
時鐘是集成電路內(nèi)部最重要的邏輯組成部分,,是數(shù)字集成電路的命脈,。門控時鐘是對時鐘路徑的修改,、控制,,因此在門控時鐘設(shè)計時,必須充分考慮門控時鐘帶來的風(fēng)險和影響,。
1.1 門控時鐘帶來功能錯誤的風(fēng)險
門控時鐘控制的對象是寄存器,、存儲器等時序邏輯的時鐘,一旦控制不得當(dāng),,會造成時鐘出現(xiàn)高低電平寬度不足(corruption),,甚至出現(xiàn)毛刺(glitching),帶來時序問題甚至功能錯誤,。
如圖2所示,,一種典型的門控時鐘結(jié)構(gòu)的基本組成部分包括:門控信號EN、被門控時鐘CLK,,二者經(jīng)過鎖存器latch和與門and的邏輯,,形成了門控后時鐘ENCLK。在這個典型結(jié)構(gòu)中,,latch在LG(CLK)為低電平時導(dǎo)通,,在LG(CLK)為高電平時關(guān)閉。在CLK為低電平期間,,and與門輸出結(jié)果一直為0,;在CLK為高電平期間,and與門打開,,但是此時latch已經(jīng)鎖定,,EN信號上即使有意外翻轉(zhuǎn)或者毛刺也不會通過latch傳遞給ENL而造成ENCLK的污染,。
從時序角度來講,發(fā)生風(fēng)險的地方在CLK電平轉(zhuǎn)換的時刻附近,,此時如果EN發(fā)生變化,,latch從低變高的過程會把EN鎖存在latch中,并產(chǎn)生有效的ENL,;由于CLK變高,,就把ENL發(fā)生的變化傳遞給ENCLK,ENCLK上將會出現(xiàn)本不應(yīng)出現(xiàn)的毛刺,,導(dǎo)致功能錯誤,。不滿足時序情況下的門控時鐘時序圖如圖3所示。
如果產(chǎn)生EN的時鐘與ENCLK后級邏輯的時鐘是同一個時鐘,,或是同一時鐘域的時鐘,,圖3中描述的情況是不會發(fā)生的,因為在滿足時序約束的情況下,,同步電路不允許存在這種違反建立保持時間的路徑,,如圖4所示。反之,,如果EN信號來自于異步時鐘域或端口,,則這種情況是一定存在的。
1.2 門控時鐘對測試覆蓋率的影響
在當(dāng)前超大規(guī)模數(shù)字集成電路設(shè)計中,,可測性設(shè)計是必備的設(shè)計流程之一,。可測性設(shè)計的原理就是通過特意設(shè)計的邏輯,,使得電路的內(nèi)部節(jié)點從輸入端口可控制,,并且通過特意設(shè)計的測試向量來激活內(nèi)部潛在故障,然后通過輸出端口可觀測,,從而大幅度提高電路的測試覆蓋率,。
而門控時鐘天然對可測性設(shè)計不友好,因為在測試狀態(tài)下,,增加了門控邏輯的寄存器的時鐘往往是不可控的,。門控時鐘導(dǎo)致被門控邏輯時鐘不可控的示意圖如圖5所示。
在測試狀態(tài)下,,由于產(chǎn)生EN邏輯的前級寄存器無論是否被串入掃描鏈,,寄存器中的值都是由原始輸入值和串行掃描數(shù)據(jù)決定,無法受端口直接控制,,因此門控時鐘的打開和關(guān)閉無法受端口直接控制,,進(jìn)而導(dǎo)致門控時鐘的后級寄存器因為不符合可測性設(shè)計規(guī)則而無法串入掃描鏈,降低測試覆蓋率,。
因此在門控時鐘設(shè)計中必須采取相應(yīng)的措施,,最大程度地消除門控對于可測性設(shè)計的不良影響,。
1.3 門控時鐘對時序的影響
由于門控邏輯在時鐘路徑上額外增加了邏輯,也就額外增加了延時,,會對時鐘樹本身造成影響,;同時,門控邏輯通常包含latch,、or,、and等邏輯結(jié)構(gòu),這些邏輯結(jié)構(gòu)本身也有時序檢查要求,。門控時鐘對時序的影響,,相應(yīng)地分為3個方面:
(1)由于門控時鐘的加入,導(dǎo)致設(shè)計最終無法時序收斂,;
(2)門控時鐘本身邏輯,,最終無法時序收斂;
(3)由于約束不嚴(yán),,導(dǎo)致盡管時序收斂,,但實際上仍然存在風(fēng)險。
2 門控時鐘優(yōu)化技術(shù)
針對前文提出的門控時鐘對電路功能,、可測性和時序3方面的風(fēng)險和影響,,下文將逐一提出可實現(xiàn)的解決方案,通過腳本語言,、設(shè)計約束,、設(shè)計優(yōu)化等多種手段,規(guī)避門控時鐘帶來的風(fēng)險,,最大程度降低門控時鐘對于可測性和時序的影響,并最終實現(xiàn)功耗最優(yōu)化,。
2.1 異步門控時鐘和端口門控時鐘的優(yōu)化技術(shù)
從圖3中可以看出,,當(dāng)門控信號和被門控時鐘存在不確定的相位關(guān)系時,就可能出現(xiàn)問題,,這類門控信號有兩個可能來源:異步時鐘域和端口,。為了避免此種現(xiàn)象的發(fā)生,有兩個方法:
(1)采用LEDA,、CDC等工具進(jìn)行跨時鐘域信號檢查,,確認(rèn)不存在異步時鐘域間的數(shù)據(jù)交互;如果必須采用異步時序,,則在異步界面上增加兩級同步寄存器,,消除亞穩(wěn)態(tài);
(2)在邏輯綜合或時序分析工具中,,利用腳本語言(例如Tcl)將設(shè)計中所有產(chǎn)生門控信號的前級邏輯的時鐘,、被門控時鐘抓取出來,。具體操作:采用all_fanin -to [get_pins -hierarchical -filter "full_name =~ */clk_gate*_reg*/EN"] -flat -startpoints_only抓取所有門控信號EN的前級寄存器的時鐘,采用get_pins -of [get_cell $latch_name/main_gate] -filter "full_name =~ */B"抓取被門控時鐘[3],。
如果產(chǎn)生門控信號的時鐘,、被門控的時鐘不是同一個時鐘,或同一個時鐘的不同沿,,或產(chǎn)生門控信號的是端口輸入,,則為異步或端口門控時鐘。如果存在圖6中的情況,,則立即可以發(fā)現(xiàn),。
在第一次綜合結(jié)束后,通過命令確認(rèn)上述3種極有可能造成邏輯錯誤的門控時鐘情況后,,采用綜合工具的命令(set_clock_gating_registers -exclude_instances),,將上述門控邏輯屏蔽掉,重新進(jìn)行綜合,。經(jīng)過上述流程,,可以保證所有門控邏輯:門控信號和被門控時鐘永遠(yuǎn)保持穩(wěn)定的、合法的時序關(guān)系,,門控時鐘后級邏輯可以穩(wěn)定正常地工作,,不會因為被門控時鐘上的毛刺而產(chǎn)生功能錯誤,極大地提高了設(shè)計的可靠性,。
2.2 門控時鐘可測性設(shè)計的優(yōu)化技術(shù)
門控時鐘可測性設(shè)計的優(yōu)化技術(shù)包含兩方面:
(1)在沒有加入可控制邏輯的情況下,,門控時鐘驅(qū)動的后級寄存器的時鐘在測試狀態(tài)下不可控。針對此問題,,在門控時鐘插入過程中,,增加門控時鐘旁路結(jié)構(gòu),使得門控時鐘在測試狀態(tài)下保持常通,,如圖7所示,。
在門控邏輯上增加了一個輸入管腳TE和一個旁路的或門,TE通常連接頂層的測試模式信號test_mode,。在測試狀態(tài)下,,test_mode為固定高電平,因此latch的輸入LD為固定高電平,,ENL為固定高電平,,CLK直接傳遞給ENCLK。因此在測試模式下,,ENCLK與CLK保持一致,,門控邏輯被旁路掉了,時鐘從外部輸入端口可控,不會對可測性造成影響,。
(2)選擇最優(yōu)化的門控時鐘可控制邏輯,,實現(xiàn)可測性的最優(yōu)化。提高門控時鐘可測性的方法,,也可以在latch的LQ端進(jìn)行旁路,,并且采用頂層的scan_enable進(jìn)行控制,如圖8所示,。
對比圖7和圖8可以看出,,or邏輯在latch之前還是之后,對于旁路時鐘的作用沒有區(qū)別,,但是考慮到or邏輯在latch之前可以多一次同步,,因此一般把or邏輯放在latch之前,通過命令set_clock_gating_style-control_point before實現(xiàn),;在控制信號方面,,test_mode在測試狀態(tài)中都是固定的,而scan_enable信號在shift和capture下會出現(xiàn)翻轉(zhuǎn),,對于激活故障是有利的,,能夠有效地提高測試覆蓋率,因此選擇scan_enable作為控制信號,,通過命令set_clock_gating_style -control_signal scan_enable實現(xiàn),。
通過上述門控時鐘可測性設(shè)計的優(yōu)化技術(shù),可以明顯提高具有門控時鐘邏輯的電路的測試覆蓋率,,具有現(xiàn)實的工程意義,。
2.3 門控時鐘時序的優(yōu)化技術(shù)
針對前文提出的門控時鐘對于時序影響的3個方面,本論文提出了一套針對整個設(shè)計流程的不同階段的優(yōu)化方法:
(1)代碼設(shè)計階段
在代碼設(shè)計階段,,盡量避免多級門控時鐘,。因為多級門控時鐘會逐級增加時鐘樹延時,相比于其它沒有門控邏輯的時鐘節(jié)點出現(xiàn)差異,,可能會導(dǎo)致在綜合階段出現(xiàn)時序優(yōu)化問題,。建議采用合并多級門控邏輯的設(shè)計方法,如圖9所示,。
(2)邏輯綜合階段
在邏輯綜合階段,由于尚未形成時鐘樹,,時鐘網(wǎng)絡(luò)是0延時的理想網(wǎng)絡(luò),。為了預(yù)估門控邏輯在后續(xù)設(shè)計階段可能帶來的時序影響,需要提前留出裕量,,可以通過set_clock_gate_latency來實現(xiàn),。
此外,一般工藝庫中,,組合邏輯默認(rèn)的建立保持時間都是0,,對于門控邏輯中的and與門來說,,意味著在門控信號和被門控的時鐘沿同時翻轉(zhuǎn)的情況下,工具也不會報出時序違例,。針對此種情況,,通過邏輯綜合的set_clock_gating_style和時序分析的set_clock_gating_check命令來加嚴(yán)約束[4]。
(3)布局布線階段
在布局布線階段,,對于時序非常緊張的門控單元,,需要將這些單元緊密排列,在布局布線工具中應(yīng)當(dāng)設(shè)置布局限制約束,,例如ICC中的placement bound等命令[5],;此外,如果意外地將門控時鐘的層次打平,,需要防止布局布線工具把門控的latch當(dāng)作時鐘樹的終點來調(diào)整skew,,從而造成扇出的被門控邏輯的時鐘樹超長。
3 結(jié)語
通過本文提出的對于門控時鐘功能穩(wěn)定性,、可測性,、時序3方面的優(yōu)化技術(shù),可以實現(xiàn)進(jìn)行門控時鐘設(shè)計時不會產(chǎn)生毛刺,、芯片故障覆蓋率最大化,、以及時序最優(yōu)3方面的目標(biāo),為超大規(guī)模數(shù)字集成電路的功耗優(yōu)化設(shè)計提供了完整的解決方案和優(yōu)化手段,,并已經(jīng)在數(shù)字專用集成電路的設(shè)計過程中進(jìn)行了充分的工程化應(yīng)用,,取得了良好的效果。
參考文獻(xiàn)
[1] CHOI K,,SOMA R,,PEDRAM M.Dynamic voltage and frequency scaling based on workload decomposition[M].ACM International Symposium on Low Power Electronics and Design.2004.
[2] 卜愛國,余翩翩,,吳建兵,,等.基于自適應(yīng)門控時鐘的CPU功耗優(yōu)化和VLSI設(shè)計.東南大學(xué)學(xué)報(自然科學(xué)版).2015,45(2):219-223.
[3] Power Compiler User Guide.Synopsys.2014.
[4] PrimeTime User Guide.Synopsys,,2014.
[5] IC Compiler Implementation User Guide.Synopsys.2014.
作者信息:
喻賢坤,,姜 爽,王 磊,,王 莉,,彭 斌
(中國航天科技集團(tuán)第九研究院第七七二研究所,北京100076)