Floorplanning & Power Network Planning
Core Sizing, Macro Optimization, BSPDN & Dynamic IR-Drop Signoff
เจาะลึกรากฐานทางกายภาพของการสร้างชิป: การกำหนดขนาด Die, สถาปัตยกรรม Power Distribution Network (PDN), เทคโนโลยี Backside Power Delivery (BSPDN), เทคนิคการวาง SRAM/Analog Macros เพื่อหลีกเลี่ยง Routing Congestion และการคำนวณ Decap เพื่อป้องกัน Dynamic IR-Drop ในระดับต่ำกว่า 2 นาโนเมตร
01 บทบาทและนิยามของ Floorplanning ใน Physical Design Flow
Floorplanning คือขั้นตอนแรกและสำคัญที่สุดในการแปลงวงจรเชิงตรรกะระดับเกต (Gate-Level Netlist จาก Logic Synthesis) ไปสู่พิกัดทางกายภาพบนแผ่นซิลิคอน (Silicon Coordinates) เป็นการกำหนดขอบเขตภายนอกของชิป (Die Boundary), ขนาดพื้นที่คอร์ (Core Area), การจัดสรรตำแหน่งของ Macro บล็อกขนาดใหญ่ (เช่น SRAM Arrays, ROM, PLL, และ SerDes PHYs), การสร้างเครือข่ายจ่ายพลังงานหลัก (Power Distribution Network - PDN), และการกำหนดพิกัดของ I/O Pins หรือ C4 Bumps
วาง floorplan, ทำ power planning, place & route, CTS (Clock Tree Synthesis), routing optimization, IR drop / EM analysis — จนได้ GDSII/OASIS พร้อม tape-out
Tools: Synopsys Fusion Compiler / ICC2, Cadence Innovus, Ansys RedHawk-SC, Siemens Calibre
Related: Place & Route · Clock Tree Synthesis (CTS) · IR Drop & EM Analysis
Path: Physical Design Engineer, Signoff Lead, Power Integrity Engineer
02 Core / Die Sizing, Aspect Ratio & Target Utilization
การคำนวณขนาด Die ต้องคำนึงถึงพื้นที่รวมของ Standard Cells จากการสังเคราะห์วงจร, พื้นที่ของ Memory/Analog IP Macros, ช่องว่างทางเดินสาย (Routing Channels), และพื้นที่ขอบเขต I/O Pad Ring โดยมีสมการพื้นฐานดังนี้:
| เทคโนโลยีโหนด (Process Node) | Target Utilization ที่แนะนำ | ปัจจัยคอขวดหลัก (Limiting Bottleneck) | ผลกระทบต่อการออกแบบ |
|---|---|---|---|
| Legacy / Mature (> 28nm) | 75% – 85% | Gate Area และ Wirelength Routing ธรรมดา | ออกแบบง่าย ความร้อนและ IR-drop อยู่ในระดับต่ำ |
| FinFET (16nm – 5nm) | 65% – 72% | Pin Density และ M1/M2 Track Congestion | ต้องเว้นพื้นที่เพิ่มสำหรับ Via Stacking และ Decap Cells |
| Sub-2nm GAA / CFET | 52% – 62% | Local Thermal Throttling, Pin Accessibility, และ BEOL Resistance | ความต้านทานสายโลหะสูงมาก จำเป็นต้องใช้ Backside Power Delivery |
03 ยุทธศาสตร์การวาง Macro, Flylines & Blockages
การวาง Hard Macros (เช่น SRAM Memory Instances, Register Files, Phase-Locked Loops) เป็นขั้นตอนชี้ชะตาความสำเร็จของ P&R โดยอาศัยการวิเคราะห์เส้นเชื่อมโยงทางตรรกะ (Flyline Analysis) เพื่อตรวจจับการเชื่อมต่อข้อมูลระหว่างบล็อก Netlist:
04 โครงสร้าง Power Grid Mesh และ Backside Power Delivery (BSPDN)
เครือข่ายจ่ายพลังงาน (Power Distribution Network - PDN) มีหน้าที่ส่งกระแสไฟฟ้า $V_{DD}$ และ $V_{SS}$ จากภายนอกชิปไปยังทุกทรานซิสเตอร์ด้วยความต้านทานที่ต่ำที่สุด โดยแบ่งออกเป็นสองสถาปัตยกรรมหลักตามยุคสมัย:
05 การคำนวณ IR-Drop และการจัดสรร Decoupling Capacitors (Decap Budgeting)
ปัญหาแรงดันตกคร่อมในเครือข่ายจ่ายพลังงานแบ่งออกเป็นสองประเภทตามพฤติกรรมทางเวลา:
- Static IR-Drop ($\Delta V_{static} = I_{avg} \times R_{grid}$): แรงดันตกคงที่จากความต้านทาน DC โอห์มิกของสายโลหะและเวีย แก้ไขได้ด้วยการเพิ่มความกว้างของ Power Stripes หรือเพิ่มความถี่ของจุดเชื่อมต่อ Via
- Dynamic IR-Drop ($\Delta V_{dynamic} = L_{pkg} \frac{di}{dt} + I_{peak} R_{eff}$): แรงดันตกชั่วขณะที่เกิดขึ้นเมื่อสัญญาณนาฬิกา (Clock Tree) และทรานซิสเตอร์หลายล้านตัวสลับสถานะพร้อมกัน ก่อให้เกิดกระแสกระชากขนาดมหาศาล ($di/dt$) ส่งผลให้ Gate Delay ช้าลงจนเกิด Setup Timing Violation
06 โครงสร้างเซลล์พิเศษใน Floorplan (Tap, Endcap, Tie & Sleep Cells)
ก่อนที่จะสามารถนำ Standard Logic Cells เข้ามาจัดวางในขั้นตอน Place & Route ได้ ชั้น Floorplan จะต้องติดตั้งโครงสร้างเซลล์ทางกายภาพเฉพาะ (Physical-Only Cells) เพื่อความสมบูรณ์ของโครงสร้างวงจรรวม:
| ประเภทเซลล์พิเศษ | หน้าที่ทางวิศวกรรม | กฎระยะห่าง / กฎการติดตั้ง (Design Rules) |
|---|---|---|
| Well-Tap Cells | ต่อขั้ว $V_{DD}$ สู่ N-Well และ $V_{SS}$ สู่ P-Substrate เพื่อป้องกันปรากฏการณ์ Latch-up | ติดตั้งแบบตารางสลับฟันปลา (Checkerboard Pattern) ระยะห่างไม่เกิน $20\text{–}30\ \mu\text{m}$ ตามข้อกำหนด DRC |
| Endcap Cells | ปิดขอบแถว Standard Cell Rows เพื่อรักษาระนาบความต่อเนื่องของ Diffusion/Poly Line-End Extension | วางขนาบข้างซ้าย-ขวาของทุกแถวเซลล์ และตามแนวขอบรอบนอกของ Hard Macros |
| Tie-High / Tie-Low | ต่อขั้วเกตที่ไม่ใช้งานของลอจิกเข้ากับไฟ $1$ หรือ $0$ โดยมีตัวต้านทานจำกัดกระแสเพื่อป้องกัน Gate Oxide Breakdown จาก ESD | ห้ามต่อขาเกตเข้าสู่ $V_{DD}/V_{SS}$ Rail โดยตรงโดยเด็ดขาด |
| Power Switches (Header/Footer) | ตัดต่อการจ่ายไฟเข้าสู่ Power Domain ที่อยู่ในโหมดสลีป (MTCMOS Power Gating ตามมาตรฐาน UPF/IEEE 1801) | จัดวางเป็นแนว Daisy-chain เพื่อจำลอง Inrush Current ระหว่างช่วงเปิดเครื่อง (Wake-up Sequence) |
07 การจัดวางตำแหน่ง I/O Pads, Bump Arrays และ High-Speed PHYs
การสื่อสารระหว่างชิปกับโลกภายนอกถูกกำหนดในขั้นตอน Floorplan โดยแบ่งตามเทคโนโลยีแพ็กเกจจิ้ง:
- Wire-Bond Pad Ring: สำหรับชิปราคาประหยัดหรือแพ็กเกจ QFP/QFN โดยวาง Pads โลหะขนาดใหญ่รอบขอบนอกของ Die มีความกว้าง Pad Pitch ประมาณ $40\text{–}60\ \mu\text{m}$
- Flip-Chip C4 Area Array: สำหรับชิปประสิทธิภาพสูง แผ่นรองสัมผัสบัดกรี (Solder Bumps) ถูกกระจายทั่วทั้งพื้นผิวของ Die (Area Array) ที่ระยะ Pitch $130\text{–}150\ \mu\text{m}$ ช่วยลดความเหนี่ยวนำปรสิต ($L_{pkg} < 0.1\text{ nH}$) ลงได้อย่างมหาศาล
- High-Speed PHY Hard Macros (UCIe, HBM, PCIe Gen6, LPDDR5X): ต้องวางชิดขอบ Die ฝั่งที่มีเส้นทางเชื่อมต่อสั้นที่สุดไปยัง Substrate หรือ Silicon Interposer พร้อมทั้งติดตั้งวงจร ESD Protection และ Dedicated Power Clamps เพื่อป้องกันสัญญาณรบกวนข้ามโดเมน
08 ตัวอย่างสคริปต์คำสั่ง EDA มาตรฐานอุตสาหกรรม (Tcl Reference Flow)
ในสภาพแวดล้อมการทำงานจริงของเครื่องมืออย่าง Synopsys Fusion Compiler / ICC2 หรือ Cadence Innovus วิศวกรจะควบคุมการสร้าง Floorplan ผ่านชุดคำสั่ง Tcl Script:
# ============================================================================== # FLOORPLAN INITIALIZATION & POWER MESH SCRIPT (Synopsys ICC2 / Fusion Compiler) # ============================================================================== # 1. สร้างขอบเขต Die & Core พร้อมกำหนด Core Utilization 65% และ Aspect Ratio 1.0 initialize_floorplan \ -core_utilization 0.65 \ -core_aspect_ratio 1.0 \ -core_offset { 10.0 10.0 10.0 10.0 } \ -site_def unit # 2. แทรก Well-Tap Cells แบบ Checkerboard ป้องกัน Latch-up add_tap_cell_array \ -master_cell_name WELLTAP_X1 \ -distance 25.0 \ -pattern staggered_every_other_row # 3. กำหนด Placement Halos กว้าง 4 ไมโครเมตร รอบ SRAM Macros ทั้งหมด create_keepout_margin \ -type hard \ -outer { 4.0 4.0 4.0 4.0 } \ [get_cells -filter "is_hard_macro == true"] # 4. สังเคราะห์เครือข่าย Power Grid Mesh (ชั้น M11 แนวตั้ง และ M12 แนวนอน) create_pg_mesh_pattern MESH_TOP_PATTERN \ -layers { \ { {metal_layer: M11} {width: 1.2} {pitch: 12.0} {offset: 2.0} } \ { {metal_layer: M12} {width: 1.2} {pitch: 12.0} {offset: 2.0} } \ } set_pg_strategy STRAT_CORE_MESH -core -pattern MESH_TOP_PATTERN compile_pg -strategies STRAT_CORE_MESH # 5. ตรวจสอบความถูกต้องทางกายภาพและความหนาแน่นก่อนเริ่ม P&R check_floorplan -all estimate_congestion -heatmap