[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
留言分享你的想法!
Jun-Tsung Wu-avatar-img
2025/05/28
大佬您好,由於最近有使用clock gating的設計與合成(第一次碰CG),在Timing上也遇到一些困擾,剛好看到您這幾篇覺得受益良多。不過我這邊的問題似乎還是想不到如何解決,因此想請教您看看! 我在rtl code中應該是寫ICG的寫法,然而利用design compiler合成(應該是有合成出CG cell)。 其中,會出現gclk與clk之間有延遲(D),而原本要被gclk posedge時trigger的訊號(flag) 因為合成加入timing 資訊後,與主要clk也會有些微延遲(d)。 而合成後發現,D>d,會導致gc沒有在正確時間trigger flag,導致simulation有錯。 我在design compiler中是使用compile -gated_clock進行合成 但也沒很確定合出來的結果是否正確。 以上想請教一下大佬,麻煩您了,謝謝!
出一張嘴-avatar-img
發文者
2 天前
Jun-Tsung Wu 您好 您可以check一下violation的timing path 如果是clk gating check violation的話 應該會去check enable pin的timing是否能滿足 需要先check這條enable組成的訊號是否為預期的會比較好下手 需要開synthesis後的netlist和timing report作比對一下 抓到path後回去對應rtl 應該跟您coding的行為可以對上 等match後才好想解法,對於cg chk violation的解法確實偏難 最差的狀況就是eco tie住enable放棄這顆cg 所造成的impact是pwr上升但function work
avatar-img
數位IC設計第一品牌
76會員
26內容數
數位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
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
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的定義範圍,但還是「霧煞煞」,但是先把程式碼弄
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News