數字后端——電源規劃

????????電源規劃是給整個芯片的供電設計出一個均勻的網絡,它是芯片物理設計中非常關鍵的一部分。電源規劃在芯片布圖規劃后或在布圖規劃過程中交叉完成,它貫穿于整個設計中,需要在芯片設計的不同階段對電源的供電網絡進行分析并根據要求進行修改。,主要分三部分內容進行分析:電源網絡設置數字與模擬混合供電單電源與多電源供電電源網絡設置。其中電源環線(power ring)和電源條線(power stripe)的設置為主要工作。

? ? ? ? 如上圖所示,左圖中左下角為硬核部分,硬核部分的上方和右側的電源線稱為模塊電源環。右圖是多電源多電壓中應用的電源環分布示意圖。

????????芯片供電是通過I /O 單元來實現的,在做電源規劃和電源網絡設計時,首先要做電源預算(power budgeting),商用產品慣例認為總的誤差應當控制在5%之內。它包括從電源網絡和PCB板級到封裝bonding之間的波動(約為1%),再到電源I /O 單元和電源環之間的波動(約為1%)和最終直至標準單元之間的電壓降(約為3% ) 。更準確的預算則通過功耗分析的手段來做定量計算。

一、電源網絡的設計

????????這里闡述的電源網絡設計是針對于普通的I /O 單元四方分布的數字芯片設計,對于復雜的數模混合設計以及多電源設計將在后面的分別闡述。供電網絡設計主要內容有以下幾部分組成:

  1. 電源連接關系的定義,又稱為global net connect。
  2. 芯片核內(core)部分的電源環設計,又稱為power ring。
  3. 芯片內所包含的硬核(如RAM、ROM以及IP、COT模塊等)的電源環設計。
  4. 芯片核內縱橫交錯的電源網格的設計,又稱為power stripe。
  5. 芯片的供電單元與電源環的連接,又稱為I /O 單元power。
  6. 芯片內部電源網格和硬核電源環連接部分的設計,又稱為ring pins。
  7. 將標準單元的供電網絡與核內電源網格總連接設計,又稱為followpins。
  8. I /O供電單元電源環的設計,又稱為I /O單元power ring。

????????最后我們還需要對電源網格進行檢查,檢查是否存在短路和開路以及供電不足等問題。對于Flip Chip的設計,供電網絡的設計還包括電源凸點bump的設計以及布線。下面分別介紹各部分的內容。

1、全局電源

????????在電源網格設計中,首先要對電源進行定義,主要包括:全局電源的定義以及連接關系的定義。全局電源網絡連接(global net connect)是指把相應的端口和網絡連接到合適的電源和接地網絡上去,從而使得我們針對整個設計可以正確無誤地順利完成供電網絡設計、電源布線、詳細布線和功耗分析等步驟。這些終端和網絡的連接信息一部分包含在Verilog網表中,另一部分則包含在相應的LEF文件當中。

????????通過Verilog網表中的定義,我們可以把以下幾種類型的網絡連接到相應的全局電源和接地網絡上去。

  • ?電源和接地網絡

????????它是將網表中每個標準單元和模塊等的電源和接地網絡連接到合適的全局電源和接地網絡上去。這些標準單元和模塊等的電源和接地網絡互連關系,在Verilog網表中主要通過關鍵字“wire”進行定義。

  • 接高電壓和接低電壓網絡

????????它是將接高電壓和接低電壓網絡連接到合適的全局電源和接地網絡上去。它們之間的互連關系,在Verilog網表中主要通過關鍵字“ 1'b0”、“ 1'b1”、“supply 0”,以及“supply 1”進行定義。

  • 電源和接地端口

????????它是將供電端口和接地端口連接到合適的全局電源和接地網絡上去。諸如“VDD、vdd、vdd!”和“VSS、vss、gnd!”等就是這些電源和接地端口和網絡在LEF文件中定義的名稱。

  • 填充單元網絡

????????它是將供電端口連接到合適的全局電源和接地網絡上去。在添加填充單元前后,均可通過手工指定相應的連接關系。

I / O 的拐角單元(corner cell)和I / O 填充單元(filler,spacer)。 因為I / O 在芯片周圍通常需要擺放成類似戒指(ring)一樣的環形,因此通過這兩個單元可以填充I /O單元之間的空隙以使它們形成電源和地的環狀網。

2、電源環線

????????電源環線(power ring)是指為了均勻供電,包圍在標準單元周圍的環形供電金屬,它也是連接供電I /O 單元和標準單元的橋梁,供電I /O 單元通過金屬連接到電源環,標準單元通followpins連接到電源環,從而構成了供電I /O 單元給標準單元以及硬核供電。電源網格是為了平均分布電流,縮短電流回路,在有效減小電壓降的同時,避免由于電流分布不均時造成的熱點(hot spot)現象以及電遷移(EM,electromigration)問題。

????????電源環的設計主要有3個參數:電源環的寬度\omega、電源環的間距d 以及電源環的對數n。電源環的參數也是根據功耗計算得來。

  • ?電源環的寬度

????????根據整個芯片的供電峰值電流以及廠家所給的設計規則中所允許的電流密度以及電源環的對數n所決定。

????????\omega = \frac{I_p}{C_d\cdot 4n}\cdot k?????????

????????式中,I_{p}是芯片的峰值電流?

? ? ? ? ? ? ? ? ?C_d是廠家工藝庫給出的電流密度上限

?????????????????n是電源環的數目

? ? ? ? ? ? ? ??k是調整因子,根據芯片的供電I /O單元分布而定

  • 電源環的間距

????????電源環的間距根據廠家所給的設計規則中的最小間距決定一般情況下為最小間距的2倍左右,但是也有工程師提出盡量減小電源環之間的間距,從而增大電源環的耦合電容,從而起到過濾電源噪聲的作用。

? ? ? ? 除以上兩個參數外,在芯片的制造過程中,一般寬線需要打孔散熱,所以廠家會制定寬線的規則。一般情況下,希望單個電源環的寬度不要超過廠家規定的寬線規則,從而避免打孔,打孔在芯片設計中又稱為slotting,更好的辦法是用splitting。電源環的對數n 由芯片的面積、廠家的設計規則、金屬的層數等多種因素決定。當金屬的層數較多時,可以選用多層金屬布置電源環,從而有效減小電源環的寬度和減小電源環所占據的芯片的面積

????????在有些設計中,還需要對硬核及RAM設計電源環,RAM以及硬核電源環寬度的設定也是根據硬核的供電電流決定,其設計的方法與核內的電源環相同,只需要指定電源環的所有參數便能自動生成。很多廠家提供的硬核在設計時已經產生了電源環,當應用到芯片頂層時只需要將電源網格連接到硬核內部自身的電源環即可,從而減小不必要的面積浪費。?

3、電源條線

????????芯片內部縱橫交錯的電源網格(power grid)或“電源條線"(power stripes)設計有專門的理論和算法。電源網格通常為均勻分布,電源條線通常是不規則或不均勻分布,電源網格可以看成是電源條線的特例。簡單說明電源條線相關內容。

???????從上圖中我們看出,電源網格中重要的4 個參數分別是:縱向電源條線的寬度W_{stripe-V},橫向電源條線的寬度W_{stripe-H};橫向電源條線的間距S1;縱向電源條線的間距S2。其中縱向電源條線的寬度W_{stripe-V}與橫向電源條線的間距S1成正比關系,也就是說寬度較大,間距就可以較大,電源條線的分布可以稀疏一點;橫向電源條線寬度值較小,間距也應該小一點,電源條線的分布需要密集一點。與縱向電源條線相比較,橫向電源條線的寬度W_{stripe-H}與其間距S2 的正比關系也存在,但是由于在橫向有很多標準單元的followpins的存在,需要的橫向電源條線比縱向電源條線要少很多。??

????????對于W_{stripe-V}W_{stripe-H}的設定,有以下幾個經驗規則:

  1. W_{stripe-V}的分布間隔一般取垂直布線間距(pitch)的整數倍,其目的是充分利用布線通道其值不能太大,一般情況下不要超過最小二輸入與非門寬度的4倍。每一層金屬的pitch在物理庫中都有相應的定義。?
  2. ?W_{stripe-V}的最大值取標準單元庫中最小與非門寬度的4倍。當芯片的利用率較高,布線擁塞程度較大時,一般選擇細密的電源網格。如果芯片的利用率非常低,那么將電源網格設計得越寬,其線上的電阻越小,電壓降越小
  3. ?W_{stripe-H}的取值一般是標準單元高度的整數倍,通常選擇1倍或者2 倍

?????????電源條線所選用的電源層也根據LEF中的規定所選,縱向必須用偶數層走線,橫向必須用奇數層走線。由于高層金屬具有較小的寄生電阻,用高層金屬走線可以有效地減少電壓降

二、數模混合供電

????????即使是純數字電路芯片設計,通常也要用到一個模擬模塊PLL作為時鐘信號發生器。今天的SoC設計中,數模混合電路則更加普遍,A/D、D/A及PLL等模擬模塊的集成到處可見。在數模混合供電設計中,需要特別注意電源信號之間的干擾和隔離,因而需要建立不同電源區域(power domain)。在布局前一般需作如下幾點考慮和處理:

  1. 模擬模塊的工作區域一般放置于芯片的某個角落。當設計中有多個模擬單元時,將多個模擬單元的位置應相對集中在芯片的某個角落,其中間不應該混合放置數字模塊。
  2. 模擬區域需要單獨供電,給模擬信號供電的I /O 單元應放在模擬模塊邊上,盡量縮短供電線路的長度
  3. 在模擬模塊的周圍布置保護隔離環(guarding ring),從而實現數字信號和模擬信號電源之間的隔離。

? ? ? ? 如上圖所示,電源規劃中的一些細節問題如下? ? ? ?

  • 數模信號模塊的放置。模擬PLL和模擬信號模塊處于芯片的右下角,右下角的I /O 單元均為模擬信號用的信號端口,在PLL和模擬信號模塊的周圍放置的都是低頻信號模塊,以避免數字信號跳變對模擬信號的影響
  • 數模信號模塊的供電。模擬PLL和模擬信號模塊均分別具有數字供電和模擬供電兩部分組成,其中模擬供電在內部,數字供電在外部,兩個模塊之間的模擬供電環是相通的,在外圍的數字供電部分與芯片的數字供電部分相聯合,在其底下加上保護環(guarding ring)用以隔離。在有些設計中,在條件允許的情況下或者嚴格要求下,既具有模擬供電也具有數字供電的模擬單元,數字供電部分也需要單獨供電,并與核內的其他數字供電部分保持隔離。
  • 數模信號模塊中的電源環。電源環設計可以采用多層金屬完成,從而節約電源環的寬度,降低電源環所占據的芯片面積。數模信號模塊中的電源環分別處理,相互獨立。
  • 數模信號模塊中的電源網格。數模信號模塊中的電源網格設計采用高層金屬完成布線,在高頻區域,電源網格較為密集,而在低頻區域電源網格較為稀疏。
  • 數模信號模塊中的電源設計方案。在整個芯片中,模塊的電源設計部分采用了自上而下和自下而上的兩種設計過程,這是模塊電源的典型設計方法。?

三、多電源供電

????????在數字芯片設計中,多電源供電(MSV,muki-Siipply voltage)早就被用來處理數模混合電路的供電。在數模混合電路的供電方案中,MSV專指多組電源同樣電壓(如均為1.2 V)供給不同電路(數字、模擬)。隨著低功耗設計技術的更多應用,同一芯片中則更多地采用多組電源多組電壓供電(MSMV,multi-supply multi-voltage)的方案。除了保留傳統的MSV的方法外,其中,關鍵模塊采用高電壓供電,頻率較低的模塊采用低電壓供電是有效降低功耗的一種方法。

1、電源規劃

????????每一個電壓域當中都必須有完整的電源和地線電源環。在創建電源環時,可以采用傳統的方法,即根據布圖規劃的情況指導工具完成設計,也可以通過自動供電網絡設計工具(APP,automatic power planner)為每一個電壓域指定一個合適的模板來進行設計,其步驟如下:

  1. 創建芯片核心電源環,其方法與單電源環設計一致,單電源環只有一對供電,而多電源環有多對電源供電,故而會占用較大的面積。
  2. 為每一個電壓域和硬宏單元模塊創建一個模塊電源環。在多電壓設計中,首先需要定義電壓域的內容,即每個電壓域的工作電壓和所包含的模塊,如果為相應電源環所指定的電源和地線網絡同電壓域定義的電源和地網絡不匹配,工具則會產生相應的警告提示。
  3. 為宏單元(硬核)模塊創建模塊電源環。

2、電平轉換單元的插入

????????在多個電源供電時,不同的工作電壓區之間需要插人電平轉換單元(VLS,voltage level shifter),其步驟如下:

  1. 讀入相應的電平轉換單元表。
  2. 在內部電壓域網絡上插入電平轉換單元。

3、隔離單元的插入

????????當設計中存在被關閉的電壓域,為了不使關閉區域與非關閉區域相互影響,必須在所有的接口處添加隔離單元(isolation cell),并要:①檢查出所有需要添加隔離網絡的信號端口 ;②在相應的接口信號處添加隔離單元。?

四、總結

????????布圖規劃與布局之間的電源規劃工作越來越復雜,其重要性也越來越大。設計中發現,不少DRC/LVS問題與電源規劃或電源設計有關。大多數的模塊級或芯片級DRC和LVS錯誤都是由供電問題引起的。由于DRC/LVS工具對于電源的抽取是通過一定的規則來提取,因此對于結構相同的電源部分,工具并不能很好地識別,從而會造成LVS的錯誤。因此在用sign-off的工具進行LVS檢查時,設計者可以“剔除”掉除電源和接地網絡外的所有其他單元和模塊,單獨運行僅僅針對供電網絡的DRC/LVS檢查和僅對內部網絡的檢查,其流程如圖:

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253724.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253724.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253724.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

逆向project實戰--Acid burn

0x00 序言 這是第二次破解 crackme 小程序,感覺明顯比第一次熟練。破解過程非常順利,差點兒是分分鐘就能夠找到正確的 serial,可是我們的目標是破解計算過程。以下將具體介紹。 0x01 初次執行 剛開始拿到 crackme 先執行程序。看看有哪些明顯…

PyCharm使用技巧(六):Regullar Expressions的使用

2019獨角獸企業重金招聘Python工程師標準>>> PyCharm v2018.2最新版本下載 使用正則表達式查找和替換文件中的文本 示例代碼 使用正則表達式查找和替換字符串 假設您想用擴展標記<title> </title>替換元素&#xff08;title&#xff09;中的屬性&#x…

內核中_init,_exit中的作用

__init&#xff0c; __initdata等屬性標志&#xff0c;是要把這種屬性的代碼放入目標文件的.init.text節&#xff0c;數據放入.init.data節──這一過程是通過編譯內核時為相關目標平臺提供了xxx.lds鏈接腳本來指導ld完成的。 對編譯成module的代碼和數據來說&#xff0c;當模…

jQuery筆記總結

來源于&#xff1a;http://blog.poetries.top/2016/10/20/review-jQuery/ http://www.jianshu.com/p/f8e3936b34c9 首先&#xff0c;來了解一下jQuery學習的整體思路 第一節 jQuery初步認知 jQuery概述 JQuery概念 javascript概念 基于Js語言的API和語法組織邏輯&#xff0c;通…

芯片生產流程

每個半導體產品的制造都需要數百個工藝&#xff0c;泛林集團將整個制造過程分為八個步驟&#xff1a;晶圓加工-氧化-光刻-刻蝕-薄膜沉積-互連-測試-封裝。 一、晶圓加工 所有半導體工藝都始于一粒沙子&#xff01;因為沙子所含的硅是生產晶圓所需要的原材料。晶圓是將硅(Si)或砷…

GRE Sub math 報名

Step1 注冊ETS帳號 Step2 登錄帳號&#xff0c;點擊Register/Find Test Centers, Dates Step3 按照提示查詢考場 如果沒有結果而是出現了如下提示&#xff0c;意味著這個地方沒有考位了&#xff0c;需要選擇其他地方的考位 Step 4 接下來就和GRE general test的過程一樣了&…

????platform_device_系列函數及其設備注冊的作用

platform_device_系列函數&#xff0c;實際上是注冊了一個叫platform的虛擬總線。使用約定是如果一個不屬于任何總線的設備&#xff0c;例如藍牙&#xff0c;串口等設備&#xff0c;都需要掛在這個虛擬總線上。 driver/base/platform.c //platform設備聲明 struct device pla…

示例解讀 Python 2 和 Python 3 之間的主要差異

開發四年只會寫業務代碼&#xff0c;分布式高并發都不會還做程序員&#xff1f; 每門編程語言在發布更新之后&#xff0c;主要版本之間都會發生很大的變化。 在本文中&#xff0c;Vinodh Kumar 通過示例解釋了 Python 2 和 Python 3 之間的一些重大差異&#xff0c;以幫助說明…

數字后端——布局

由于I / O單元和模塊的布放已經在布圖規劃時完成&#xff0c;因此布局的剩余任務主要是對標準單元的布局。布局方案在布圖規劃時就已經做了決定&#xff0c;要么選擇展平式布局&#xff0c;要么就是層次化布局。 一、布局目標 布局的目標也即布局內容實施之后所要達到的預期值…

python基礎 函數 (四)

一 函數基本 def func1():print("hello world")return 1, "hello", ("wo", "ai"), ["ni", "da"], {"you": "xi"} # return 可以返回任意# 結果&#xff1a; (1, hello, (wo, ai), [ni, da…

c#注釋

c#的注釋分為&#xff1a;這里不能不說一下什么是注釋。 注釋本身不會執行&#xff0c;只是說明性文字&#xff0c;只供程序員閱讀。 注釋又分為&#xff1a;單行注釋&#xff0c;多行注釋&#xff0c;文檔注釋。 單行注釋&#xff1a;//開始 多行注釋&#xff1a;/*開始&#…

嵌入式linux字符設備驅動

1. 我們需要先調用register_chrdev_region()或 alloc_chrdev_region()來向系統申請設備號int register_chrdev_region( dev_t first, unsigned int count, char *name ); //函數通過已知的設備號first來注冊字符設備區域。 int alloc_chrdev_region( dev_t *dev, unsigned int…

數字后端——時鐘樹綜合

在數字集成電路設計中&#xff0c;時鐘信號是數據傳輸的基準&#xff0c;它對于同步數字系統的功能、性能和穩定性起決定性作用&#xff0c;所以時鐘信號的特性及其分配網絡尤被人們關注。時鐘信號通常是整個芯片中有最大扇出、通過最長距離、以最高速度運行的信號。時鐘信號必…

52次課(mysql用戶管理、常用sql語句、 mysql數據庫備份恢復)

MySQL創建用戶以及授權 默認用戶是root用戶&#xff0c;不可能所有人員都用root用戶&#xff0c;創建用戶防止誤刪除&#xff0c;因為mysql里邊有多個庫每個庫里有很多表&#xff0c;所以需要給單獨的用戶做一些授權我只需要它對某一個數據庫有權限&#xff0c;或者說對某個數據…

線程池的種類,區別和使用場景

newCachedThreadPool&#xff1a; 底層&#xff1a;返回ThreadPoolExecutor實例&#xff0c;corePoolSize為0&#xff1b;maximumPoolSize為Integer.MAX_VALUE&#xff1b;keepAliveTime為60L&#xff1b;unit為TimeUnit.SECONDS&#xff1b;workQueue為SynchronousQueue(同步隊…

20145225 《信息安全系統設計基礎》第14周學習總結

第九章 虛擬存儲器 虛擬存儲器是計算機系統最重要的概念之一&#xff0c;它是對主存的一個抽象 三個重要能力&#xff1a; 它將主存看成是一個存儲在磁盤上的地址空間的高速緩存&#xff0c;在主存中只保存活動區域&#xff0c;并根據需要在磁盤和主存之間來回傳送數據&#xf…

數字后端——布線

布線是繼布局和時鐘樹綜合之后的重要物理實施任務&#xff0c;其內容是將分布在芯片核內的模塊、標準單元和輸入輸出接口單元( I /O pad&#xff09;按邏輯關系進行互連&#xff0c;其要求是百分之百地完成它們之間的所有邏輯信號的互連&#xff0c;并為滿足各種約束條件進行優…

動態加載和靜態加載及其編譯步驟

在類unix操作系統中&#xff0c;驅動加載方式一般分為&#xff1a;動態加載和靜態加載&#xff0c;下面分別對其詳細論述。 一、動態加載 動態加載是將驅動模塊加載到內核中&#xff0c;而不能放入/lib/modules/下。 在2.4內核中&#xff0c;加載驅動命令為&#xff1a;ins…

streamsets 集成 minio s3測試

具體streamsets crate 集成可以參考 streamsets crate 以下文檔只關注minio 集成的配置 minio 服務 搭建 具體搭建參考&#xff1a; https://www.cnblogs.com/rongfengliang/p/9197315.html 創建bucket &#xff08;crate 集成使用&#xff09; 測試的csv 文件從https://www.s…

sqlite性能優化

1、數據庫性能上 1.1 批量事務插入&#xff0c;提升數據插入的性能 由于sqlite默認每次插入都是事務&#xff0c;需要對文件進行讀寫&#xff0c;那么減少事務次數就能簡書磁盤讀寫次數從而獲得性能提升。 1.2 單條sql優于多條sql 實測發現&#xff0c;對于幾十條sql插入當你替…