《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 數(shù)字集成電路門控時鐘可靠性研究
數(shù)字集成電路門控時鐘可靠性研究
2017年電子技術(shù)應(yīng)用第1期
喻賢坤,姜 爽,王 磊,王 莉,彭 斌
中國航天科技集團第九研究院第七七二研究所,北京100076
摘要: 在超大規(guī)模集成電路設(shè)計中,門控時鐘技術(shù)是最常采用的低功耗設(shè)計技術(shù)。然而,由于時鐘信號的特殊性和敏感性,門控時鐘設(shè)計極容易造成功能錯誤、時序惡化和測試覆蓋率降低,針對這三方面的風險,提出多種門控時鐘的優(yōu)化技術(shù),包括異步門控時鐘的檢查和排除、可測性設(shè)計中的門控時鐘優(yōu)化技術(shù)和門控時鐘設(shè)計中的時序優(yōu)化技術(shù),確保在數(shù)字集成電路設(shè)計過程中門控時鐘設(shè)計在降低功耗收益最大化的同時,能夠規(guī)避設(shè)計風險,提升電路可靠性。
中圖分類號: TN47
文獻標識碼: 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.
Research on the reliability of clock-gating clock in digital integrated circuits
Yu Xiankun,Jiang Shuang,Wang Lei,Wang Li,Peng Bin
The772 Institute of the Ninth Research Institute,China Aerospace Science and Technology Group,Beijing 100076,China
Abstract: In the design of Very Large Integrated Circuits(VLSI), clock gating technology is the most commonly used low power design technology.However, due to the specificity and sensitivity of the clock signal, the clock gating design is very easy to cause functional errors, timing deterioration and the reducement of the test coverage. Aiming at these three risk of the clock gating, this paper presents many optimization techniques, including the check and elimination of the asynchronous clock, the clock gating optimization technology of the design for test, and the timing optimization technology in the clock gating design, which can ensure the maximization for reducing power of the digital integrated circuit design as a result of the clock gating, and avoid the risk of design and improve the reliability of the circuit at the same time.
Key words : low power design;clock gating;asynchronous timing;design for test;timing optimization

0 引言

    對于超大規(guī)模集成電路來說,功耗指標是最重要的技術(shù)參數(shù)之一。為了降低功耗,研究出來許多行之有效的方法,包括靜態(tài)多電壓(MV-Design)、動態(tài)電壓頻率縮放(DVFS)[1]、門控電源(Power-Gating)、門控時鐘(Clock-Gating)等。其中門控時鐘技術(shù)是最早發(fā)展起來,并且是采用最多的低功耗設(shè)計技術(shù),甚至可以使得電路功耗降低一半以上,具有實現(xiàn)簡單、高效的特點。

    門控時鐘技術(shù),是通過在時鐘路徑上增加邏輯門對時鐘進行控制(Gating),使得電路的部分邏輯在不需要工作時停止時鐘樹的翻轉(zhuǎn),而并不影響原本的邏輯狀態(tài)[2]。

    如圖1所示,在插入門控時鐘前,前級寄存器輸出經(jīng)過組合邏輯產(chǎn)生控制信號EN,EN選擇后級寄存器組的輸入是DATA IN還是其自身的Q,即選擇更新還是保持數(shù)據(jù),可以看出后級寄存器組即使保持數(shù)據(jù),其CLK仍在不停地翻轉(zhuǎn)。插入門控時鐘后,首先后級寄存器組的輸入不再有其自身的Q,而只有DATA IN,其次增加了門控邏輯,EN連接到了門控邏輯,不再用于控制數(shù)據(jù)端,而是用來控制時鐘端。當需要更新數(shù)據(jù)時,門控打開,用門控后的時鐘ENCLK來采集新數(shù)據(jù);而當不需要更新數(shù)據(jù)時,門控關(guān)閉,后級寄存器組的時鐘是靜止的,并能保持原有數(shù)據(jù)。而當一個芯片中有許多類似的邏輯,并且不是每周期都更新數(shù)據(jù)時,門控時鐘結(jié)構(gòu)對于降低功耗的貢獻是非常大的。

wdz2-t1.gif

1 門控時鐘設(shè)計的風險和影響

    時鐘是集成電路內(nèi)部最重要的邏輯組成部分,是數(shù)字集成電路的命脈。門控時鐘是對時鐘路徑的修改、控制,因此在門控時鐘設(shè)計時,必須充分考慮門控時鐘帶來的風險和影響。

1.1 門控時鐘帶來功能錯誤的風險

    門控時鐘控制的對象是寄存器、存儲器等時序邏輯的時鐘,一旦控制不得當,會造成時鐘出現(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的污染。

wdz2-t2.gif

    從時序角度來講,發(fā)生風險的地方在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所示。

wdz2-t3.gif

    如果產(chǎn)生EN的時鐘與ENCLK后級邏輯的時鐘是同一個時鐘,或是同一時鐘域的時鐘,圖3中描述的情況是不會發(fā)生的,因為在滿足時序約束的情況下,同步電路不允許存在這種違反建立保持時間的路徑,如圖4所示。反之,如果EN信號來自于異步時鐘域或端口,則這種情況是一定存在的。

wdz2-t4.gif

1.2 門控時鐘對測試覆蓋率的影響

    在當前超大規(guī)模數(shù)字集成電路設(shè)計中,可測性設(shè)計是必備的設(shè)計流程之一??蓽y性設(shè)計的原理就是通過特意設(shè)計的邏輯,使得電路的內(nèi)部節(jié)點從輸入端口可控制,并且通過特意設(shè)計的測試向量來激活內(nèi)部潛在故障,然后通過輸出端口可觀測,從而大幅度提高電路的測試覆蓋率。

    而門控時鐘天然對可測性設(shè)計不友好,因為在測試狀態(tài)下,增加了門控邏輯的寄存器的時鐘往往是不可控的。門控時鐘導(dǎo)致被門控邏輯時鐘不可控的示意圖如圖5所示。

wdz2-t5.gif

    在測試狀態(tài)下,由于產(chǎn)生EN邏輯的前級寄存器無論是否被串入掃描鏈,寄存器中的值都是由原始輸入值和串行掃描數(shù)據(jù)決定,無法受端口直接控制,因此門控時鐘的打開和關(guā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)由于約束不嚴,導(dǎo)致盡管時序收斂,但實際上仍然存在風險。

2 門控時鐘優(yōu)化技術(shù)

    針對前文提出的門控時鐘對電路功能、可測性和時序3方面的風險和影響,下文將逐一提出可實現(xiàn)的解決方案,通過腳本語言、設(shè)計約束、設(shè)計優(yōu)化等多種手段,規(guī)避門控時鐘帶來的風險,最大程度降低門控時鐘對于可測性和時序的影響,并最終實現(xiàn)功耗最優(yōu)化。

2.1 異步門控時鐘和端口門控時鐘的優(yōu)化技術(shù)

    從圖3中可以看出,當門控信號和被門控時鐘存在不確定的相位關(guān)系時,就可能出現(xiàn)問題,這類門控信號有兩個可能來源:異步時鐘域和端口。為了避免此種現(xiàn)象的發(fā)生,有兩個方法:

    (1)采用LEDA、CDC等工具進行跨時鐘域信號檢查,確認不存在異步時鐘域間的數(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)。

wdz2-t6.gif

    在第一次綜合結(jié)束后,通過命令確認上述3種極有可能造成邏輯錯誤的門控時鐘情況后,采用綜合工具的命令(set_clock_gating_registers -exclude_instances),將上述門控邏輯屏蔽掉,重新進行綜合。經(jīng)過上述流程,可以保證所有門控邏輯:門控信號和被門控時鐘永遠保持穩(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所示。

wdz2-t7.gif

    在門控邏輯上增加了一個輸入管腳TE和一個旁路的或門,TE通常連接頂層的測試模式信號test_mode。在測試狀態(tài)下,test_mode為固定高電平,因此latch的輸入LD為固定高電平,ENL為固定高電平,CLK直接傳遞給ENCLK。因此在測試模式下,ENCLK與CLK保持一致,門控邏輯被旁路掉了,時鐘從外部輸入端口可控,不會對可測性造成影響。

    (2)選擇最優(yōu)化的門控時鐘可控制邏輯,實現(xiàn)可測性的最優(yōu)化。提高門控時鐘可測性的方法,也可以在latch的LQ端進行旁路,并且采用頂層的scan_enable進行控制,如圖8所示。

wdz2-t8.gif

    對比圖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所示。

wdz2-t9.gif

    (2)邏輯綜合階段

    在邏輯綜合階段,由于尚未形成時鐘樹,時鐘網(wǎng)絡(luò)是0延時的理想網(wǎng)絡(luò)。為了預(yù)估門控邏輯在后續(xù)設(shè)計階段可能帶來的時序影響,需要提前留出裕量,可以通過set_clock_gate_latency來實現(xiàn)。

    此外,一般工藝庫中,組合邏輯默認的建立保持時間都是0,對于門控邏輯中的and與門來說,意味著在門控信號和被門控的時鐘沿同時翻轉(zhuǎn)的情況下,工具也不會報出時序違例。針對此種情況,通過邏輯綜合的set_clock_gating_style和時序分析的set_clock_gating_check命令來加嚴約束[4]。

    (3)布局布線階段

    在布局布線階段,對于時序非常緊張的門控單元,需要將這些單元緊密排列,在布局布線工具中應(yīng)當設(shè)置布局限制約束,例如ICC中的placement bound等命令[5];此外,如果意外地將門控時鐘的層次打平,需要防止布局布線工具把門控的latch當作時鐘樹的終點來調(diào)整skew,從而造成扇出的被門控邏輯的時鐘樹超長。

3 結(jié)語

    通過本文提出的對于門控時鐘功能穩(wěn)定性、可測性、時序3方面的優(yōu)化技術(shù),可以實現(xiàn)進行門控時鐘設(shè)計時不會產(chǎn)生毛刺、芯片故障覆蓋率最大化、以及時序最優(yōu)3方面的目標,為超大規(guī)模數(shù)字集成電路的功耗優(yōu)化設(shè)計提供了完整的解決方案和優(yōu)化手段,并已經(jīng)在數(shù)字專用集成電路的設(shè)計過程中進行了充分的工程化應(yīng)用,取得了良好的效果。

參考文獻

[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è)計.東南大學學報(自然科學版).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.



作者信息:

喻賢坤,姜  爽,王  磊,王  莉,彭  斌

(中國航天科技集團第九研究院第七七二研究所,北京100076)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。