時鐘門控(Clock Gating)是一種在數(shù)字IC設(shè)計(jì)中某些部分不需要時關(guān)閉時鐘的技術(shù)。這里的“部分”可以是單個寄存器、模塊、子系統(tǒng)甚至整個SoC。
為什么需要時鐘門控:大多數(shù)SoC都是power constrained,mobile端不能夠充更多的電就只能盡可能地降低功耗了(無法開源只能節(jié)流呀),也因?yàn)闀r鐘門控是降低芯片動態(tài)功耗最簡單,最常用的方法之一。
時鐘門控技術(shù)分類:通常,有兩種不同的時鐘門控實(shí)現(xiàn)技術(shù)。
combinational clock gating–這種類型的時鐘門控由工具在綜合時自動識別引入。
sequential clock gating–這種類型的時鐘門控作為功能的一部分引入RTL設(shè)計(jì)中。通常時鐘門控策略在系統(tǒng)架構(gòu)中定義,然后由設(shè)計(jì)人員進(jìn)行實(shí)現(xiàn)。
combinational clock gating
最簡單的combinational clock gating可以通過AND門實(shí)現(xiàn),如下圖所示
當(dāng)enable為1時,時鐘會傳給寄存器FF;當(dāng)enable為0時,時鐘將被關(guān)閉, FF將不起作用。這種最簡單的時鐘門控技術(shù)形式存在一些問題,即在提供給FF的時鐘中產(chǎn)生毛刺。
可以通過在時鐘使能信號的輸出端引入一個低電平敏感的鎖存器來解決這個問題。
鎖存器輸出僅在時鐘低電平內(nèi)更新,因此與門的輸入將穩(wěn)定為高。
Integrated Gated Clock Cells(ICG Cell)
要實(shí)現(xiàn)這種時鐘門控可以實(shí)例化標(biāo)準(zhǔn)單元庫中的兩個Cell(Latch和AND門),秉著不重復(fù)造輪子的思想以及方便工具進(jìn)行后續(xù)的時序分析更建議使用庫中的ICG Cell并且由工具自動綜合插入。
時鐘使能信號可以由軟件控制和硬件同時控制,即由軟件控制是否需要啟動時鐘門控,硬件動態(tài)控制時鐘使能。
軟件控制示例如下:
軟件控制這個全局時鐘使能信號,為低電平時不打開時鐘門控,這種全局時鐘門控使能策略可以進(jìn)行層次化的設(shè)計(jì),從系統(tǒng)級到最終的單個寄存器。
硬件控制示例如下:
XOR門的輸入連接到FF的輸入和輸出。如果FF的輸入和輸出相同,則無需觸發(fā)FF,此時可對時鐘進(jìn)行門控。
在前端RTL級引入combinational clock gating很簡單,沒有對邏輯功能產(chǎn)生影響,可以由EDA工具自動插入。但是在物理設(shè)計(jì)的視角,這可能是一個更大的課題,因?yàn)槲覀円肓艘粋€實(shí)實(shí)在在的物理cell,更何況還是在時鐘路徑上。
從時序功耗上, clock gating應(yīng)該離寄存器時鐘端遠(yuǎn)還是近?
從面積功耗上,只有一個寄存器是否應(yīng)該被門控?
sequential clock gating
除了上述combinational clock gating外,還有sequential clock gating,這涉及對RTL設(shè)計(jì)中多個時鐘周期進(jìn)行深入分析。當(dāng)然基本思想也很簡單,如果寄存器X在周期C中未更新,并且在時鐘周期C + 1中輸入給寄存器Y的D端,則無需在周期C + 1中使能寄存器Y的時鐘。
原文標(biāo)題:時鐘門控終極指南
文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
寄存器
+關(guān)注
關(guān)注
31文章
5343瀏覽量
120385 -
時鐘
+關(guān)注
關(guān)注
11文章
1734瀏覽量
131490
原文標(biāo)題:時鐘門控終極指南
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論