晶片設計是每個國家的發展重點之一,而壯大中國晶片設計行業將有利於降低我國對國外晶片的依賴程度。再往期文章中,小編曾對晶片設計的正反向流程、晶片設計前景等內容進行過相關介紹。本文中,小編將為大家介紹帶來晶片設計實戰篇——射頻識別晶片設計中的時鐘樹功耗的優化與實現。
1 概述
UHF RFID是一款超高頻射頻識別標籤晶片。該晶片採用無源供電方式:在收到載波能量後,RF前端單元產生Vdd電源信號,供給整晶片工作。由於供電系統的限制,該晶片無法產生較大的電流驅動,因此低功耗設計成為晶片研發過程中的主要突破點。為了使數字電路部分產生儘量少的功耗,在數字邏輯電路設計過程中,除了簡化系統結構外(功能簡單,只包含編碼模塊、解碼模塊、隨機數生成模塊、時鐘、復位模塊,Memory控制單元以及整體控制模塊),在部分電路設計中採用了異步電路設計方式。在這個過程中,我們看到由於時鐘樹消耗掉了數字邏輯的很大一部分功耗(大約30%以上),所以降低時鐘樹帶來的功耗也成為降低數字邏輯功耗以及整個標籤晶片功耗的重要步驟。
2 晶片功耗組成及降低功耗的方法
2.1功耗的組成
圖1 晶片功耗的組成
動態功耗主要包括短路功耗和翻轉功耗,是本設計功耗的主要組成部分。短路功耗即內部功耗,指由器件內部由於P管和N管在某一瞬間同時導通引起的瞬時短路引起。翻轉功耗由CMOS器件的輸出端負載電容充放電引起。漏電功耗主要包括亞閾區漏電和柵極洩漏引起的功耗。
當今,功耗兩個最主要的來源是:電容轉換和亞閾值洩漏。
2.2降低功耗的主要方法
圖2 降低晶片功耗的主要方法
2.2.1降低電源電壓Vdd
Voltage Island:不同的模塊使用不同的供電電壓。
MulTI-level Voltage Scaling:同一模塊中存在多種電壓源,根據應用不同在這些電壓源之間切換。
Dynamic Voltage Frequency Scaling:「多級電壓調整」的升級版,根據各模塊的工作頻率動態進行電壓調整。
AdapTIve Voltage Scaling:DVFS的升級版,使用能夠監視電路行為的反饋電路,自適應地調整電壓。
亞閾值電路(設計困難較多,還停留在學術界研究範圍)
2.2.2降低頻率f及翻轉率A
代碼優化(提取公因子,資源重用,operand isolaTIon,串行工作降低峰值功耗等)
門控時鐘
多時鐘策略
2.2.3降低負載電容(CL)及電晶體尺寸(Wmos)
減少時序單元
晶片面積和規模減小
工藝升級換代
2.2.4降低漏電電流Ileak
控制閾值電壓(Threshold Voltage)(閾值電壓↑漏電流↓如使用MTCMOS 、VTCMOS 、DTCMOS)
控制柵極電壓(Gate Voltage)(通過控制柵源電壓以控制漏電流)
Transistor Stack(串接冗餘電晶體,增加電阻以降低漏電流)
門控電源(Power gaTIng或PSO)(在模塊不工作時,關斷電源,即可有效減小漏電流)
3 RFID晶片中時鐘樹功耗的優化
晶片工作時,很大一部分功耗是由於時鐘網絡的翻轉消耗的,如果時鐘網絡較大,這部分引起的功耗損失會很大。在眾多低功耗技術中,門控時鐘對翻轉功耗和內部功耗的抑制作用最強。本設計多級門控時鐘技術相結合,以及特殊的時鐘樹優化策略,節省了很大一部分功耗。本項目在邏輯設計時使用了功耗的多種優化策略,在後端的綜合和物理設計也嘗試了一些方法,通過前後端幾次功耗優化和迭代,找出最小功耗的邏輯代碼設計和綜合的方法。
4.1 RTL階段手工加時鐘門控
圖3 門控時鐘原理圖
module data_reg (En, Data, clk, out)
input En,clk;
input [7:0] Data;
output [7:0] out;
always @(posedge clk)
if (En) out = Data;
endmodule
這個階段的目的主要有兩個:第一是根據各模塊時鐘翻轉概率更加合理的加入門控時鐘單元以控制翻轉率,減小動態功耗,第二是產生一個結構儘量平衡的時鐘網絡,這樣可以保證在後端時鐘樹綜合階段可以少加入一些時鐘buffer以減小功耗。在實際的代碼設計中可以直接採用foundry單元庫中的ICG(集成門控)單元。
4.2 綜合階段工具插於集成門控單元
圖4 邏輯綜合過程中門控時鐘插入
#Set clock gating options, max_fanout default is unlimited
set_clock_gating_style -sequential_cell latch \
-positive_edge_logic {integrated} \
-control_point before \
-control_signal scan_enable
#Create a more balanced clock tree by inserting 「always enabled」 ICGs
set power_cg_all_registers true
set power_remove_redundant_clock_gates true
read_db design.gtech.db
current_design top
link
source design.cstr.tcl
#Insert clock gating
insert_clock_gating
compile
#Generate a report on clock gating inserted
report_clock_gating
這個階段的目的是通過綜合工具(DC)進行門控單元的自動插入,以便進一步減小功耗。
需要注意的是對插入ICG的參數的設定,比如maximum fanout(扇出越大越節省功耗,扇出越平衡skew越小,視設計而定,如圖所示),以及minimum_bitwidth參數的設定,另外對於較複雜的門控結構需要插入常開ICG以使時鐘網絡結構更加平衡。
4.3 時鐘樹綜合階段優化功耗
圖5 兩種時鐘樹結構對比(a):多級縱深型;(b):少級扁平型
先介紹一下時鐘樹綜合參數對時鐘樹結構的影響:
Skew :時鐘偏移,總的時鐘樹綜合目標。
Insertion delay(Latency):時鐘路徑總延時,用於限定時鐘樹級數的增加。
Max taranstion:由最大轉換時間限定一級buffer能驅動的buffer 的數量。
Max Capacitance Max Fanout:由最大負載電容、最大扇出限定一級buffer 能驅動的buffer 數量。
一般設計中的時鐘樹綜合以降低時鐘skew為最終目的,加大level級數,減小每級fanout,將投入較多buffer,更精確的平衡每條時鐘路徑的 latency,從而得到較小skew。但是對於低功耗設計,尤其是當時鐘頻率較低的時候,時序要求並不是很高,所以希望能減小時鐘樹的規模以減小時鐘樹帶來的動態翻轉功耗。如圖所示,通過減小時鐘樹level級數,加大fanout可以有效減小時鐘樹的規模,但由於buffer 數量的減少,較之多級結構的時鐘樹,級數較少結構的時鐘樹只是大概平衡每條時鐘路徑的latency,得到的skew較大。可見,以降低時鐘樹規模為目標,進行低功耗時鐘樹綜合是以增大一定的skew為代價的。
具體到本RFID晶片,我們採用了TSMC 0.18um CMOS LOGIC/MS/RF工藝,時鐘頻率只有1.92M,是非常低的,此時時鐘進行時鐘樹綜合時,採用以降低時鐘樹規模為目標的低功耗時鐘樹綜合,主要對 skew,latency和transiton這幾個約束進行了設定,由於約束fanout會帶來時鐘樹級數的增加,帶來功耗的增加,所以沒有設定這個值,採用庫裡的默認值。在實際中,我們使用了9種不同的時鐘樹約束條件,約束條件及綜合結果如表1 所示。
5 結論
如表1所示,總的趨勢就是target skew設的越大,最終的時鐘樹規模越小,時鐘樹buffer數量越小,對應的動態靜態功耗也越小,這樣就達到了節省時鐘樹功耗的目的。可以看到當target skew大於10ns後,功耗基本不再變化,但是基於大的skew值會帶來hold時序的變差導致修復時序的時候插入buffer增多,所以應該進行折中,從圖表來看策略5和策略6為優選方案。另外當skew設置選出最優後,還可以看到Max transition值設的越大最終得到的功耗也越小,這可以理解為時鐘信號躍遷的時間越長所需要的能量越小。另外latency約束的設置可以儘量放大,其值的大小對最終的功耗結果影響不大。
以上便是此次小編想要和大家分享的內容,希望大家喜歡本文。最後,十分感謝大家的閱讀。