【APR】innovus流程

发布时间:2026/7/12 22:15:43
【APR】innovus流程 innovus流程PART A. open MMMC Browser️STEP-A1. Library Set️STEP-A2. RC Corner️STEP-A3. Delay Corners️STEP-A4. Constrain Mode️STEP-A5. Create Analysis Views️STEP-A6. In MMMC Browser - Setup/Hold Analysis ViewsPART B. FloorplanningCore Limited DesignPad Limited DesignFloorplanning in Innovus️STEP-B1. Setup the floorplanDefine core width, height and core marginMacro blocks require manual placementPART C. Power PlanningPower Issue: IR Drop ⭐️⭐️⭐️Power Issue: ElectromigrationPower Planning - by ExperiencePower Planning - Global Net ConnectionPower Planning in InnovusPower Planning - RingPower Planning - StripePower Planning - Special RoutePART D. Pre-CTS OptimizationPART E. Clock Tree SynthesisPART F. Post-CTS Optimization練習Q: 在進行APR之前為何需要從合成工具Design Compiler產生的SDC檔案中移除 set_dont_touch_network 指令Q: 在規劃I/O Pad佈局時對於Clock Pad的安排有何特殊考量以提升訊號完整性Q: 在MMMCMulti-Mode Multi-Corner設定檔中create_delay_corner 指令的作用是什麼PART A. open MMMC Browser️STEP-A1. Library Setlibrary Set: 1. slow.lib 2. xxx18io3v5v_slow.lib️STEP-A2. RC CornerName:RC_MAXCap Table :xxx18_1p6m.captbl [給trial Route時計算RC用的][算是查表的模型]temperature :125QRC technologi File :RCGen.tch️STEP-A3. Delay CornersDelay Corner library Set ( 包含Timing(.lib) SI(.cdb) ) RC Corner️STEP-A4. Constrain Mode️STEP-A5. Create Analysis Views不同的Delay Corner 和 不同的Constrain Mode組合成不同的Aanlysis ViewNameConstraint Mode Delay CornerExample Name: CHECK_SETUP_TIME Constraint Mode : CHIP_SDC Delay Corner: DELAY_MAX️STEP-A6. In MMMC Browser - Setup/Hold Analysis ViewsSetup the analysis views for setup time analysis.上面設定好的 Analysis View 再來設定哪種要用來Setup Analysis哪種要用來Hold AnalysisExample: Setup Analysis Views : CHECK_SETUP_TIME(這是step5建立好的Analysis Views) Hold Analysis Views : CHECK_HOLD_TIME(一樣是step5建立好的Analysis Views)STEP-A1. ~ STEP-A6. 都完成後可以看到下圖以上步驟設定完後可以透過save the MMMC view將以上設定存成CHIP_MMMC.view下次開啟innovus用Design import呼叫CHIP_MMMC.view就可以了⚠️TODO 補CHIP_MMMC.view程式碼Import Design存成CHIP.globalsPART B. FloorplanningCore Limited Design決定因素晶片面積由 Core核心邏輯與記憶體 的大小決定。情境當內部邏輯電路非常複雜、佔用面積大但外部需要的 I/O 腳位較少時。特徵Core 的邊長大於所有 IO Pad 排列所需的長度。為了維持 I/O Power Ring 的連接性必須在 IO Pad 之間插入 Pad Filler 來填補空隙 。Pad Limited Design決定因素晶片面積由 I/O Pad 的數量決定。情境當內部邏輯很簡單面積小但外部需要連接大量訊號I/O 腳位多時比如說test chip。特徵為了排下所有的 IO Pad晶片邊長被迫拉大導致 Core 內部會有大量的閒置空間Utilization 低這在成本上較不划算因為你為不需要的矽面積付了錢 。core utilization:Core Utilization核心利用率 是指在晶片核心區域Core Area中標準單元Standard Cells實際佔用面積的百分比 。Floorplanning in Innovus️STEP-B1. Setup the floorplanDefine core width, height and core marginFor pad limited design• SetCore to IO Boundaryto a suitable value, such as 100 (design dependent)• Then, setDie Size Width and Heightto suitable value• ClickApplyFor core limited design• SetCore to IO Boundaryto a suitable value• SetCore WidthandHeightto the demanded value• ClickApplyMacro blocks require manual placementPART C. Power PlanningPower Issue: IR Drop ⭐️⭐️⭐️IR Drop (電壓降) 是指電流流經電源與接地網路的電阻時產生的電壓損耗 V I × R VI×RVI×RIR dropcan cause the chip tofaildue to•Performance(circuit running slower than specificatio))•Functionality problem(setup or hold violations)•Unreliabie operation(less noise margin)•Power consumption(leakage power)•Latch upPower Issue: ElectromigrationElectromigration (電遷移) 是指金屬導線在長時間高電流密度運作下產生的一種「老化」或磨損機制發生在current density較高的地方Experience: make current density of power ring 1mA/um要知道流過的電流多大來計算線寬來降低current density避免Electromigration的問題太快的發生– Calculating power/ground ring width –slot ruleCalculate stripe set主要目的透過增加電源線的密度來縮短電流路徑有效降低電阻防止 IR Drop電壓降 導致晶片效能下降或功能失效這可以用基本的物理公式R ρ × W / L Rρ× W/LRρ×W/L(電阻 電阻率 × 長度 / 寬度)來解釋縮短長度 (L LL) 在晶片中電流必須從 Power Ring 或 Stripe 流經細小的金屬線才能到達標準單元。增加 Stripe (電源條) 的密度就像在城市中增加更多主幹道讓單元能以更短的距離 (L LL變小) 連接到主電源網 。降低電阻(R RR) 根據公式導線長度 (L LL) 變短路徑上的總電阻 (R RR) 就會直接下降。減少電壓降 (V I R VIRVIR) 電阻降低後根據歐姆定律IR Drop (電壓降) 自然也會隨之減少確保晶片獲得足夠的工作電壓。Core/IO power pad selectionCore power padIO power padPower Planning - by Experience– Calculating power/ground ring width –– slot rule –– Calculate stripe set –– Core/IO power pad selection –Power Planning - Global Net ConnectionPower Planning in Innovus– Create power rings and power stripes –– Create power ring –Power Planning - RingPower Planning - Stripe– Create power stripes –– Spacing and Set Pattern Definitions –Power Planning - Special RouteUse Special Route to connect the core power pinsRouteSpecial Route...Pad Pins (Connect core power Pins)把Pad上的VDD和GND接到Power Network上的Ring跟stripesPART D. Pre-CTS Optimization– Pre-CTS timing analysis –下指令timeDesign -preCTS這是在 clk network 是 idealno clock skew的狀況下進行的分析。這裡最有可能出問題的是 global reset因為它需要連接多個模塊。在 synthesis 階段reset 是 ideal 的但現在包含了 wire 的寄生參數導致 global reset 的 loading 很大。global reset 的 loading 過大會導致 transition time 變差從而引發 setup/hold violation。– Pre-CTS timing analysis –下指令timeDesign -preCTS這是在 clk network是idea(no clock skew) 的狀況下這邊最有可能出問題的就是global reset 因為他要接給很多人用在synthesis階段reset是idea的但是現在包含了wire進去這個global reset的Loading很大WNS: Worst-case Negative Timing Slack (WNS)TNS: Total Negative Timing Slack (TNS)這兩個要修成正的– Pre-CTS optimization –– optDesign command –To optimize timing placed design for the first time with ideal clocksoptDesign -preCTSTo further optimize a design after above command executionoptDesign -preCTS -incrPART E. Clock Tree Synthesis– Hybrid Clock Mesh for reducing skew and power –Clock Mesh Network降低OCV (on-chip variation)的問題– Create clock tree specification file from the SDC constraints –innovus create_copt_clock_tree_spec -file CHIP.CCOPT.spec -keep_all_sdc_clocks– Load Clock Tree Spec. and Synthesis Clock Tree –innovus source CHIP.CCOPT.specinnovus ccopt_design– Routed H-tree clock network –– Display Clock Tree –可以看到最大的clock skewPART F. Post-CTS OptimizationPost-CTS timing analysis•Type the following command in the command line to checksetup timetimeDesign -postCTS預設省略(-setup)• Type the following command in the command line to checkhold timetimeDesign -postCTS -hold檢查.cap、.fanout、.tranPost-CTS OptimizationoptDesign command• To correct setup violations and design rule violationoptDesign -postCTS預設省略(-setup)這邊有問題通常會是clk skew造成• To correct hold violationsoptDesign -postCTS -hold補充:if hold time 一直修不好可能情況:(1)這邊會包含前面步驟設定的MMMC一併分析練習Q: 在進行APR之前為何需要從合成工具Design Compiler產生的SDC檔案中移除set_dont_touch_network指令因為APR工具有內建的時脈樹綜合CTS引擎必須要能自由處理時脈網路。此指令會防止工具修改時脈clk和重置reset等高扇出網路但在APR階段CTS需要對這些網路進行緩衝器插入與繞線以滿足時序要求。Q: 在規劃I/O Pad佈局時對於Clock Pad的安排有何特殊考量以提升訊號完整性在其兩側使用VSS Pad將其夾住。建議用VSS Pad將Clock Pad夾住可以提供遮蔽效果防止相鄰訊號線的雜訊耦合干擾時脈訊號的穩定性。Q: 在MMMCMulti-Mode Multi-Corner設定檔中create_delay_corner指令的作用是什麼組合一個timing_condition和一個rc_corner形成一個完整的延遲計算情境。根據MMMC的階層結構create_delay_corner用於將代表元件延遲的timing_condition與代表繞線寄生參數的rc_corner結合起來。