[Verilog] 10分鐘由淺入深看懂 clock gating (5) - CG synthesis

更新於 發佈於 閱讀時間約 4 分鐘

前面文章曾經提到說,

除了我們在寫rtl當下直接撰寫加入的cg cell外,

實際上我們有些clk gating cell是靠tool自己幫忙插的,

[Verilog] 10分鐘由淺入深看懂 clock gating -2

那麼tool是怎麼判斷說哪邊要插gating cell的呢?


這個自動產生clk gating cell的stage位於synthesis階段,

透過enable insert_clock_gating及給予相關設定後來生效function,

所以有時候會發現說,怎麼netlist的內容物和rtl level有些差異,

就是因為在某些coding style下會誘發synthesis tool幫忙做cg的insert,

以提供netlist有更好的power consumption.


我們在撰寫verilog時,經常都會使用到某些condition來作為enable的訊號,

對於always block內如果結束在else if而不是else的話,

tool就會幫忙對這個reg做CG的insertion,

然而相關的condition也會被融入到cg en的條件內.


else if版本 tool將幫忙產生cg

always @ (posedge clk or negedge rst) begin
if (!rst)
reg0 <= 5'b0;
else if (condiction)
reg0 <= input;
end

else版本 不會產生cg

always @ (posedge clk or negedge rst) begin
if (!rst)
reg0 <= 5'b0;
else
reg0 <= input;
end


然而對於cg cell來說,

也是會有一定的area和power的低消,

所以tool中有minimum bits的設定可以使用,

當reg 的bits數小於min bits時則不會做相關的insertion,

才不會因為CG cell的關係導致power consumption比原本來得更大.


此外,大家在實際的netlist中可能會發現,

CG cell除了上述描述到的port之外,

還多了一隻叫TE的port,

以下圖為例

raw-image

TE port 為test enable的輸入,

當ic 切到test mode下時,必須要保證clk不會被normal function切掉,

盡可能使register都是在可觀且可控的條件下做scan test,

因此對於cg的module通常都會開出一隻TE腳位讓user去接上scan_enable或test_mode的訊號,

TE或EN兩者其中一個為1時就會釋放clk給下游的register,

使cg cell接到的reg不會因為normal function的關係導致在scan test時沒有clk使用,

藉由多開出一條TE port來提高dft的coverage,

然而TE port所接的訊號要使用test_mode或是scan_enable亦或是新的control reg出來得訊號則因各個design來定.




留言
avatar-img
留言分享你的想法!
avatar-img
數位IC設計第一品牌
108會員
27內容數
數位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/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
2024/12/02
由於前篇提到說純的logic gate 的CG cell有些先天上的缺點在, 像是enable output 必須在指定的區間內才能trigger, 這也使的這條path上的timing變得更嚴苛, 因此就開發出了一個新的架構來解決上述的問題, 也就是大家常看到的latch based的cl
Thumbnail
2024/12/02
由於前篇提到說純的logic gate 的CG cell有些先天上的缺點在, 像是enable output 必須在指定的區間內才能trigger, 這也使的這條path上的timing變得更嚴苛, 因此就開發出了一個新的架構來解決上述的問題, 也就是大家常看到的latch based的cl
Thumbnail
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
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
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
數位IC裡我們關注的都是0或1, 大家都知道電腦是0101在做二進位的運算, 在晶片裡又是怎麼做到的? 實際上我們在設計晶片時,會給他一個VDD跟GND, VDD-GND給的是預期的Driving volatge, 像是5V或9V 以5V為例 0或1物理上就是目前的電壓靠近0V或5
Thumbnail
數位IC裡我們關注的都是0或1, 大家都知道電腦是0101在做二進位的運算, 在晶片裡又是怎麼做到的? 實際上我們在設計晶片時,會給他一個VDD跟GND, VDD-GND給的是預期的Driving volatge, 像是5V或9V 以5V為例 0或1物理上就是目前的電壓靠近0V或5
Thumbnail
本文介紹了抽水馬達和繼電器的工作原理,以及如何與Arduino搭配使用。繼電器的定義、結構、和工作原理,以及抽水馬達的定義、結構、和工作原理都有詳細說明。此外,還介紹了串聯和並聯的關係,並提供了抽水馬達模組的程式碼。
Thumbnail
本文介紹了抽水馬達和繼電器的工作原理,以及如何與Arduino搭配使用。繼電器的定義、結構、和工作原理,以及抽水馬達的定義、結構、和工作原理都有詳細說明。此外,還介紹了串聯和並聯的關係,並提供了抽水馬達模組的程式碼。
Thumbnail
本文摘要出我覺得IC開發流程中最基本的相關知識,幫自己的成長做紀錄,也分享給剛加入半導體/IC產業的小白們,希望這篇文章可以提供幫助。
Thumbnail
本文摘要出我覺得IC開發流程中最基本的相關知識,幫自己的成長做紀錄,也分享給剛加入半導體/IC產業的小白們,希望這篇文章可以提供幫助。
Thumbnail
C#學習十天出頭,還在基礎的程式用語打混著。         常問那位工程師好友一堆蠢問題。某次看著書本中int整數相關程式碼的問題,當然問朋友,他也一頭霧水,因為我根本搞懂問題在哪?問的又是什麼?所以朋友也不知從何回答我起,我也翻翻書找找,也看到int的定義範圍,但還是「霧煞煞」,但是先把程式碼弄
Thumbnail
C#學習十天出頭,還在基礎的程式用語打混著。         常問那位工程師好友一堆蠢問題。某次看著書本中int整數相關程式碼的問題,當然問朋友,他也一頭霧水,因為我根本搞懂問題在哪?問的又是什麼?所以朋友也不知從何回答我起,我也翻翻書找找,也看到int的定義範圍,但還是「霧煞煞」,但是先把程式碼弄
Thumbnail
此為蔡老師提供給修課學生的參考資料的handout,為Jure Leskovec 課程的Graph Neural Network投影片的簡略解說,在此分享給有興趣的同好。這可不是完整的介紹文章,請對照原投影片使用。
Thumbnail
此為蔡老師提供給修課學生的參考資料的handout,為Jure Leskovec 課程的Graph Neural Network投影片的簡略解說,在此分享給有興趣的同好。這可不是完整的介紹文章,請對照原投影片使用。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News