加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 門控時鐘介紹
    • cg方法1:使用與邏輯
    • cg方法2:加入鎖存器
    • cg方法3:使用標準單元庫
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

數(shù)字芯片中的低功耗設計(一)

2022/08/15
1977
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

功耗是芯片中比較重要的一個性能指標,有時甚至可以決定一個芯片的成敗。眾所周知,前段時間鬧得沸沸揚揚的“驍龍火龍”事件,就大大影響了這款芯片的市占率。對于工業(yè)級和車規(guī)級的芯片,功耗的高低體現(xiàn)的不是很明顯。對于消費級芯片(如手機CPU,IoT芯片等),由于往往應用在小型移動設備中,低功耗設計就顯得尤為重要。

有業(yè)內(nèi)專家曾經(jīng)指出,在不同的設計層次,進行功耗優(yōu)化的效果也不同。下表顯示了在一個產(chǎn)品的不同周期,可以減少功耗的百分比。

設計層次 降低功耗百分比
版圖級 <5%
晶體管 5%
門級 10%
RTL級 20%
系統(tǒng)級 >50%

從芯片層級,降低功耗的方法可以從工藝和設計兩方面入手。其中,工藝的優(yōu)化是fab廠的工程師需要考慮的,作為一名芯片碼農(nóng),主要考慮的就是設計層次。從設計層面,降低功耗的方法主要有下面兩點:做門控時鐘,做模塊并行。

門控時鐘介紹

一般來講,時鐘樹貫穿于整個芯片內(nèi)部,由大量的buffer和反相器組成。時鐘信號作為芯片中toggle率最高的信號,功耗可高達整個芯片功耗 的30%,甚至更高。加入門控時鐘(clock gating,cg)電路,可大大降低時鐘樹的toggle行為,從而降低開關功耗。此外,時鐘引腳開關行為的減少,寄存器的內(nèi)部功耗也會減少。門控時鐘是減少功耗的有力手段,在時鐘被門控關閉后,該時鐘網(wǎng)絡和其中的寄存器都會停止翻轉,因此功耗會顯著減低。一個典型的門控時鐘設計如下圖所示:

 對于時鐘源clk_source經(jīng)過一個額外的與門U2A,當clk_en為高時,clk_source能過通過到達U1A觸發(fā)器,當clk_en為低時clk_source無法到達觸發(fā)器。當clk_en為低時,觸發(fā)器及其時鐘網(wǎng)絡中的所有組合邏輯停止翻轉,out端保持不變。由于clk_source經(jīng)過了U2A與門,所有會產(chǎn)生一定的時鐘偏移。在波形分析上,下面這個圖可以比較好的理解門控時鐘的概念,只有當clk_en為高的時候,clk_out=clk_in,否則,clk_out=0。

 

cg方法1:使用與邏輯

這個也是最簡單的方法,直接將時鐘使能控制(門控)信號與時鐘做"與"邏輯。這個辦法簡單粗暴,但是也有一個嚴重的缺點:會有毛刺。當clk為低的時候,clk_en可任意變化,gclk都是低。但當clk為高的時候,clk_en必須保持不變,才能保證沒有毛刺,那什么東西能讓clk_en保持不變呢?

答案就是:鎖存器

cg方法2:加入鎖存器

在clk為低時鎖存器連通、clk為高時鎖存器鎖住,如下圖:

波形圖如下,可見當clk為低的時候gclk為低沒跑,但clk為高的時候,gclk的值可看作是clk上升沿采樣的clk_en的值。所以使用Latch可以有效地鎖存clk_en值,同時不影響clk的周期性。Latch門控時鐘的本質是clk上升沿鎖住了clk_en值,讓clk為高時clk_temp不會翻轉,所以消除了毛刺。

其RTL代碼如下:

always@(*) begin  if(clk)    clk_temp = clk_en;  else    clk_temp = clk_en;endassign gclk = clk & clk_temp;

cg方法3:使用標準單元庫

雖然使用 latch 可以解決門控時鐘毛刺的出現(xiàn),但是時序也需要嚴格的約束。FPGA 或 IC 設計時,綜合庫中往往會有集成門控邏輯單元。此類門控邏輯單元經(jīng)過了大量的更新迭代和驗證,使用起來更加的方便、安全。因此一般情況下,門控時鐘的設計也都會直接調用專用的集成門控邏輯單元。調用方式和基本的與門、緩沖器等基本單元類似,直接例化即可。

相關推薦

電子產(chǎn)業(yè)圖譜