時鐘門控(Clock Gating)是一種在數字IC設計中某些部分不需要時關閉時鐘的技術。這里的“部分”可以是單個寄存器、模塊、子系統甚至整個SoC。
為什么需要時鐘門控:大多數SoC都是power constrained,mobile端不能夠充更多的電就只能盡可能地降低功耗了(無法開源只能節流呀),也因為時鐘門控是降低芯片動態功耗最簡單,最常用的方法之一。
時鐘門控技術分類:通常,有兩種不同的時鐘門控實現技術。
combinational clock gating–這種類型的時鐘門控由工具在綜合時自動識別引入。
sequential clock gating–這種類型的時鐘門控作為功能的一部分引入RTL設計中。通常時鐘門控策略在系統架構中定義,然后由設計人員進行實現。
combinational clock gating
最簡單的combinational clock gating可以通過AND門實現,如下圖所示
當enable為1時,時鐘會傳給寄存器FF;當enable為0時,時鐘將被關閉, FF將不起作用。這種最簡單的時鐘門控技術形式存在一些問題,即在提供給FF的時鐘中產生毛刺。
可以通過在時鐘使能信號的輸出端引入一個低電平敏感的鎖存器來解決這個問題。
鎖存器輸出僅在時鐘低電平內更新,因此與門的輸入將穩定為高。
Integrated Gated Clock Cells(ICG Cell)
要實現這種時鐘門控可以實例化標準單元庫中的兩個Cell(Latch和AND門),秉著不重復造輪子的思想以及方便工具進行后續的時序分析更建議使用庫中的ICG Cell并且由工具自動綜合插入。
時鐘使能信號可以由軟件控制和硬件同時控制,即由軟件控制是否需要啟動時鐘門控,硬件動態控制時鐘使能。
軟件控制示例如下:
軟件控制這個全局時鐘使能信號,為低電平時不打開時鐘門控,這種全局時鐘門控使能策略可以進行層次化的設計,從系統級到最終的單個寄存器。
硬件控制示例如下:
XOR門的輸入連接到FF的輸入和輸出。如果FF的輸入和輸出相同,則無需觸發FF,此時可對時鐘進行門控。
在前端RTL級引入combinational clock gating很簡單,沒有對邏輯功能產生影響,可以由EDA工具自動插入。但是在物理設計的視角,這可能是一個更大的課題,因為我們引入了一個實實在在的物理cell,更何況還是在時鐘路徑上。
從時序功耗上, clock gating應該離寄存器時鐘端遠還是近?
從面積功耗上,只有一個寄存器是否應該被門控?
sequential clock gating
除了上述combinational clock gating外,還有sequential clock gating,這涉及對RTL設計中多個時鐘周期進行深入分析。當然基本思想也很簡單,如果寄存器X在周期C中未更新,并且在時鐘周期C + 1中輸入給寄存器Y的D端,則無需在周期C + 1中使能寄存器Y的時鐘。
原文標題:時鐘門控終極指南
文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
責任編輯:haq
-
寄存器
+關注
關注
31文章
5363瀏覽量
121172 -
時鐘
+關注
關注
11文章
1747瀏覽量
131803
原文標題:時鐘門控終極指南
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
EE-244:門控時鐘與ADSP-21065L SHARC處理器接口
![EE-244:<b class='flag-5'>門控</b><b class='flag-5'>時鐘</b>與ADSP-21065L SHARC處理器接口](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AMC1204有兩種封裝,SOIC-8和SOIC-16,功能一樣嗎?為什么要推出兩種封裝?
ADS1292R有 \"1 ch ECG + 1 ch呼吸偵測\" 或 \"2 ch ECG\" 兩種模式,是否可以在產品上實現自行切換兩種使用模式?
兩種常見的硬件消抖實現方式
![<b class='flag-5'>兩種</b>常見的硬件消抖<b class='flag-5'>實現</b>方式](https://file1.elecfans.com/web2/M00/08/DE/wKgaombzzvmAN4ncAAD90rLdkv4452.png)
評論