? ? ? ? 由于I /?O單元和模塊的布放已經在布圖規劃時完成,因此布局的剩余任務主要是對標準單元的布局。布局方案在布圖規劃時就已經做了決定,要么選擇展平式布局,要么就是層次化布局。
一、布局目標
????????布局的目標也即布局內容實施之后所要達到的預期值,可以歸納為以下3部分。
- 各模塊的位置相對確定,每個標準單元都被放置在相應的位置,并具有自己的狀態(attribute)。整個設計的擁塞程度相對均勻合理,基本滿足布通的要求。
- 滿足設計規則的要求,即除了時鐘網絡,其他的高扇出網絡,如復位信號等都插入了相應的驅動單元,從而滿足最大電容、最大扇出和最大信號轉換時間等設計約束。時鐘網絡上的設計規則需要在時鐘樹綜合階段完成。
- 芯片的時序和供電較為良好。芯片的時序主要體現在建立(setup)時間的違例上,在布局完成后,可以根據標準單元位置的具體擺放,從而調用較為精確的延遲模型對設計進行延遲預估,此時芯片的工作主頻基本上已經確定,不同的EDA工具布線之后的時序與布局之后的時序預估的差別各異,有時布線之后的延遲會比布局之后高出5%~10%。芯片保持(hold)時間的違例一般在時鐘樹綜合之后完成。此時對芯片的電源進行分析與最終的分析也較為接近。
二、布局方式
1、展平式布局
????????在芯片的布圖規劃階段完成了芯片的整體規劃,在布局階段則是其細節的實施。布局是自動化的,如果采用展平式布局方案,它的主要內容有以下兩個部分組成:
- 模塊的擺放與布局。模塊(block)的擺放一直是布局的重要組成部分。一直以來,集成電路后端設計者在完成布圖規劃階段,需要半自動地將模塊放置在芯片核內合理的區域之內,當發現結果不理想時,還可以重新調整它們的位置。隨著更多基于模塊設計(BBD)在SoC中的使用,大量模塊位置設計則由布局工具自動完成。
- 標準單元的擺放和優化。當硬核模塊的位置設定好后,需要將模塊內的標準單元擺放到相應位置,這就是布局的主要工作。當標準單元的位置確定后,布線后互連線的寄生分布參數的數值具有實際意義,此時對芯片的時序進行分析,從而進行優化。
????????大量標準單元的放置采用自動布局方法實現,用戶也可以通過腳本或手動等輔助方法,將寄存器按照一定的陣列擺放,例如,對Datapath模塊的擺放。時鐘樹中所用buffer屬于標準單元,它們位置的擺放也可以通過手動實現。
2、層次化布局
????????在層次化設計方案中,布局有三個過程:①先分配子模塊,這是與展平式布局最大的不同之處;②作子模塊級的布局,它的方法與展平式一樣;③所有子模塊完成后在頂層組裝,其布局方法也與展平式一樣。
1)子模塊約束類型的制定
????????層次化設計中子模塊的約束類型一般有三種:向導約束(guide)、區域約束(region)和限制約束(fence),其中
- 向導約束為模塊指定向導范圍,屬于該模塊的標準單元,可以放置在該向導范圍內,也可以放置在向導范圍之外,不屬于該模塊的標準單元也可以放置在該向導范圍內。
- 區域約束中,屬于該模塊的標準單元只能放在指定的區域內,該區域還可以放置 其他的模塊元。
- 限制型約束中,屬于該模塊的標準單元只能放在該區域內,且不允許放置其他模塊中的標準單元。限制型約束是強約束類型,多用于層次化設計中,而在展平式設計中,多采用較為寬松的約束。
????????上述3種定義為Cadence公司的SoC Encounter中的名稱,不同的EDA工具對于這三種的約束定義有所區別。例如,在Astro中,所有的模塊都可以用PlanGroup來定義,其約束的程度可以通過定義其權重,從而確定各個區域的約束類型。
2)子模塊大小位置的制定
????????為各個模塊指定約束后,耑要在芯片內部指定模塊的大小和位置。模塊大小的確定主要看面積利用率的大小,它是指標準單元總面積與模塊在芯片內部所分布面積之比。當初始利用率低于70%時,較容易布通,而當利用率高于85%時,則會出現較大的擁塞,從而導致無法完成布線。
三、布局目標預估
????????芯片的物理設計需要在不同階段對芯片需要實現的目標進行評估,從而盡早發現問題,并減少設計的迭代。在布局完成后需要評估的目標主要有:擁塞(congestion)程度的評估、延遲和時序預估、供電預估。一般情況下層次化設計在布圖規劃后,進行目標預估,并分解到各個模塊。當然在很多情況下是在虛擬原型設計完成,即布局優化、粗布線完成后對設計目標進行預估。
1、擁塞預估
????????在布局完成之后,標準單元的位置相對確定,即可以較準確地對布線的擁塞程度進行預估。EDA工具將整個布線空間劃分為多個小的布線格,每個布線格劃分為橫向通道和縱向通道,在每個布線格內,估算并統計所需要的縱向通道和橫向通道數量,當實際需要的通道超過現有的通道的5%時,表明擁塞程度比較大。由EDA工具分析擁塞和顯示擁塞程度的菜單,可以得出擁塞的數據和分布,從而決定布局優化的方案。當全局擁塞很小,但是存在局部擁塞較大的情況時,則需要對設計進行優化。當報告全局的擁塞非常小,但是在局部區域存在著較大的擁塞,會造成布線無法布通時,則需要對標準單元布局進行優化。
2、時序預估
????????標準單元布局完成后,其位置都相對確定,此時對芯片的延遲計算和時序較接近于芯片最終的時序。在布局完成后, 一般只需要做建立時間(setup time)預估,不需要做保持時間(hold time)預估,因為此時還沒有進行時鐘樹綜合,而保持時間的違例通常是在時鐘樹綜合之后進行優化。這時還可以對噪聲的影響進行預估,在0. 18pm及以上工藝,一般不需要太多地考慮噪聲,而在0. 13um及以下的工藝中,則需要考慮噪聲的影響,在標準單元布局階段即可以考慮噪聲。
3、供電預估
????????標準單元布局后,將標準單元的供電端口連接到電源網格中(followpins),此時可以引用VCD文件,對芯片的功耗、電壓降及EM進行評估。由于時鐘樹還沒有綜合,功耗值會偏小,在預估時應當注意。