【半導体】🧩 10. OpenLaneで制御ASICをRTLからGDSまで作ると何が分かるか
topics: [“OpenLane”, “ASIC”, “RTL”, “制御工学”, “SKY130”]
🧭 はじめに
この記事は OpenLane の使い方解説ではありません。
また、単なる「ツール検証ログ」でもありません。
制御系(PID)を題材に、RTLからGDSまで実際に完走した
デジタル制御ASIC設計の記録と、設計判断の言語化です。
❓ なぜ MCU ではなく ASIC なのか
制御系の実装といえば MCU が一般的です。
しかし、MCU ベース制御には本質的な制約があります。
- 割り込みによる 制御周期のジッタ
- ファームウェア更新による 再現性の低下
- 実行状態が見えにくい 暗黙の状態遷移
本プロジェクトでは、これらを避けるために
制御そのものをハードウェアとして固定化しました。
ASIC にすると:
- 制御周期は 完全に固定
- 状態遷移は FSMとして明示
- レイテンシは サイクル単位で証明可能
これは安全系・産業制御において大きな意味を持ちます。
🏗 採用したアーキテクチャ
設計した制御ASICは、以下の構成を取っています。
- PID 制御器(固定小数点)
- FSM による上位監督
- PWM 生成回路
- 単一クロック・完全同期設計
重要なのは階層です。
- 内側:PID(数値演算・周期保証)
- 外側:FSM(INIT / RUN / FAULT)
この構造により、
「制御性能」と「安全性」を役割分離する
ことができます。
🔢 固定小数点設計の現実
制御理論は実数で書かれますが、
ASIC ではすべてが 有限ビット幅です。
ここで重要なのは、
- Q フォーマットの選定
- 積和演算のビット成長
- 飽和処理の入れ方
教科書通りにいかない点が多く、
実際に RTL に落として初めて見える問題が多数ありました。
本プロジェクトでは:
- 数値レンジを先に決める
- オーバーフローは必ず明示的に潰す
- 「なんとなく動く」は許さない
という方針を徹底しました。
🧰 OpenLane を使って分かったこと
OpenLane は非常に強力ですが、魔法ではありません。
👍 良い点
- RTL → GDS までを 一貫して再現可能
- STA / DRC / LVS が統合されている
- 教育用途として優秀
一方で、使って初めて分かる制約もあります。
⏱ Gate-level simulation をどう扱ったか
Gate-level simulation には二種類があります。
- functional(論理)
- timing-aware(遅延付き)
SKY130 の標準セルは UDP(User Defined Primitive)を多用しており、
Icarus Verilog では完全な gate-level sim が困難です。
本プロジェクトでは、
- RTL simulation → 機能検証
- STA → タイミング保証
- Gate-level sim → 調査・評価のみ
という役割分担を取りました。
Gate-level timing simulation を「やらない」のも
正しい設計判断の一つです。
📦 成果物
本プロジェクトの成果はすべて公開しています。
-
📘 設計ドキュメント(GitHub Pages)
https://samizo-aitl.github.io/vi-control-asic-sky130/ -
💻 RTL / OpenLane フロー(GitHub)
https://github.com/Samizo-AITL/vi-control-asic-sky130
ドキュメントには、
- 制御モデル
- 固定小数点設計
- RTL 実装
- 検証結果
- GDS 生成
までを 省略せず記載しています。
📝 まとめ
OpenLane は「EDAツール」ですが、
本質的には 設計リテラシーを鍛える道具だと感じました。
- 何をやるか
- 何をやらないか
- なぜそう判断したか
それを説明できて初めて、
ASIC 設計は「完成した」と言えるのだと思います。
この記事が、
制御とハードウェアの境界に興味のある方の
参考になれば幸いです。