RNLRich Netlist
日本語

Translated from English by AI; it may contain errors. Report an issue · The English terms are the normative ones. Glossary

RICH NETLIST · TOOLKIT 0.1テキスト編集 · デスクトップで求解

ツール

ブラウザでネットリストを開くか、Windows・Linux・macOS用のビューアをダウンロード

RNLツールキットには、インストール不要のWebビューアと、Windows 10/11・Linux・macOS対応のデスクトップビューアの2つが用意されています。どちらもRNLレコードを含むネットリストを読み込んで回路図として描画し、ネットリストのテキストを編集して適用すると再描画します。保存時、Webビューアはファイルをダウンロードし、デスクトップビューアは元の場所へファイルを書き戻します。さらにデスクトップビューアはソルバーを備えており、ファイルを書き換えずに求解結果をプレビュー表示できます。

ツール
RNL Viewer
読み込み対象
RNLレコードを含むSPICE・Spectreネットリスト
Web版
Chrome、Edge 109+ · Safari 16+ · Firefox 114+
デスクトップ版
0.5.3 · Windows 10/11 x64 · Linux x86_64 · macOS arm64 / x86_64
言語
RNL 0.3
ライセンス
MIT · フォント OFL-1.1

01 · ビューア

ネットリストを開いて回路図を表示。保存するまでファイルは一切書き換えられません

ビューアはRNLレコードを含むSPICEまたはSpectreのネットリストを(インクルードされたファイルとともに)開き、回路の各レベルを描画して、その横にネットリストのテキスト、問題一覧、階層構造を表示します。クリップボード内のネットリストテキストも直接開けます([ファイル]›[クリップボードから読み込み]で内容をプレビューし、確認後に開きます)。

すべてのレベルを描画

トップレベルと各サブサーキットはそれぞれ独立した図面として1つずつ表示されます。ドラッグで移動、スクロールでズームできます。サブサーキットのインスタンスをダブルクリックするとその内部図面が開き、Backspaceで親レベルに戻ります。

ネットリストのテキスト

ネットリストとインクルードされたファイルを表示し、RNLレコードとネットリストの文をハイライトします。有効にならなかった文には淡い背景色が付きます。サブサーキットを描画している間はその定義外のテキストが暗くなり、サブサーキットに入るとその定義の先頭へスクロールします。

問題一覧

エラー、警告、ヒントがテキストの下に一覧表示され、クリックすると該当行へ移動します。該当する行の行番号も色分けされます。

階層構造

トップレベルから展開されるインスタンスツリーと、その下に頭文字ごとにグループ化されたサブサーキット一覧(検索ボックス付き)を表示します。選択するとその図面が開きます。

図面とテキストの連動

図面上のインスタンスや配線をクリックすると、テキスト内の該当する文とそれを参照するすべての箇所が強調表示されます。逆にテキストをクリックすると、図面上で該当オブジェクトが選択されます。

未描画のオブジェクト

位置が指定されていないオブジェクト(またはシンボルがないオブジェクト)は描画されず、サイドパネルの[未描画]ビューにそれぞれのシンボルと端子のネット付きで一覧表示されます(名前で検索可能)。項目をクリックするとネットリスト内の該当文がハイライトされます。ステータスバーには描画されていないオブジェクトの数が表示され、そのメッセージをクリックするとこのビューが開きます。

編集・適用・保存

どちらのビューアでもネットリストのテキストを編集できます。編集しただけでは何も起きず、「適用」したときに再描画され、「保存」したときにファイルへ書き出されます。自動的にソルバーが走ることもありません。

テキストを編集

[編集]›[テキストを編集](Ctrl+Q、macOSでもControlキー)で、ネットリスト表示がファイルごとの行番号付きテキスト編集ボックスに切り替わります。未保存の変更があるファイルはファイルパスの横にドットが付き、まだ適用されていない変更がある場合はテキスト上部のバーにその旨が示されます。[編集]›[変更を破棄]は未適用の変更を破棄して編集を終了します。

適用

[編集]›[適用して編集を終了](Ctrl+Enter)は、編集後のテキストからネットリストを再構築して回路図を再描画し、現在のレベル・表示範囲・選択状態を維持したまま問題リストと階層を更新して、編集を終了します。ビルドに失敗した場合は編集状態のまま維持され、理由が表示されます。

保存

[ファイル]›[保存](Ctrl+S、Webビューアでは[ファイル]›[ファイルをダウンロード]):デスクトップビューアは編集されたファイルのみをそれぞれの文字コードと改行コードを維持したまま元の場所へ書き戻します。Webビューアはローカルファイルを上書きできないため、[ファイルをダウンロード]によって現在表示中のファイルをダウンロードします。未保存の変更がある状態で別のファイルを開く・再読み込みする・閉じる際には確認を求めます。

どちらのビューアもまったく同じ回路図を描画します。単一のRustコアがデスクトップではネイティブに、ブラウザではWebAssemblyとして動作し、すべての線とテキストの配置を決定し、同梱のフォントでテキストを組版します。

02 · Webビューア

Webビューア:インストール不要

サイドバーの[ライブラリ]タブ(最初のタブ)では、開いたファイルは重複なく[ファイル]グループに追加されます。[ファイルをインクルード]と[フォルダをインクルード]はファイルを開かずに[ライブラリ]へ追加し、[除外]は現在のドキュメントを閉じずに検索対象からファイルを外します。[公開パッケージをインクルード]を使うと、GitHub APIを使わずに本サイトでホストされているSKY130などのパッケージを追加できます。[ファイル]は展開された状態で始まり、読み取り専用の[内蔵]グループ(標準シリーズ0.3および0.2)は折りたたまれた状態で始まります。折りたたみ状態はそのセッション中維持され、ルートファイルの行はハイライトされます。貼り付けたクリップボードのテキストは検索対象外の単一の「一時 · 検索対象外」行として表示され、クリックすると最後に適用したテキストに戻り、再度貼り付けると置き換わり、閉じると消去されます。ブラウザからは任意のローカルPATHディレクトリを検索できないため、Webビューアはインクルードとパッケージを[ライブラリ]から解決します。

Webビューアは静的なWebページであり、その内部でWebAssemblyにコンパイルされたRNLコアが動作します。コンピュータ上のファイルやフォルダ全体、あるいはWeb上のネットリストを開くことができ、ページ上へのファイルのドラッグ&ドロップにも対応しています。

Webビューアを開くrich-netlist.github.io/rnl/viewer/

サンプルを試す

これらのサンプルはRNLの適合性テストコーパスからの抜粋で、Webビューアとともに公開されています。クリックするとビューアで開きます。

  1. 04階層2段バッファ:各サブサーキットの回路図と、1つ上のレベルでブロックシンボルとして描画される様子、およびインクルードされるファイル。
  2. 17線種(ラインスタイル)あらゆる図形における各種の線種:矩形、円、楕円、円弧、曲線、および配線における破線、点線、太線、二重線。

ファイルはブラウザ内から出ません

コンピュータから開いたファイルはページ内でのみ処理され、外部へアップロードされることは一切ありません。本サイトは静的ファイルのみで構成されており、ファイルを受信するサーバー自体が存在しません。

URLを開く

[ファイル]›[URLを開く]は、外部のWebサーバーからネットリストとそれがインクルードするファイルを読み込みます。対象のサーバーがクロスオリジン読み取り(CORS)を許可している必要があります(GitHubのrawファイルリンクなどは対応しています)。

対応ブラウザ

ChromeおよびEdge 109以降、Safari 16以降、Firefox 114以降(module Workerに対応した最初のバージョン)。

Webビューアでも上記のとおりテキストを編集し、変更の適用時に回路図を再描画できます。ブラウザのページからローカルファイルを上書きすることはできないため、[ファイル]›[ファイルをダウンロード](Ctrl+S)は現在表示中のファイルを元の改行コードを維持したUTF-8でダウンロードします。求解を行うのはデスクトップビューアのみで、Webビューアには[求解]メニューはありません。

ビューアのURLに開くネットリストを指定してリンクを共有することもできます。たとえばviewer/?url=https://raw.githubusercontent.com/…/04-hierarchy.spは、GitHub上のネットリストをインクルードファイルとともに開きます。

外部ページへの埋め込み

iframeでviewer/?embed=1を指定すると、キャンバスのみのインタラクティブビューアを表示できます。postMessageを通じて再読み込みなしでネットリスト、レベル、背景を切り替えられます。埋め込みAPIとサンプルを参照するか、デモをお試しください。

ここで公開されているWebビューアはmainブランチの最新コミットからビルドされています。[ヘルプ]›[RNL Viewerについて]でバージョンとコミットを確認でき、[ヘルプ]›[デスクトップビューア]でこのページに戻ります。

03 · デスクトップビューア

Windows・Linux・macOS向けのデスクトップビューア

デスクトップ版RNL Viewerはディスク上のファイルをパスで直接読み書きします。ネットリストがインクルードするファイルをどこにあっても探し出し、変更されたファイルをF5で再読み込みし、編集したテキストは元の場所に保存し、[ファイル]›[名前を付けて保存]でネットリストを新しい名前で保存できます。インターフェースはWebビューアと共通で、さらに自動レイアウトのための[求解]メニューを備えています。

デスクトップ版の[ライブラリ]では、[ファイル]と[内蔵]の間に順序付きのPATHグループ(初期状態は折りたたみ)が表示され、追加・移動・削除が行えます。グループを展開すると、そのフォルダ直下の.rnlファイルおよび1つ下のバージョン番号サブフォルダ内の.rnlファイルが表示され、行を開くと[ファイル]にも追加されます。[ライブラリ]を開いたときやPATH変更時にディレクトリが再スキャンされます。ソルバー・表示・PATHを含むすべての設定はTauriのアプリケーション設定ディレクトリ内のsettings.jsonに保存され(既存のWebビュー設定は初回起動時に移行)、settings.jsonの正確なパスが[ライブラリ]の下部に表示されます。インクルードはまず相対パスを試し、ファイル名のみの場合は[ライブラリ]、次にPATHの順でフォールバックし、解決されたファイル名をヒントとして通知します。パッケージは[ライブラリ]・PATH・[内蔵]の順に検索し、要求されたバージョンに最初に一致したものを使用します。各ディレクトリではまずname.rnlとversion/name.rnlを確認し、次に他の.rnlファイルのPACKAGEヘッダーをスキャンするため、ファイル名とパッケージ名が一致している必要はありません。ユーザー自身のrnl-stdで同梱版を上書きすることも可能です。

RNL Viewer 0.5.3 · Windows x64リリースページとリリースノート
RNL Viewer 0.5.3 · Linux x86_64
  • AppImageRNL-Viewer-0.5.3-linux-x86_64.AppImage

    Ubuntu 22.04以降のx86_64システム向け。ダウンロードしたディレクトリでchmod +x RNL-Viewer-0.5.3-linux-x86_64.AppImageを実行してから、./RNL-Viewer-0.5.3-linux-x86_64.AppImageを起動します。FUSEがない環境では./RNL-Viewer-0.5.3-linux-x86_64.AppImage --appimage-extract-and-runを使用してください。

  • DebianパッケージRNL-Viewer-0.5.3-linux-x86_64.deb

    Ubuntu 22.04以降(他のDebian系ディストリビューションでは互換性のあるglibcとWebKitGTK 4.1が必要)。ダウンロードしたディレクトリでsudo apt install ./RNL-Viewer-0.5.3-linux-x86_64.debを実行し、アプリケーションメニューからRNL Viewerを開くかrnl-viewerを実行します。アンインストールはsudo apt remove rnl-viewerです。

  • チェックサムSHA256SUMS.txt

    チェックサムファイルと使用するパッケージを同じディレクトリにダウンロードし、sha256sum --check --ignore-missing SHA256SUMS.txtを実行します。

RNL Viewer 0.5.3 · macOS 13+

お使いのチップ用のDMGを開き、RNL Viewerを「アプリケーション」フォルダにドラッグしてからディスクイメージを取り出します。アプリはアドホック署名されており、Appleによる公証(Notarization)は受けていません。macOSにブロックされた場合は、「システム設定」→「プライバシーとセキュリティ」で「このまま開く」を選択するか、信頼できるダウンロードであればターミナルでxattr -dr com.apple.quarantine "/Applications/RNL Viewer.app"を実行してから再度開いてください。アンインストールするにはアプリを終了してゴミ箱へ移動します。

Finderでファイルを右クリックし「このアプリケーションで開く」→「RNL Viewer」を選択して開けます(「情報を見る」からそのファイル種別のデフォルトアプリケーションに設定することも可能です)。ウィンドウへのドラッグ&ドロップでも開けます。ショートカットの大半はCmdを使用しますが、テキスト編集は物理キーのControl+Qを維持し、Cmd+Qはアプリ終了になります。設定は~/Library/Application Support/io.github.rich-netlist.viewer/settings.jsonに保存されるため、アンインストール後に必要に応じて削除してください。ダウンロードの検証にはリリースのSHA256SUMS.txtとshasum -a 256を使用します。

RNL Viewer 0.5.3 · 公開パッケージ付き

上のインストーラは、インストール時に公開パッケージを含めるか選べます。Windows のインストーラでは専用のページ、MSI では機能として選びます。ここにあるのは、同じダウンロードにパッケージを含めた別の版です。リリースのビルド時点の rnl-packages にある各パッケージの最新版で、ビューアが自分でダウンロードすることはありません。どれが入っているかは[ヘルプ]›[公開パッケージ]に書かれています。

  • Linuxにおける中国語・CJKフォントUIとネットリストは同梱のNoto Sans SC Webフォントにフォールバックしますが、GTKネイティブメニュー、ネイティブツールチップ、システムファイルダイアログにはシステムのCJKフォントが必要です。Debian/Ubuntuではsudo apt install fonts-noto-cjkを実行してアプリを再起動してください(AppImageでも同様です)。
  • WebView2デスクトップビューアにはMicrosoft Edge WebView2ランタイムが必要です(Windows 10および11には標準搭載されています)。入っていない場合はMicrosoftのサイトからダウンロードできます。
  • SmartScreenの警告実行ファイルにはまだコード署名がないため、Windows SmartScreenによって「WindowsによってPCが保護されました」と表示されることがあります。「詳細情報」をクリックし、「実行」を選択してください。
  • アップデート[ヘルプ]›[アップデートを確認]で新しいリリースがあるか確認できます。

求解(プレビュー表示)

デスクトップビューアの[求解]メニューは、位置が指定されていないオブジェクトをrnl solveと同じソルバーで自動配置します。結果はウィンドウ内でのみ表示され、元のファイルは変更されません。

求解結果のプレビュー

[求解]›[求解](F9)は、ネットリストとそのインクルードファイルの適用済みテキストをrnl solveと同様に求解します。バックグラウンドで実行されるためウィンドウはそのまま操作でき、ステータスバーには求解中のレベルと[キャンセル]ボタンが表示されます。図面の上部のバーにはプレビュー中でありディスク上のファイルは未変更である旨が示され、サイドパネルの[求解]ビューにはソルバーのレポートが表示されます(任意の項目をクリックするとネットリスト内の該当行へ移動します)。[求解]›[プレビューを閉じる]で元の記述どおりのファイルに戻ります。

求解結果のコピーを保存

[求解]›[求解結果に名前を付けて保存](Ctrl+Shift+S)で、選択した保存先に結果を書き出します。他のファイルをインクルードしていないネットリストなら単一ファイル(デフォルト名NAME-solved.EXT)として保存し、インクルードがある場合はrnl solve -o DIRと同様に求解済みファイルとその他の読み込みファイルをフォルダに保存します。読み込んだ元のファイルのいずれかを上書きしてしまう保存先は拒否されます。

ソルバーの設定

[求解]›[設定]でソルバーの各種オプションを設定できます:各レベルの制限時間、許容差、グリッド、ビーム幅、探索およびルーターの計算量、そして配置をランク付けする目的関数(どの目的関数を有効にするか、その評価順序、および同じティア内の目的関数の重み)。制約の優先度(low、normal、high)はネットリスト内に記述するものであり、ここでは設定しません。[デフォルトに戻す]ですべてのオプションが初期設定に戻り、設定内容は次回起動時にも保持されます。

04 · コマンドライン

ダウンロードして、展開して、すぐ実行

rnlを使ってネットリストの検証、SVGの描画、レイアウトの求解を行えます。Rustのインストールは不要で、Windowsでも別途VC++ランタイムを入れる必要はありません。CLIとnpmパッケージはビューアや言語標準とは独立した共通のコアバージョンを持ちます。

SHA256SUMS.txt:実行前にアーカイブのSHA256を検証してください。rnl --versionでコアのバージョンとビルドコミットを表示し、rnl check my.spでネットリストを検証、rnl render my.sp -o svgで図面をエクスポートします。

これらのリンクは常に最新のcore-v*リリースを指します。ファイルには署名がないため、WindowsではSmartScreenが表示される場合があり、macOSでブラウザからダウンロードした場合はxattr -d com.apple.quarantine rnlが必要になることがあります。Linux arm64は現在ソースからのビルドが必要です。ダウンロード・展開・チェックサム検証のコマンドについてはCLIガイドを参照してください。

05 · Virtuosoエクスポート

Virtuosoの回路図をRNLへエクスポート

rnl-virtuosoはVirtuosoの回路図エディタにRNL → Export RNL...を、CIWにFile → Export → RNL...を追加します。単一セルまたはライブラリ全体をエクスポートし、階層、カスタムブロックシンボル、配置、向き、配線、バスを保持したままeda-symbolおよびeda-styleパッケージを用いて描画します。

rnl-virtuosoリポジトリ
  • Linux x86-64.tar.gz

    リリースページからダウンロードし、Virtuosoが動作するホスト上で展開してください(そのホスト上にCadence標準のエクスポータとライセンスが必要です)。

  • インストールと使い方README

    導入手順、メニュー操作、オプションの詳細はREADMEに記載されています。

  • RISCA reconfigurable ADCgallery

    Virtuosoから実際にエクスポートしたRNLの実例です。

06 · ツールチェーン

RNLツールチェーン:読む・解く・描く・編集する

ツールチェーンでは「RNLを解釈する部分」と「設計意図を座標に変える部分」を独立したモジュールに分離しています。そのため、ソルバーなしでも図面を閲覧でき、必要なときだけソルバーを実行できます。現在揃っているもの:ランタイム、ホストアダプタ、レンダラー、コマンドライン、上記の2つのビューア、そしてrnl solveとデスクトップビューアに搭載されたソルバーの第1版です。パスを選んでデータの流れを確認し、各モジュールをクリックして役割を見てみてください。

アプリシェル Webビューア · WebAssembly デスクトップビューア · Tauri 2 モバイルブラウザ 2つのビューアは単一のUIを共有しています。コアはRustで記述され、デスクトップではネイティブに、ブラウザではWebAssemblyとして動作します。WebAssembly版のコアはnpmでも@rich-netlist/runtimeとして公開されています。

07 · ライセンス

オープンソースで、自由に利用可能

ビューアおよびRNLツールキット全体のソースコードはGitHubで公開されています。

MIT

ビューアのコードはMITライセンスの下で提供されており、著作権表示を保持する限り自由に使用・改変・再配布できます。

OFL-1.1

図面内のテキストは、Adobeが著作権(2014-2021)を有しSIL Open Font License 1.1の下で提供されるNoto Sans SCを用いて組版・描画されます。コアがフォントのメトリクスを保持し、デスクトップビューアはフォントを内蔵し、Webビューアは図面が必要とする分だけを読み込みます(決定記録 0009)。

ソースコード

GitHub上で公開されています:Webビューアはapps/web、デスクトップビューアはapps/desktop、両者が共有するUIページはapps/viewer-ui、コアはcratesにあります。各リリースの変更点はリリースノートに記載されています。