門控時(shí)鐘的分類
通過(guò)門控方式不同,一個(gè)門控時(shí)鐘通常可以分為下面基類,
高有效(Active High)門控時(shí)鐘
通常使用與門(and)或者與非門(nand)實(shí)現(xiàn),

當(dāng)使能信號(hào)為高的時(shí)候,時(shí)鐘才可以被釋放出去. 如果是nand,則輸出的時(shí)鐘是一個(gè)反向時(shí)鐘的波形

低有效(Active High)門控時(shí)鐘
通常使用與門(and)或者與非門(nand)實(shí)現(xiàn),

當(dāng)使能信號(hào)為低的時(shí)候,時(shí)鐘才可以被釋放出去. 如果是nor,則輸出的時(shí)鐘是一個(gè)反向時(shí)鐘的波形

除過(guò)上述的情況,有時(shí)候也會(huì)使用復(fù)雜一些的clock gating結(jié)構(gòu),這里的波形就會(huì)復(fù)雜一些
XOR結(jié)構(gòu)的門控時(shí)鐘

當(dāng)enable信號(hào)為1的時(shí)候,輸出是輸入的反向,反之則是正向
MUX結(jié)構(gòu)的門控時(shí)鐘

時(shí)鐘傳播單調(diào)性(unate)
靜態(tài)時(shí)序分析的基本原理是信號(hào)傳播,對(duì)于擁有明確單調(diào)性的傳播是構(gòu)建正確STA環(huán)境的基礎(chǔ),數(shù)據(jù)通路對(duì)單調(diào)性(unate)通常不敏感,但是時(shí)鐘通常是邊沿敏感信號(hào),所以時(shí)鐘網(wǎng)絡(luò)的單調(diào)性在STA時(shí)序分析的形態(tài)中尤為重要。STA工具也只有在單調(diào)性明確的時(shí)鐘網(wǎng)絡(luò)上做正確的時(shí)序分析,否則大概率會(huì)在實(shí)際芯片里邊出現(xiàn)和STA不一致的情況。這點(diǎn)對(duì)于時(shí)鐘網(wǎng)絡(luò)的設(shè)計(jì)非常重要。
通過(guò)上述幾種門控始終結(jié)構(gòu),從單調(diào)時(shí)鐘的(unate)的角度來(lái)看,可以總結(jié)為下表
gating結(jié)構(gòu)

所以,對(duì)于所有在時(shí)鐘網(wǎng)絡(luò)上的門控時(shí)鐘,用戶都需要明確其單調(diào)性,以便STA進(jìn)行正確的分析。
門控時(shí)鐘的的檢查(clock gating check)
通過(guò)上述描述,可以看到始終網(wǎng)絡(luò)對(duì)于靜態(tài)時(shí)序分析的重要性,所以在門控時(shí)鐘在時(shí)鐘網(wǎng)絡(luò)的傳播路徑上的檢查尤為重要。同樣,基于clock gating的結(jié)構(gòu),對(duì)于active high,active low的門控時(shí)鐘,通過(guò)STA工具。可以自動(dòng)推斷(infer)出相應(yīng)的門控時(shí)鐘檢查(clock gating check),用戶可以理解,這里的clock gating結(jié)構(gòu)被STA所覆蓋。所以用戶在需要理解STA自動(dòng)推斷的原理,從而確保自己的時(shí)鐘路徑被STA覆蓋
定義
工具判斷門控時(shí)鐘的基本標(biāo)準(zhǔn)如下
- 輸入的時(shí)鐘到輸出必須存在一個(gè)組合邏輯的傳播路徑。常規(guī)的與或非,或者常規(guī)的latch based 的clock gating結(jié)構(gòu)(見(jiàn)下圖),但是register的分頻結(jié)構(gòu),就不是一個(gè)clock gating。

-
輸入的端口必須包含clock,但是輸入到輸出的傳播必須包含數(shù)據(jù)路徑(gated 信號(hào))。
示例1: 組合邏輯的輸入都是clock,STA會(huì)自動(dòng)將時(shí)鐘傳播到輸出,這樣輸出的會(huì)看到四個(gè)clock,這樣的結(jié)構(gòu)是無(wú)法判定為clock gating結(jié)構(gòu)的,需要用戶在使用的時(shí)候,當(dāng)clock1有效的時(shí)候,clock2/3/4需要維持一個(gè)常1,否則輸出的clock會(huì)出現(xiàn)混亂

示例2: 輸入都是clock,但是用戶使用下列命令在輸出創(chuàng)建了一個(gè)gen-clockcreate_generated_clock -name clock1_gen_clk -divide_by 1 \\ -source clock1 [get_pins U1/Z]
由于這個(gè)AND只有clock1傳播過(guò)去,STA會(huì)自動(dòng)推斷出這是一個(gè)clock gating結(jié)構(gòu),clock1到clock2的gating 檢查,clock2信號(hào)就是一個(gè)門控信號(hào)(enable)

示例3 :對(duì)于一個(gè)復(fù)雜的門控時(shí)鐘無(wú)法自動(dòng)推斷
這里的UMUX0滿足clock gating的結(jié)構(gòu)

但是由于MUX結(jié)構(gòu)是一個(gè)非單調(diào)性傳播(none-unate),這樣一個(gè)clock gating結(jié)構(gòu)是無(wú)法自動(dòng)推斷(auto-infer)出來(lái)的,所以在clock 傳播路徑上存在風(fēng)險(xiǎn),這樣工具會(huì)給出如下的提示。需要用戶進(jìn)一步處理

挑戰(zhàn)
門控時(shí)鐘是在clock的傳播路徑插入了與或非邏輯,設(shè)計(jì)人員通過(guò)一定的邏輯控制達(dá)到對(duì)時(shí)鐘的操作:
-
時(shí)鐘分頻:使用低頻門控信號(hào)與高頻時(shí)鐘和做AND操作:
clock_slow = clock_fast * slow_enable -
時(shí)鐘開(kāi)合:使用半靜態(tài)信號(hào)(近乎于始終關(guān)斷控制):
block_clock = sys_clock * block_enable -
時(shí)鐘選擇:使用半靜態(tài)信號(hào)(近乎于模式控制):
clock_out =(sel==1'b0)?func_clock : scan_clock或者使用latch/reg結(jié)構(gòu),設(shè)計(jì)一個(gè)防抖的時(shí)鐘切換,但是無(wú)論門控信號(hào)的產(chǎn)生有多么復(fù)雜,只要符合門控適中的結(jié)構(gòu),最后的clock gating check的點(diǎn)位是不會(huì)發(fā)生變化的,只是一個(gè)好的時(shí)鐘生成(clock-gen)的設(shè)計(jì),可以對(duì)STA更友好的,推進(jìn)項(xiàng)目質(zhì)量和加速項(xiàng)目收斂,這也是一個(gè)有經(jīng)驗(yàn)的設(shè)計(jì)工程師的基本修為。
時(shí)鐘是周期的變化,如果和一個(gè)門控邏輯進(jìn)行組合邏輯運(yùn)算,通常會(huì)出現(xiàn)時(shí)鐘波形傳播的問(wèn)題(clock crop 或者clock swallow):

在不同階段出現(xiàn)的enable信號(hào),會(huì)導(dǎo)致clock的波形發(fā)生畸變

注意:在STA的timing report中,用戶是不會(huì)看到上述問(wèn)題的影響的的,但是在實(shí)際芯片中,這種影響是真實(shí)發(fā)生的。 所以,clock-gating的邏輯,必須被clock-gating-check所覆蓋,并且需要謹(jǐn)慎地進(jìn)行徹底修復(fù),對(duì)于工具不能自動(dòng)推斷出來(lái)的clock-gating點(diǎn),需要用戶重點(diǎn)關(guān)注和給出解決方案,否則在最后的芯片中會(huì)出現(xiàn)和STA完全不一致(無(wú)法通過(guò)STA定位)的時(shí)序問(wèn)題。
未完待續(xù)… (To Be continued …)
這樣處理以后,LVS的std-cell的port mismatch也就完美解決了,
學(xué)好v2lvs,再也不用perl去patch source netlist了~~~~
【敲黑板劃重點(diǎn)】
理解門控時(shí)鐘檢查(clock-gating-check)和理解門控時(shí)鐘(clock-gating)同等重要,任何在clock tree上做的動(dòng)作都需要額外的小心。
-
分頻器
+關(guān)注
關(guān)注
43文章
537瀏覽量
53679 -
STA
+關(guān)注
關(guān)注
0文章
52瀏覽量
19616 -
門控時(shí)鐘
+關(guān)注
關(guān)注
0文章
27瀏覽量
9243 -
XOR
+關(guān)注
關(guān)注
0文章
12瀏覽量
162741
發(fā)布評(píng)論請(qǐng)先 登錄
淺析clock gating模塊電路結(jié)構(gòu)
XOR自門控與時(shí)鐘門控的不同之處
門控時(shí)鐘(Clock-gating)介紹
FPGA的時(shí)鐘門控是好還是壞?
通常有兩種不同的時(shí)鐘門控實(shí)現(xiàn)技術(shù)
什么是門控時(shí)鐘 門控時(shí)鐘降低功耗的原理
一文詳解門控時(shí)鐘
低功耗設(shè)計(jì)基礎(chǔ):Clock Gating
AND GATE的clock gating check簡(jiǎn)析
什么是時(shí)鐘門控技術(shù)?為什么需要控制時(shí)鐘的通斷呢?
為什么需要時(shí)鐘門控?時(shí)鐘門控終極指南
Clock Gating的特點(diǎn)、原理和初步實(shí)現(xiàn)
ASIC的clock gating在FPGA里面實(shí)現(xiàn)是什么結(jié)果呢?
門控時(shí)鐘檢查(clock gating check)的理解和設(shè)計(jì)應(yīng)用
評(píng)論