日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > > 艾思后端實(shí)現(xiàn)
在筆者的一篇老文Clock Gating之淺見(jiàn)
中,一起探討過(guò)工具處理門(mén)控時(shí)鐘的方法和門(mén)控時(shí)鐘所帶來(lái)的相關(guān)收益和面積代價(jià)。除此之外,門(mén)控時(shí)鐘的檢查(clock-gating check)在STA中也有相應(yīng)的處理方式,通過(guò)這篇文章,一起了解一下相關(guān)的知識(shí),并會(huì)拓展到時(shí)鐘網(wǎng)絡(luò)的一些設(shè)計(jì)建議,閑話少敘,ICer GO!

門(mén)控時(shí)鐘的分類(lèi)

通過(guò)門(mén)控方式不同,一個(gè)門(mén)控時(shí)鐘通??梢苑譃橄旅婊?lèi),

高有效(Active High)門(mén)控時(shí)鐘

通常使用與門(mén)(and)或者與非門(mén)(nand)實(shí)現(xiàn),

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

低有效(Active High)門(mén)控時(shí)鐘

通常使用與門(mén)(and)或者與非門(mén)(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)的門(mén)控時(shí)鐘



當(dāng)enable信號(hào)為1的時(shí)候,輸出是輸入的反向,反之則是正向

MUX結(jié)構(gòu)的門(mén)控時(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ò)上述幾種門(mén)控始終結(jié)構(gòu),從單調(diào)時(shí)鐘的(unate)的角度來(lái)看,可以總結(jié)為下表
gating結(jié)構(gòu)
單調(diào)性(unate) 類(lèi)別
AND positive-unate active high
NAND negative-unate active high
OR positive-unate active low
NOR negative-unate active low
XOR positive-unate when gated == 0
XOR negative-unate when gated == 1
MUX positive-unate with clock1 when select == 0
MUX positive-unate with clock2 when select == 1
所以,對(duì)于所有在時(shí)鐘網(wǎng)絡(luò)上的門(mén)控時(shí)鐘,用戶都需要明確其單調(diào)性,以便STA進(jìn)行正確的分析。

門(mén)控時(shí)鐘的的檢查(clock gating check)

通過(guò)上述描述,可以看到始終網(wǎng)絡(luò)對(duì)于靜態(tài)時(shí)序分析的重要性,所以在門(mén)控時(shí)鐘在時(shí)鐘網(wǎng)絡(luò)的傳播路徑上的檢查尤為重要。同樣,基于clock gating的結(jié)構(gòu),對(duì)于active high,active low的門(mén)控時(shí)鐘,通過(guò)STA工具??梢宰詣?dòng)推斷(infer)出相應(yīng)的門(mén)控時(shí)鐘檢查(clock gating check),用戶可以理解,這里的clock gating結(jié)構(gòu)被STA所覆蓋。所以用戶在需要理解STA自動(dòng)推斷的原理,從而確保自己的時(shí)鐘路徑被STA覆蓋

定義

工具判斷門(mén)控時(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-clock
create_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è)門(mén)控信號(hào)(enable)


示例3:對(duì)于一個(gè)復(fù)雜的門(mén)控時(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)

門(mén)控時(shí)鐘是在clock的傳播路徑插入了與或非邏輯,設(shè)計(jì)人員通過(guò)一定的邏輯控制達(dá)到對(duì)時(shí)鐘的操作:
  • 時(shí)鐘分頻:使用低頻門(mén)控信號(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ú)論門(mén)控信號(hào)的產(chǎn)生有多么復(fù)雜,只要符合門(mén)控適中的結(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è)門(mén)控邏輯進(jìn)行組合邏輯運(yùn)算,通常會(huì)出現(xiàn)時(shí)鐘波形傳播的問(wèn)題(clock crop 或者clock swallow):

在不同階段出現(xiàn)的enable信號(hào),會(huì)導(dǎo)致clock的波形發(fā)生畸變
現(xiàn)象 影響
頻率變慢 對(duì)neg-latch時(shí)序有影響
頻率變快 對(duì)setup影響
脈寬變寬 對(duì)neg-latch時(shí)序有影響
脈寬變窄 對(duì)min-width-pulse有影響
注意:在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)】

理解門(mén)控時(shí)鐘檢查(clock-gating-check)和理解門(mén)控時(shí)鐘(clock-gating)同等重要,任何在clock tree上做的動(dòng)作都需要額外的小心


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉