Edusemi-v4x

4.3 Sky130における設計制約の実践的整理

本節では、SkyWater提供のSky130 PDK(Process Design Kit)を前提に、PoC設計で考慮すべき設計制約を整理します。物理設計においては、プロセス固有のルールや制約が設計品質に直結するため、RTL設計時からの制約意識が重要です。


🧱 Sky130 PDKの基本情報


📏 PoC設計における主要な設計制約

🔋 電源・電圧

項目 備考
VDD 1.8V 多くの標準セルライブラリに準拠
GND 0V 共通グランド

⏱️ タイミング制約

項目 備考
クロック周波数 ≤ 25 MHz Setup/Hold制約を緩和して確実に動作させるための保守値
クロックスキュー < 200ps PoCレベルではツール任せで可

📐 レイアウト制約(OpenLane利用時)

区分 制約内容 説明
マクロサイズ 50µm × 50µm 程度以下 各ブロックごとにコンパクトに収める
Metal使用制限 M1〜M3中心 M4/M5は配線密度が必要な場合に限定
DRCルール Sky130AのDRCに準拠 Magicでチェック可能
配線間隔 M1: ≥ 0.14µm 他 PDK定義のルールで自動処理に任せる

🧪 検証条件

種別 ツール 備考
DRC Magic magic -dnullで確認
LVS Netgen GDSとSPICEの接続一致確認
STA OpenSTA Setup/Holdタイミング検証
Simulation Verilator or iverilog RTLとポストレイアウトで使用可

📁 OpenLane用の制約ファイル例

# design_config.tcl より抜粋例
set ::env(CLOCK_PERIOD) "40.0"
set ::env(FP_CORE_UTIL) "30"
set ::env(PL_TARGET_DENSITY) "0.5"
set ::env(DESIGN_IS_CORE) "1"
•	CLOCK_PERIOD:25MHz相当(40ns)
•	FP_CORE_UTIL:利用率上限(物理的なセルの詰まり具合)
•	PL_TARGET_DENSITY:配置密度(ルーティングしやすくする)

📝 設計制約を意識したRTL記述の指針

•	入出力名やビット幅の明示(例:[3:0]、flag_doneなど)
•	同期リセット使用(非同期リセットはOpenSTAで警告の原因になることがある)
•	定数名のプレフィックス(例:STATE_IDLE, MUX_SEL_B)
•	論理合成時のflattenやoptimizeの挙動に対応したシンプル構造

🔗 次節への接続

次節4.4では、これらの制約を反映したVerilog HDLの記述とテストベンチ構成について具体的に解説します。FSM/MUX/AdderそれぞれのRTL設計の実例を提示します。