在Soc設計中,必然要用到低功耗設計策略。低功耗設計涉及clock gating,power gating,多電壓域設計技術。在之前推送的低功耗設計篇提到低功耗設計中常用的一些cell,比如Isolation cell,level-shifter, AON buffer等。針對他們的擺放要求也簡單做過介紹,我相信大家也都特別清楚了。如果你是小編的忠實粉絲兼星球成員,我相信低功耗設計實現相關方法論,你肯定沒什麼問題。

這些低功耗設計實現經驗,你真的懂了嗎?

淺談數字IC低功耗設計的若干種低功耗設計方案

今天吾愛IC社區小編主要做一個關於secondary power pin的連接方法及其注意事項的分享。

  • Isolation Cell

Isolation cell一般都只佔一條row的高度,它的power pin和標準單元是一樣的。無需做特別處理。

  • AON Buffer

一個特殊信號,比如控制power switch cell開關的req,ack,鉗位clamp信號,從Power domain1穿越另外一個Power domain2時,由於此類信號需要反饋到AON的Domain,而Power domain2也是local的power,此時就需要用AON buffer來create一段buffer tree,實現從PD1--->PD2--->AON的跨越 。

AON buffer一般有global power pin VDDC, global ground pin VSSC,local的power pin為VDD,local ground pin為VSS,如下圖所示。

對於這類secondary power pin的連接方法,其實有很多種方法(主要有三種方法,下面做介紹),目的是一致的,需要將這類pin連接到對應的power net上。

  • Level Shifter

Level Shifter一般有High-Low,Low-High以及同時支持HL和L-H這三種類型。考慮到應用的靈活性,設計中一般用的是最後一種類型的Level shifter。另外還有普通Level shifter和Enable Level Shifter之分,這個希望大家在添加level shifter時不要搞錯了。

Level Shifter一般是佔用兩條row的高度。通過查看lib文件可以得知其含有多少個power pin,那些pin是 std cell main rail,那些pin是secondary power pin,如下圖所示。

對於一個數字IC晶元中含有幾千個這樣的Level shifter,我們應該如何去連接這類secondary power pin呢?主要有三種連接方法,下面分別詳細介紹這幾種方法。

  • Secondary Power Rail

這種方法是將Level shifter中secondary power pin所在的位置,延伸至整個core區域,從而作為一條secondary power rail。這種方法可以實現一勞永逸,通過普通的preroute就可以實現。只要將powerplan規劃好即可,無需管Level shifter的位置。這種方法是最robust的方式,供電最充足,而且最簡便。

  • Preroute 到Power Mesh上

當第一種方法不能採用時(何時不能用?留給大家思考),我們可以考慮將secondary power pin preroute到我們設計的power strap上。通過這種方法也可以實現secondary power pin的連接。

但是採用這種方法,有個缺點。當你挪動Level shifter時,對應的secondary power pin就斷開了,需要重新做preroute。另外用這種方法很容易出現動態IR drop有較大壓降的問題。

很多數字後端工程師往往沒有這方面的概念,只知道將所有的secondary power pin連接好就OK了,殊不知僅僅這麼做,可能已經埋了一個大炸彈。吾愛IC社區的小編一直強調要做一個有價值的數字後端工程師,要力爭將同樣的工作做得比別人好,比別人精細。

  • Signal route布線

最後一種方法就是讓工具在route階段用signal route的方式將這些secondary power pin連接到power mesh上。這種方法是最簡單,同時也是最粗暴的一種方法。反正我是絕對不會用的。一方面不方便項目review,另外一方面secondary power pin連線很不規律,不美觀。

不論採用何種方法,在連接secondary power pin時,應該嚴格遵守以下幾個原則,這些要點都是小編經過多個項目實戰總結出來的。

  • High Fanout處理

如果採用第二種方法時,需要格外注意power strap所驅動的fanout數量。過小的fanout可能會導致某些secondary power pin無法連接到power strap,出現pg floating的情況。過大的fanout則會出現帶不動的情況,特別容易出現靜態和動態IR Drop的問題(這個是很普遍的現象)。

IR Drop分析之Redhawk分析流程

  • High Resistance處理

當採用第二種方法時,需要格外注意高電阻路徑,這樣的供電路徑是IR drop的weakness的地方。雖然可能本身IR drop沒有問題,但這個是潛在的隱患。此隱患不除,晶元回來可能怎麼死的都不知道。

這種高電阻路徑就是指某個Level shifter的secondary power pin需要走一段相對比較長的路徑,纔能夠到達power strap。出現這種情況有兩種原因,一種是power mesh 比較薄弱,另外一種是實現時某些app option沒有設置好,導致工具沒有就近選擇power strap來進行power pin的連接。

  • NDR設置

無論採用何種方法,都需要指定一個比較寬的金屬層來連接這個secondary power pin。而且這個金屬層次往往要選用高層的金屬,這樣電阻能夠小些,壓降會相對小點。

星球上的思考題,大家多多思考,歡迎來星球與小編交流。

對於low power設計中何時用Isolation cell,何時用level-shifter,如何選型,如何擺放這類cell,如何處理它們的secondary power pin等一系列問題,歡迎踴躍交流,談談你們的看法,或者談談你們困惑的地方。 可以結合下面的四核cpu為例,各個cpu根據應用需求可以進行powerdown,scu和L2這層也需要poweroff,同時整個cpu subsystem做了DVFS。請大家思考下如何規劃powerplan?如何添加isolation cell和level shifter?擺放這類cell有何特別要求?(搞懂這個問題,低功耗實現問題從此就不會困擾你了!)

小編知識星球簡介(如果你渴望進步,期望高薪,喜歡交流,歡迎加入):

在這裡,目前已經規劃並正著手做的事情:

  • ICC/ICC2 lab的編寫
  • 基於ARM CPU的後端實現流程
  • 利用ICC中CCD(Concurrent Clock Data)實現高性能模塊的設計實現
  • 基於ARM 四核CPU 數字後端Hierarchical Flow 實現教程
  • 時鐘樹結構分析
  • 低功耗設計實現
  • 定期在星球佈置作業題(星球已經支持佈置作業功能)

在這裡,各位可以就公眾號推文的內容或者實際項目中遇到的難題提問,小編會在24小時內給予解答(也可以發表你對數字後端設計實現中某個知識點的看法,項目中遇到的難點,困惑或者職業發展規劃等)。

反正它是一個縮減版的論壇,增強了大家的互動性。更為重要的是,微信有知識星球的小程序入口。星球二維碼如下,可以掃描或者長按識別二維碼進入。目前已經有172星球成員,感謝這172位童鞋的支持!歡迎各位鐵杆粉絲加入!終極目標是打造實現本知識星球全員年薪百萬的宏偉目標。(星球的門檻將會越來越高,有需求的朋友趁早上車)

推薦閱讀:

相關文章