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