topics: [“OpenLane”, “ASIC”, “RTL”, “制御工学”, “SKY130”]
この記事は OpenLane の使い方解説ではありません。
また、単なる「ツール検証ログ」でもありません。
制御系(PID)を題材に、RTLからGDSまで実際に完走した
デジタル制御ASIC設計の記録と、設計判断の言語化です。
制御系の実装といえば MCU が一般的です。
しかし、MCU ベース制御には本質的な制約があります。
本プロジェクトでは、これらを避けるために
制御そのものをハードウェアとして固定化しました。
ASIC にすると:
これは安全系・産業制御において大きな意味を持ちます。
設計した制御ASICは、以下の構成を取っています。
重要なのは階層です。
この構造により、
「制御性能」と「安全性」を役割分離する
ことができます。
制御理論は実数で書かれますが、
ASIC ではすべてが 有限ビット幅です。
ここで重要なのは、
教科書通りにいかない点が多く、
実際に RTL に落として初めて見える問題が多数ありました。
本プロジェクトでは:
という方針を徹底しました。
OpenLane は非常に強力ですが、魔法ではありません。
一方で、使って初めて分かる制約もあります。
Gate-level simulation には二種類があります。
SKY130 の標準セルは UDP(User Defined Primitive)を多用しており、
Icarus Verilog では完全な 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
ドキュメントには、
までを 省略せず記載しています。
OpenLane は「EDAツール」ですが、
本質的には 設計リテラシーを鍛える道具だと感じました。
それを説明できて初めて、
ASIC 設計は「完成した」と言えるのだと思います。
この記事が、
制御とハードウェアの境界に興味のある方の
参考になれば幸いです。