🧱 4.3 Sky130における設計制約の実践的整理
Practical Design Constraints for Sky130 PDK
📘 本節の目的|Purpose
本節では、SkyWater提供の Sky130 PDK (Process Design Kit) を用いたPoC設計において、
RTL段階から意識すべき設計制約を実務ベースで整理します。
制約を無視した設計は後工程でエラーや手戻りを生むため、
物理設計と整合した設計初期の制約理解が極めて重要です。
🧱 Sky130 PDKの基本情報|Basic Info of Sky130
項目|Item | 内容|Details |
---|---|
提供元 | SkyWater Technology |
プロセスノード | 130nm(実効L ≈ 150nm) |
電圧対応 | 1.8 V / 3.3 V(※1.8 Vを使用) |
メタル層 | 5層(M1〜M5)通常はM1〜M3使用 |
PDK構成 | DRC/LVSルール、LEF/GDS、SPICEモデル、セルライブラリ |
📏 PoC設計における主な制約項目|Design Constraints for PoC
🔋 電源・電圧|Power and Voltage
項目|Item | 値|Value | 備考|Remarks |
---|---|---|
VDD |
1.8 V | 標準セルライブラリに準拠 |
GND |
0 V | 共通グランド |
⏱️ タイミング制約|Timing Constraints
項目|Item | 値|Value | 備考|Remarks |
---|---|---|
クロック周波数 | ≦ 25 MHz | Setup/Hold制約の緩和目的 |
クロックスキュー | < 200 ps | PoCではツール任せで十分 |
📐 レイアウト制約(OpenLane)|Layout Constraints
区分|Category | 内容|Constraint | 説明|Remarks |
---|---|---|
マクロサイズ | ≦ 50µm × 50µm | 各PoCブロックを小さく抑える |
メタル使用範囲 | M1〜M3中心(M4/M5は限定使用) | 配線密度高い部分のみにM4/M5使用 |
DRC準拠 | Sky130Aルール準拠 | magic で検証可能 |
配線間隔 | M1: ≧ 0.14µm 他 | PDKに基づく自動制約に従う |
🧪 検証フロー|Verification Flow
項目|Type | ツール|Tool | 内容|Purpose |
---|---|---|
DRC | Magic | ルール違反チェック |
LVS | Netgen | GDS–SPICEネットリスト比較 |
STA | OpenSTA | Setup/Holdタイミング検証 |
シミュレーション | Verilator / iverilog | RTL or ポストレイアウト検証 |
⚙️ OpenLane制約ファイル例|Sample design_config.tcl
# design_config.tcl の抜粋
set ::env(CLOCK_PERIOD) "40.0" ;# 25 MHz 相当
set ::env(FP_CORE_UTIL) "30" ;# セル利用率
set ::env(PL_TARGET_DENSITY) "0.5" ;# 配置密度
set ::env(DESIGN_IS_CORE) "1"
パラメータ | 意味 |
---|---|
CLOCK_PERIOD |
クロック周期(単位ns) |
FP_CORE_UTIL |
論理セルの占有率(面積あたり) |
PL_TARGET_DENSITY |
配置ターゲット密度(ルーティング余裕) |
📝 RTL設計時に意識すべき記述指針|RTL Coding Guidelines
-
🧾 明確な信号名とビット幅定義
例:[3:0]
,flag_done
,clk
,rst_n
-
🔁 同期リセットを基本とする
OpenSTA では非同期リセットが警告対象になることがある -
🧩 定数はプレフィックス付きで定義
例:STATE_IDLE
,MUX_SEL_B
-
🧱 シンプルで最適化に強い記述
論理合成(flatten/optimize)時に混乱を防ぐ構造を心がける
🔗 次節への接続|Next Section
次節 4.4:Verilog記述とテストベンチ では、
本節で示した設計制約を反映したRTLコード・テストベンチ構成を示し、
FSM・MUX・Adderのそれぞれに対応する記述例とシミュレーション方法を解説します。