01 · RNLとは
回路のセマンティクスに富んだネットリスト
RNLはネットリストと回路図の間にある高レベルセマンティクスのギャップを埋めます:構造、設計意図、図面
エージェントが実際に設計したRNLの実例と、そこから描画された回路図
レビュー時にネットリストを1行ずつ読む必要はなく、宣言されたセマンティクスを確認するだけで済みます。正確な回路図情報はソルバーで生成することも、モデルから直接出力することもできます。
ネットリストが担うもの: 素子と種類、パラメータ、接続関係、サブサーキットのインターフェース
RNLが担うもの: 構造、設計意図、図面、表示用シンボル(ネットリストを参照するのみ)
ネットリストは電気的な事実を記述し、Rich Netlistはその回路をどう理解しどう表現するかを記述します
コメント内に格納
SPICEの* @RNL {…}のように、ホストとなるネットリストの有効なコメント内に記述します。シミュレータはそれをスキップするため、前処理で取り除く必要はありません。
回路そのものには手を加えない
ネットリスト内の素子、ネット、端子を参照することだけができ、素子や接続、パラメータを追加することはできません。
粒度は自由自在
「M1とM2は差動対である」という記述からすべての座標や折れ曲がり点まで、1つのファイル内で自由に混在させられます。
RNLではないもの
- 別の新しいネットリスト言語
- 2つ目の接続リスト
- 唯一の描き方を強制するフォーマット
- ピクセル単位の画像アーカイブ
02 · なぜ必要か
ネットリストと回路図は、それぞれ全体像の半分を欠いています
シミュレーションにはネットリストが必要で、回路の理解には回路図が必要です。しかし、それぞれ単独では不十分な点があります。
| やりたいこと | ネットリスト | 回路図(独自フォーマット) | ネットリスト + RNL |
|---|---|---|---|
| シミュレータで直接読み込む | 本来の用途そのもの | 先にネットリストのエクスポートが必要 | RNLは単なるコメント |
| 回路の構造を一目で把握する | テキストの行が並ぶだけ | 一目で分かる | ビューアが描画する |
| プレーンテキストでdiffやGit管理ができる | 可能 | バイナリデータベース | 可能 |
| AIが直接読み書きできる | テキスト | グラフィカルフォーマット | 描き方もテキストで記述 |
| 元のツールがなくても開ける | 任意のテキストエディタ | 同じソフトウェアとバージョンが必要 | 任意のRNLビューア |
| 設計意図を保持できる | 不可 | 絵の中にしかなく、機械には読み取れない | ペアや対称性を文として記述 |
| 回路の真実の源(Source of Truth)が1つ | 可能 | 回路図とネットリストが食い違うことがある | 接続関係は常にネットリストのみに由来 |
AI主導の設計フローにおける新たな課題
AIが書いたネットリストを人間がレビューできない
自動生成された数百行のテキストを見ても、レビュアーにはそれがどんな回路なのか分かりません。
AIによる回路図の描画は不安定
言語モデルにとって回路図を1本ずつ線で描くのは難しく、モデルによって結果も大きくばらつきます。
エージェントはEDAツール越しにしか回路図に触れられない
回路図は独自のバイナリデータベース内にあり、読み取りも配線1本の変更もツールのインターフェースを経由する必要があります。
現在の場当たり的な対処法
手作業で描き直す
時間がかかる上、ネットリストが変わるたびに描き直しになります。
接続から自動生成する
自動レイアウトは接続関係を知っていても構造を知らないため、どのトランジスタがペアを成すのか判別できません。
スクリーンショットや画像エクスポート
絵は残りますが回路が失われます。シミュレーションも再編集もできません。
EDAのAPIへの依存
AIはEDAツールのAPI経由でしか回路を編集できず、EDAエコシステムに縛られます。
RNLのアプローチ:特定のEDAツールに依存せず、人間とAIが直接読み書きできるプレーンテキスト形式
03 · 利点
回路の意味を書き残すことで得られるもの
意味を第一に
どの素子が差動対やカレントミラーを成すか、何が対称か、どこを電流が流れるかを記述します。図面がどう変わっても、これらの文はファイル内に残ります。
1つのプレーンテキストファイル
シミュレータは従来どおり実行でき、Gitでdiffやマージが行え、図面とネットリストが食い違うこともありません。
AIが書き、人間がレビューする
AIが回路とともにその構造と図面を書き出し、人間は宣言された構造と設計意図をビューアでレビューします。
オープン
公開規格とシンボルライブラリ、オープンソースのツール、そしてブラウザで開けるビューア。
回路とスタイルの分離
HTMLが内容を担いCSSがスタイルを担うように、ネットリストが回路そのものを定義し、パッケージが見た目を決定します。公開パッケージのeda-symbolとeda-styleをインクルードすれば、同じファイルが従来のEDA回路図として描画されます。上の例で表示スタイルを切り替えてみてください。
04 · シナリオ比較
同じ作業、2つのやり方
よくある場面での、現在のやり方とRNLを使ったやり方。
5トランジスタOTAを設計してください。
ネットリストは出力されましたが、それがどんな回路なのかを示す記述はどこにもありません。
生成された数百行のテキストからはそれがどんな回路かレビュアーには分からず、モデルによる回路図の描画も不安定です。
5トランジスタOTAを設計してください。
エージェントは回路と一緒に構造と図面も書き出し、人間は宣言された内容をビューアでレビューします。
人間はネットリストを1行ずつ読むのではなく、構造と設計意図をレビューします。
回路図はバイナリデータベースであるため、バージョン管理は「ファイルが変わった」としか伝えられません。
変更は人間が読める1行になります(M2がx = 30に移動)。Git、プルリクエスト、CIがコードと同じように機能します。
回路図の変更もコードレビューやロールバックが可能になります。
回路図とネットリストがそれぞれ独自に接続関係のコピーを持つため、両者が食い違うことがあります。
接続関係はネットリストのみによって定義されます。線が交差したり端点が重なったりしただけでは決して接続にはならず、描画された配線は同じ点または端子を共有する箇所でのみ接合されます。
回路の真実の源(Source of Truth)はネットリストただ1つです。
ツールごとに独自の回路図フォーマットと独自のシンボルライブラリを持っています。
ツールを乗り換えると回路図の描き直しが必要になることが多く、シミュレータを乗り換えるとネットリストの方言も書き直しになります。
コメントプレフィックスはネットリストのフォーマットに合わせ、RNLの中身は一字一句そのまま。
RNLの内容はどのネットリストフォーマットでも同じであり、シンボルもRNLで定義されるため、ファイルやライブラリと一緒に移動します。
シミュレータを変えても、ビューアを変えても、回路図はそのまま残ります。
従来のフォーマットはそれを書き出したEDAツールでしか開けないため、受け取る側も同じ環境が必要です。スクリーンショットとネットリストの組み合わせでは、片方が変わるとすぐにもう片方が古くなります。
- シミュレータはそのまま実行
- ブラウザですぐ図面を表示
- 同僚もAIもそのまま読み書き可能
RNLはプレーンテキストであるため共有やオープンソース化が容易で、シミュレータがファイルをそのまま実行し、ブラウザ内のビューアが回路図を描画します。
回路図はツールではなく、回路そのものと一緒に移動します。
05 · ビジョン
オープンなエコシステムと、その上に築かれる設計フロー
RNLはデータレイヤーです。回路とその意味を、誰でも開けるファイルに収めます。
オープンなエコシステム
オープンソースソフトウェアのように公開・再利用される回路とシンボルライブラリ。
- 公開規格オープンに規定された言語とパッケージ
- シンボルライブラリすべてのシンボルの図面と定義の原文
- 回路ギャラリー公開リポジトリ上の設計をWebビューアで表示
- オープンソースツールランタイム、コマンドライン、およびビューア
RNLを基盤とする設計フロー
エージェントが回路を作成・変更し、人間がその構造と設計意図をレビューし、EDAツールがシミュレーションと検証を行います。
エージェント
構造と図面を含めて回路を作成・変更します。
人間
宣言された構造と設計意図をビューアでレビューします。
ota5t.sp
RNL(データレイヤー):ネットリスト + 意味
EDAツール
シミュレーションと検証を実行します。シミュレータはRNLのコメントをスキップします。
06 · 現在の状況
現在の到達点
言語は言語標準0.3としてリリースされ、Webビューアとデスクトップビューアでネットリストの読み込み・描画・編集が行えます。ソルバーも第1版が公開されています。以下は直近のリリース済みマイルストーンと今後の予定であり、タイムライン全体にはすべてのリリース済みマイルストーンが掲載されています。
- RNLコア 0.5.4
Core 0.5.4: rnl solve says the solver is a preview; each object lists the usages and groups it is a member of, in the Document, the snapshot and the new rnl explain; package files and hardware-description files are known by their format; the solver tells supply, ground and port symbols by their drawing. リリースノート
- RNLコア 0.5.5
Core 0.5.5: the Document carries the parameters of subcircuits, those a definition gives, those an instance writes and the numbers they come to, and a build can bind values to them; an instance of a subcircuit that Auto Include found defined several times lists the definitions. リリースノート
- デスクトップビューア 0.5.3
RNL Viewer 0.5.3: entering an instance of a subcircuit that Auto Include found defined several times asks which definition to open; a subcircuit shows its parameters in a bar under the path, and a dialog changes them; entering a subcircuit of another file takes the values its instance writes. リリースノート
- タイムライン全体
- 今後の予定
- 言語標準 0.4
計画中:端子数に応じたシンボルの選択、新しい
@SOLVER-CONFIGの導入。 - ソルバーの目的関数(第2版)
計画中:ハードコードされたソルバーのロジックから標準パッケージの名前を設定へと切り出し、0.3のファイルでも電流方向、グラウンドの向き、信号の流れに関する目的関数が機能するようにします。
よくある質問(FAQ)
RNLを書いたネットリストでシミュレータがエラーを出しませんか?
いいえ。RNLはホストとなるネットリストの有効なコメント内にのみ記述されるため、シミュレータは前処理なしでそれをスキップします。各社シミュレータでどのマーカー表記が完全に安全かについては、現在も検証を進めています。
RNLによって回路の内容が変わってしまうことはありませんか?
ありません。素子、パラメータ、接続関係はネットリストのみによって定義され、RNLはそれらを参照することしかできません。RNLだけを変更した場合、ネットリスト本文はそのまま保たれます。
必ず座標を書かなければなりませんか?
いいえ。「M1とM2は差動対であり、中心線に関して対称である」という記述だけでも有効な説明になります。座標はソルバーに任せることも、後から追加することもできます。
同じRNLならどのツールでも同じ図面になりますか?
正確なジオメトリが記述された部分は一致します。設計意図のみが記述された部分については、ソルバーによってその意図を満たす異なる図面が描画されることがあります。RNLはピクセル単位の一致を保証するものではありません。
VirtuosoやKiCadの回路図ファイルとは何が違いますか?
それらは各ツール固有のグラフィカルフォーマットであり、ネットリストとは別に保存されます。RNLはネットリストに付随し、対応するどのツールでも読み取ることができ、シンボル自体もRNLで定義されます。
なぜAIがよく話題に出てくるのですか?
言語モデルはネットリストのようなテキストの読み書きを得意としています。RNLは回路の構造、設計意図、図面もテキストにするため、エージェントは1つのファイルに回路とその意味を書き出し、人間は宣言された内容をビューアでレビューできます。文と文の間の自由テキストは人間が読みやすくするためのもので、機械の解釈を変えることはありません。
他の言語でもRNLを書けますか?
キーワードや標準パッケージの名前には、他の言語の別名を付けられます。ファイルのヘッダーレコードで@ALIASを使って個別に宣言するか、ある言語の別名を1つのパッケージファイルにまとめた別名パッケージを@USE-ALIASES(name=…, version=…)(カスタムファイルの場合はpath=…)で読み込めます。標準シリーズ0.3には現在、同梱の別名パッケージとして中国語(rnl-zh)が1つ含まれています。ヘッダーレコードに@USE-ALIASES(name="rnl-zh", version="0.3")と書くと、その別名を使えます。別名は単なる別の綴りであり、標準の綴りと別名の綴りを自由に混在させても機械はまったく同じ文として読み取ります。なお、ヘッダーレコード自体は常に標準の綴りを使用します。
今すぐ使えますか?
回路図の閲覧とネットリストのテキスト編集については今すぐ使えます。ビューアを使ってブラウザまたはWindows、Linux、macOS上でRNL付きネットリストを開き、配置済みオブジェクトを描画したり、テキストを編集して再描画したりできます。自動レイアウトはまだ初期段階であり、最初のソルバーがrnl solveおよびデスクトップビューアのプレビューとして提供されています。Webビューアはまだソルバーを実行しないため、未配置のオブジェクトは[未描画]ビューに一覧表示します。ドラッグ&ドロップによる編集にはまだ対応していません。