付費限定

[Verilog] 10分鐘由淺入深看懂 clock gating (1) - low power design

更新 發佈閱讀 6 分鐘

先前文章中提提了幾種low power design常用的手法

[Verilog] 10分鐘看懂IC design的low power design - 1 (原創)

其中最廣為使用的招數就是clock gating

藉由停住當下沒在運作的module clk 及clk network 來達到節省dynamic power的效果


那麼這篇來聊聊clk gating的細節

探討一下如何將網路上那些破碎的資訊一一串起


首先對於clk gating來說他還有一個好朋友

一樣是被創出來做為省dynamic power的技巧,稱為data gating

和clk gating的差異在一個是掐斷不必要的Data update一個則是對掐斷clk下手

因此在這邊先來探討一下逐漸少見的Data gating

raw-image


data gating 對於reg的D端做一個enable來決定說當前的D0使否是有需要的,

如果沒意義的話即可以不做update data以省下dynamic power的消耗,

對於clk端則是free run.


當我的input data不動了,自然power也省了,

雖然這個設計上確實可以降低data update的頻率,

但是實際使用上得到的效益卻很有限,

不過這個架構最大的優點就是沒有clk gating最棘手的問題,

也就是不會對於STA的評估造成太多的負擔,

因為他就只是單純在Din端的combiantional circuit,

因此在EDA tool還不夠強的時候這個方法可能是還不錯的選擇,



然而對於這次要探討的clk gating而言,

和上述的不同則是希望在reg不用時去停掉他的clk而不是data,

此時我們在觀測的部分就由data端變成了clk端,

在clk path上插上額外的電路,希望藉此降低dynamic power.


在此之前我們在RTL level階段的clk path永遠都是乾淨沒東西的,

只會在APR階段時insert buffer/invertor 來長clk tree,

加入了clk gating cell後意味著我們在長clk tree及STA的評估上必須多了一些考量,

對於timing check及clk tree synthesis增添了難度


下圖即為加入CG cell後樣貌,

實際上就是在clk準備被餵進reg前先判斷當前的reg是否有使用需求,

沒有即可停掉藉以省下power浪費

raw-image


然而我們所描述的CG實際上有兩種樣貌 , or gate based 或 and gate based

選哪個type得到的效果都一模一樣,差異點就在當你clk gating後希望把clk訊號Tie 1或Tie 0


raw-image


那選擇tie0或tie1又有甚麼差別呢?

為了防止clk gating enable的時機不好導致餵給reg的gated clk非完整的1個cycle

因此在這邊and gate和or gate有不一樣的限制

raw-image


對於and gate來說其中一邊是0則輸出0,所以enable觸發的時機必須在clk為low時才能觸發,因為在為low時setting不會影響最終的輸出

對於or gate來說則剛好相反,一邊是1則輸出1,因此enable必須在clk為high時觸發,來避免夾出不完整的clk輸出到reg上


那看到的cycle不完整又會有甚麼問題呢?

曾經在面試的時候面試官問了一個這個問題,

為甚麼clk cycle一定要是完整的?


小弟聽到問題的時候唯一的想法就是,

書上都是畫完整的呀,50%50%就是對稱美學,

所以第一時間我還真的是答不出來,

後來經過一段時間的思考後現在大概有點想法,

這種clk cycle不完整的狀況可以分成2種case討論

  1. 少正緣
  2. 少負緣


以行動支持創作者!付費即可解鎖
本篇內容共 2196 字、0 則留言,僅發佈於10分鐘看懂IC設計你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
留言
avatar-img
留言分享你的想法!
avatar-img
數位IC設計第一品牌
126會員
29內容數
數位IC設計第一品牌 從0到1用嘴做IC 觀念大權
2024/12/28
到了最後一個階段, 我們做了這麼多CG cell insertion後, 要怎麼知道到底是不是對Design有幫助的呢? 是否有個rule又或是量化的數據來解釋說CG的效果如何 在下面這篇paper中提到了幾種觀測CG cell efficiency的方法 J. Srinivas, M
Thumbnail
2024/12/28
到了最後一個階段, 我們做了這麼多CG cell insertion後, 要怎麼知道到底是不是對Design有幫助的呢? 是否有個rule又或是量化的數據來解釋說CG的效果如何 在下面這篇paper中提到了幾種觀測CG cell efficiency的方法 J. Srinivas, M
Thumbnail
2024/12/16
前面文章曾經提到說, 除了我們在寫rtl當下直接撰寫加入的cg cell外, 實際上我們有些clk gating cell是靠tool自己幫忙插的, [Verilog] 10分鐘由淺入深看懂 clock gating -2 那麼tool是怎麼判斷說哪邊要插gating cell的呢?
Thumbnail
2024/12/16
前面文章曾經提到說, 除了我們在寫rtl當下直接撰寫加入的cg cell外, 實際上我們有些clk gating cell是靠tool自己幫忙插的, [Verilog] 10分鐘由淺入深看懂 clock gating -2 那麼tool是怎麼判斷說哪邊要插gating cell的呢?
Thumbnail
2024/12/11
前面文章提到過clk gating check實際上就是在check gating cell的enable訊號 檢查enable的timing是否能滿足STA的check, 不過不知道各位有沒有發現到, 這條path看起來很單純呀而且我還用上了latch大法, 可能讓訊號走完1整個cycle
Thumbnail
2024/12/11
前面文章提到過clk gating check實際上就是在check gating cell的enable訊號 檢查enable的timing是否能滿足STA的check, 不過不知道各位有沒有發現到, 這條path看起來很單純呀而且我還用上了latch大法, 可能讓訊號走完1整個cycle
Thumbnail
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
介紹完了基本的概念後, 這邊來看個例子, 以and gated的CG來說 ,clk_enable 訊號由前一級的reg輸出(1) , 經由Q輸出en後落在clk負緣的時候toggle (2), 下一個cycle的clk即會被鎖在0 (3) 對於or based的來說 clk_en
Thumbnail
介紹完了基本的概念後, 這邊來看個例子, 以and gated的CG來說 ,clk_enable 訊號由前一級的reg輸出(1) , 經由Q輸出en後落在clk負緣的時候toggle (2), 下一個cycle的clk即會被鎖在0 (3) 對於or based的來說 clk_en
Thumbnail
先前文章中提提了幾種low power design常用的手法 [Verilog] 10分鐘看懂IC design的low power design - 1 (原創) 其中最廣為使用的招數就是clock gating 藉由停住當下沒在運作的module clk 及clk network 來達到
Thumbnail
先前文章中提提了幾種low power design常用的手法 [Verilog] 10分鐘看懂IC design的low power design - 1 (原創) 其中最廣為使用的招數就是clock gating 藉由停住當下沒在運作的module clk 及clk network 來達到
Thumbnail
Voltage island 字面上的意思為電壓島, 概念上是把不同function的module給予不同的driving volatge 然而在ic design中有個rule, driving voltage 越高就能讓logic動的越快 也就是說,當你希望邏輯運算的越快,原則上就需
Thumbnail
Voltage island 字面上的意思為電壓島, 概念上是把不同function的module給予不同的driving volatge 然而在ic design中有個rule, driving voltage 越高就能讓logic動的越快 也就是說,當你希望邏輯運算的越快,原則上就需
Thumbnail
clk skew 和 clk jitter差別是甚麼? clk skew 指的是兩顆reg 因為clk 到達的時間不同 導致雖然後是屬於於同一個cycle的行為 卻會有先到後到的問題 通常成因為 wire length cell delay clock distribution
Thumbnail
clk skew 和 clk jitter差別是甚麼? clk skew 指的是兩顆reg 因為clk 到達的時間不同 導致雖然後是屬於於同一個cycle的行為 卻會有先到後到的問題 通常成因為 wire length cell delay clock distribution
Thumbnail
透過計時器與自保持迴路的接線方式,來達成延時斷電動作。
Thumbnail
透過計時器與自保持迴路的接線方式,來達成延時斷電動作。
Thumbnail
本文介紹了抽水馬達和繼電器的工作原理,以及如何與Arduino搭配使用。繼電器的定義、結構、和工作原理,以及抽水馬達的定義、結構、和工作原理都有詳細說明。此外,還介紹了串聯和並聯的關係,並提供了抽水馬達模組的程式碼。
Thumbnail
本文介紹了抽水馬達和繼電器的工作原理,以及如何與Arduino搭配使用。繼電器的定義、結構、和工作原理,以及抽水馬達的定義、結構、和工作原理都有詳細說明。此外,還介紹了串聯和並聯的關係,並提供了抽水馬達模組的程式碼。
Thumbnail
IC產業常用術語,什麼是LEF? LIB? 打開小白筆記~
Thumbnail
IC產業常用術語,什麼是LEF? LIB? 打開小白筆記~
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News