基于ASIC的功耗評估與優化設計
Power estimation and optimization based on ASIC design
本文引用地址:http://www.j9360.com/article/201903/399036.htm尹遠,黃嵩人
(湘潭大學物理與光電工程學院,湖南 湘潭 411105)
摘要:隨著芯片設計的復雜度和規模越來越大,現如今ASIC芯片的功耗要求也越來越高。低功耗設計作為一個重要目標,需要設計者格外重視[1] 。在本文中,首先討論了功耗的組成及來源,闡述了在設計初期的功耗評估,以及功耗優化的思路[1] 。接著描述了功耗優化的具體操作技巧,其中詳細描述了時鐘門控的原理、實現流程等,最后對功耗優化的效果進行分析和比較。
關鍵詞:低功耗設計;功耗評估;功耗優化;時鐘門控
0 引言
隨著便攜式導向的消費類電子產品的需求不斷增大,便攜式電子設備的低功耗需求、基于可靠性與性能影響的考慮、芯片設計及制造的成本影響等,都體現了低功耗設計的需求和必要性。因而對功耗要求也越來越高,低功耗設計已逐漸成為衡量電子產品是否成功的重要指標,使得芯片設計者也越來越重視對功耗的優化設計。近來工藝技術的快速提高,面積、速率、溫度等性能要求不斷提升,這些改變對芯片的功耗優化設計有著很重要的影響。尤其對于追求低功耗、微型化、高可靠性等目標的ASIC芯片來說,更是面臨著不小的挑戰。
本文將介紹芯片功耗的來源和構成,及其基本概念。然后介紹芯片的功耗的評估計算方法和途徑,提出在ASIC芯片設計中進行功耗優化的思路,同時結合EDA工具輔助實現,介紹對芯片設計初期階段的核心功耗進行優化的具體操作流程,最后進行功耗優化后的分析。
1 功耗的構成
功耗的構成按照類型分類,主要由動態功耗和靜態功耗兩部分構成,通常動態功耗占芯片整體功耗的絕大部分 [2] 。
(1)動態功耗,是電路在工作時所消耗的能量。
對于CMOS電路,動態功耗又分為開關功耗和短路功耗,即PDynamic =Pswitch +Pinternal[3] 。開關功耗也稱為翻轉
功耗(Switching Power),由電路翻轉時對負載電容充放電引起,即
短路功耗也叫內部功耗(Internal Power),在輸入翻轉時PMOS和NMOS同時導通的瞬間電流形成,即Pinternal =VDD ·Tr·Qx[4]。
?。?)靜態功耗,是在電路沒有翻轉只供電的情形下,晶體管中漏電流造成的功耗,所以也叫漏電功耗(Leakage Power),公式為Pleakage=VDD·Ileakage。靜態功耗的來源有幾種方式,很大比例是由源極和漏極之間的亞閾值漏電流造成,另外還有柵極漏電流、柵極和襯底之間的隧道漏電流等引起的漏電功耗。
上述公式中,VDD為電路供電電壓,C為門電路的等效電容負載,Tr為信號的翻轉率,為一次翻轉過程中電源到地的電荷量,Ileakage為泄漏電流。
2 功耗的評估
功耗評估是低功耗設計中的重要內容,在芯片設計的各個階段,都有相應的方法去評估功耗,提前幫助設計者更科學有效的做好功耗優化。
2.1 功耗評估方法
在設計前期階段,對功耗的估算主要可以通過手動計算和工具自動評估。
(1)手動計算:通過對功耗來源的分析,根據功耗總公式P=Pswitch+Pinternal+Pleakage,再結合工藝庫中有關功耗的信息,進行理論估計。根據上文中提到的公式,可以由重要的參數進行功耗的具體估算,再根據不同的條件在工藝庫中查找對應的信息。工藝庫中包含了標準單元的功耗信息,在使用軟件或手動對RTL級代碼和門級網表做功耗分析時,都需要用到。
(2)工具自動評估:在RTL級代碼完成后,可以通過Spyglass等軟件進行低功耗的代碼風格檢查,找出可進行優化的邏輯模塊。一般常用Synopsys公司的工具(從屬于Design Compiler),對RTL級和門級網表進行分析并優化。
由于電路級的功耗評估的延時過多,需要大量的時間和資源,所以在工業實踐中很少采用。實際的功耗分析常對設計初期的RTL級和門級網表進行,通過工具自動計算出功耗的數值,因是在理想情況且忽略了包括物理設計等因素,所以獲得的結果不夠精確,但對低功耗設計具有重要的指導作用。物理設計完成后可通過Prime Time PX工具精確計算功耗,不過屆時再降低功耗收益就小了。
2.2 功耗評估流程
在實際大規模的集成電路項目中,通過手工計算功耗是不現實的,一般需要借助EDA工具。以Power Compiler來說,功耗的分析主要兩種方法,分別是設置翻轉率(無向量分析法)和仿真分析法,都需要獲取每個節點的開關行為情況。
仿真分析法更方便精確,其關鍵是獲得文件,本質是一種記錄開關動態行為的內部交換格式的文件,后用軟件讀取進行功耗分析。SAIF文件可由VCS等仿真工具對RTL級電路仿真或者門級網表電路仿真后得到,之后便可進行功耗分析[5] 。
3 功耗的優化
3.1 功耗的優化思路
一般而言,可利用自頂向下的方法進行低功耗設計的思考,而且優化的抽象層級越高,越能獲得顯著的功耗降低效果。首先應從系統與架構級層面思考功耗優化,然后思考在RTL級與門級進行低功耗設計的方法。
?。?)系統與架構級功耗優化:在設計初期的系統結構層級,可以通過優化算法使得如加法器、乘法器、存儲等資源和操作的使用最小化,實現對硬件資源的合理配置與使用。也可以增加休眠待機模式,減少芯片不必要的工作時間。
?。?)合理選擇并行或者流水線技術,可以適當降低功耗。采用并行處理可以降低系統工作頻率,從而可降低功耗[6]。流水線技術(Pipeline)是將組合邏輯系統地拆分,并在各級之間插入寄存器,這樣每一步小操作的時間減小,可提高工作頻率,又能并行執行提高處理速度,還能以較低的電壓來驅動系統。
?。?)邏輯優化與資源共享:RTL級代碼設計時可進行邏輯優化,減少硬件資源消耗。使用良好的編碼風格,利用數據編碼來降低開關活動,例如用格雷碼比用二進制碼翻轉更少,功耗更低[6]。簡化狀態機,降低每次工作的狀態機的寄存器數量,為功耗降低提供了可能性。進行邏輯共享,提高如FIFO、查找表、RAM存儲資源的利用率。
此外在RTL級與門級中,常采用的低功耗設計技術是時鐘門控[7]。
3.2 時鐘門控
3.2.1 時鐘門控原理
動態功耗是芯片功耗主要部分,是由電路翻轉引起負載電容的充放電,所以降低電路中冗余的翻轉動作,關閉未工作時的電路的時鐘網絡使其處于靜態,是一種降低功耗的重要思路。時鐘門控技術通過控制時鐘的翻轉,降低電路的翻轉率,從而達到降低動態功耗的目的,使用門控時鐘技術能有效降低芯片的系統動態功耗,所以在低功耗設計中使用較多,廣泛應用于大規模集成電路設計中[2]。
如圖2所示,通過門控單元控制時鐘信號的翻轉,從而實現對寄存器或模塊的工作時鐘的開關控制,決定數據是否向下一級邏輯傳播。避免了冗余信號的翻轉,從而降低了電路的動態功耗[8]。
隨著設計規模的增大,通過手動方式添加時鐘門控邏輯效率很低,因而目前業界主流是通過EDA工具在綜合階段根據RTL級代碼的特點自動插入時鐘門控邏輯[2]。
3.2.2 時鐘門控單元的選擇
時鐘門控的實現方式有多種,最常用的是free和Latch-based。Latch-free類型時鐘門控一般是由結構簡單的與門或者或門電路組成,但對時序要求較高。比如由與門組成的電路波形圖中時鐘信號CLK和使能信號EN相與,得到的門控時鐘GCLK出現了毛刺,影響了電路的穩定性[2]。因此大部分設計使用Latch-based時鐘門控電路,其電路圖如下:
3.2.3實現流程
上圖描述了利用DC工具插入時鐘門控單元的流程,首先是選定時鐘門控類型,然后讀取RTL設計文件、定義時鐘策略,再插入指定類型的時鐘門控單元,最后邏輯綜合的過程[2] 。其中選取時鐘門控類型是最關鍵的環節,具體命令如下:指定使用基于latch的門控電路類型,-minimum_bitwidth意味著一個門控時鐘至少需要3個寄存器,指定時鐘上升沿/下降沿觸發的寄存器所用的門控單元,-setup/hold指定的是setup/hold time的約束,-maxfanout指定的是最大扇出數[5]。另外可以查看工具手冊,進行更多自定義選擇。
3.2.4 結果分析
基于某ASIC工程在臺積電90 nm工藝下進行實踐,獲得的結果如下:被時鐘門控的寄存器占比達90%,因而能控制寄存器翻轉,可有效降低動態功耗。統計功耗優化前后的具體數據,如表1所示。在90 nm工藝下,從DC綜合后獲得的信息來看,可以直觀看出功耗降低效果顯著,面積也節省了約37%,實踐證明時鐘門控技術是一種行之有效的降低功耗的方法。
4 結論
本文來源于科技期刊《電子產品世界》2019年第3期第1頁,歡迎您寫論文時引用,并注明出處在目前日趨復雜的芯片設計中 , 更 加 追 求 性能、面積、功耗等設計目標,低功耗優化設計已是重要指標之一。本文從設計需求實際出發,首先分析了功耗的構成及來源,然后闡述了功耗評估的方法,最后基于ASIC設計重點講述了功耗優化的若干方法,并對時鐘門控技術做主要說明,并實踐證明獲得了顯著的功耗降低效果[1]。
影響功耗的因素眾多,優化的方法也很多,需要結合項目實際,在不同的設計階段綜合運用不同的優化方法來降低功耗,全局綜合考慮,以達到功耗、性能、面積等多方面的優化提升[9]。
參考文獻
[1] 于立波.芯片設計中的功耗估計與優化技術[J].中國集成電路,2010,19(06):37-43.
[2] 茅錦亮.動態時鐘門控管理策略的設計與實現[D].東南大學,2014.
[3] Synopsys. Low Power Methodology Manual[EB/OL].www.synopsys.com/lpmm.
[4] 楊玲.基于電路級的低功耗關鍵技術研究[D].上海交通大學,2010.
[5] Synopsys. Power Compiler User Guide[EB/OL].www.synopsys.com.
[6] 王彬, 任艷穎.數字IC系統設計[M].西安電子科技大學出版社,2005
[7]喻賢坤,姜爽,王磊,王莉,彭斌.數字集成電路門控時鐘可靠性研究[J].電子技術應用,2017,43(01):60-63+67.
[8] 嚴石.面向DSP的時鐘門控技術的優化與設計[D].東南大學,2016.
[9] 袁博.集成電路設計中乘法器的低功耗算法與實現技術研究[D].西安電子科技大學,2013.
作者簡介:
尹遠(1993-),男,湖南張家界人,碩士研究生,主要研究方向:數字集成電路設計。
黃嵩人(1972-),男,江蘇無錫人,碩士研究生導師,主要研究方向:SOC設計,射頻識別技術。
本文來源于科技期刊《電子產品世界》2019年第4期第54頁,歡迎您寫論文時引用,并注明出處
評論