RNLRich Netlist
繁中

The English terms are the normative ones. Glossary

RICH NETLIST · TOOLKIT 0.1可編輯文字 · 桌面版支援求解預覽

工具

在瀏覽器中開啟網表,或下載適用於 Windows、Linux 與 macOS 的檢視器

RNL 工具鏈提供兩款檢視器:免安裝即可使用的網頁版檢視器,以及適用於 Windows 10/11、Linux 與 macOS 的桌面版檢視器。兩者皆可讀取帶有 RNL 記錄的網表並繪製成原理圖,亦支援編輯網表文字並在應用變更後重新繪製。網頁版檢視器透過下載檔案來儲存;桌面版檢視器則直接將檔案寫回原處,並內建求解功能,可將求解結果顯示為預覽而不寫入檔案。

工具
RNL Viewer
讀取格式
帶有 RNL 記錄的 SPICE 與 Spectre 網表
網頁版
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 網表及其引入(include)的檔案,繪製電路的每一個層級,並在側邊顯示網表文字、問題清單與階層結構。剪貼簿中的網表文字也能直接開啟:檔案 › 從剪貼簿載入(File › Load from Clipboard)會先顯示文字內容,經你確認後再開啟。

繪製每個層級

頂層與各個子電路分別為獨立圖面,每次顯示一層;拖曳可平移檢視,滾輪可縮放。雙擊子電路實例即可進入其圖面;按 Backspace 鍵返回上一層。

網表文字

顯示網表及其引入的檔案,並醒目顯示 RNL 記錄與網表敘述;未生效的敘述帶有柔和底色。當繪製某個子電路時,其定義範圍外的文字會變暗;進入子電路時,會自動捲動至其定義開頭。

問題清單

錯誤、警告與提示列於文字下方;點選任一項目即可跳至對應行,有問題的行號也會標上顏色。

階層結構

上方為從頂層展開的實例樹,下方為依名稱首字母分組的所有子電路清單,並附有搜尋框;點選任一項目即可開啟其圖面。

圖面與文字連動

在圖面上點選實例或連線,文字區會標示出其定義敘述及所有引用位置;反過來點選文字,圖面上也會選取對應物件。

未繪製的物件

未指定位置(或沒有符號)的物件不會繪出;側邊欄的「未繪製」檢視會將它們連同符號與各端子所接的網路一一列出,並可依名稱搜尋;點選任一項即可在網表中醒目顯示其敘述。狀態列會回報未繪製的物件數量,點選該訊息即可開啟此檢視。

編輯、應用、儲存

兩款檢視器皆可編輯網表文字。修改本身不會自動生效:應用時才會重新繪圖,儲存時才會寫入檔案,也不會自動執行求解。

編輯文字

編輯 › 編輯文字(Ctrl+Q,macOS 上同樣使用 Control 鍵)會將網表檢視切換為可編輯的文字框,每個檔案各附行號。未儲存的變更會在檔案路徑旁以圓點標示,文字上方的提示列會指出尚有未應用的變更。編輯 › 放棄變更會放棄尚未應用的變更並結束編輯。

應用

編輯 › 應用並結束編輯(Ctrl+Enter)會根據編輯後的文字重新建置網表、重新繪製原理圖、更新問題清單與階層,同時保留目前的層級、檢視與選取狀態,並結束編輯。若建置失敗,編輯內容仍會保留,且檢視器會說明原因。

儲存

檔案 › 儲存(Ctrl+S;網頁版檢視器中為檔案 › 下載檔案):桌面版檢視器只會將編輯過的檔案寫回原讀取位置,並保留各檔案的編碼與換行格式;網頁版檢視器無法覆寫本機檔案,因此「下載檔案」會下載目前顯示的檔案。若有未儲存的變更,在開啟其他檔案、重新載入或關閉前,檢視器會先詢問。

兩款檢視器繪製出的原理圖完全一致:由同一個 Rust 核心決定每條線段與每段文字的位置(在桌面版以原生程式碼執行,在瀏覽器中以 WebAssembly 執行),並使用內建字型進行文字排版。

02 · 網頁版檢視器

網頁版檢視器:免安裝,開啟即用

在資源庫側邊欄分頁(第一個分頁)中,已開啟的檔案會加入「檔案」群組且不重複。「引入檔案」與「引入資料夾」會將檔案加入資源庫而不開啟;「排除」會將檔案移出搜尋範圍,但不關閉目前的文件。「引入公開套件」可從本站加入 SKY130 等託管的套件,無須使用 GitHub API。「檔案」群組預設展開,唯讀的「內建」群組(標準系列 0.3 與 0.2)預設收合;收合狀態在同一次工作階段內保留,根檔案所在列會醒目顯示。貼上的剪貼簿文字會顯示為單一的「暫存 · 不參與搜尋」列,不參與查找:點選即可回到最近一次應用的文字,再次貼上會取代它,關閉則會清除。由於瀏覽器無法搜尋任意的本機 PATH 目錄,網頁版檢視器會從資源庫解析引入的檔案與套件。

網頁版檢視器是一個靜態網頁,內部執行編譯為 WebAssembly 的 RNL 核心。它可以開啟電腦上的檔案或整個資料夾,也可以開啟網路上的網表;直接將檔案拖放至頁面上也能開啟。

開啟網頁版檢視器rich-netlist.github.io/rnl/viewer/

試試這些範例

這些範例來自 RNL 的一致性測試語料庫,隨網頁版檢視器一併發布。點選任一範例即可在檢視器中開啟。

  1. 04階層結構兩級緩衝器:每個子電路各有一張原理圖,在上一層繪製為方塊符號,並包含一個引入(include)的檔案。
  2. 17線條樣式各種幾何圖形上的每一種線型:在矩形、圓形、橢圓、圓弧、曲線以及連線上繪製虛線、點線、粗線與雙線。

你的檔案只留在瀏覽器中

從電腦開啟的檔案僅在網頁內讀取,絕不會上傳至任何地方:本網站僅由靜態檔案組成,沒有任何接收檔案的伺服器。

開啟網址(URL)

檔案 › 開啟 URL(File › Open URL)可從其他網站伺服器讀取網表及其引入的檔案。該伺服器必須允許跨來源資源共用(CORS),例如 GitHub 的 raw 檔案連結。

支援的瀏覽器

Chrome 與 Edge 109 以上、Safari 16 以上,以及 Firefox 114 以上版本(最早支援 module Worker 的版本)。

網頁版檢視器同樣可編輯文字,並在應用變更後重新繪製原理圖,如上文所述。由於瀏覽器網頁無法覆寫本機檔案,檔案 › 下載檔案(Ctrl+S)會以 UTF-8 編碼並保留原換行格式,下載目前顯示的檔案。僅桌面版檢視器提供求解功能;網頁版檢視器沒有「求解」選單。

檢視器網址可直接指定要開啟的網表,方便分享連結:viewer/?url=https://raw.githubusercontent.com/…/04-hierarchy.sp 會開啟 GitHub 上的網表及其引入的檔案。

嵌入其他網頁

在 iframe 中使用 viewer/?embed=1 即可嵌入僅顯示畫布的互動式檢視器,並透過 postMessage 切換網表、層級與背景而無須重新載入。請參閱嵌入 API 與範例,或試用展示頁面。

此處的網頁版檢視器由 main 分支的最新提交建置而成;說明 › 關於 RNL Viewer(Help › About RNL Viewer)會顯示版本號與提交紀錄,說明 › 桌面版檢視器(Help › Desktop Viewer)則會回到本頁。

03 · 桌面版檢視器

適用於 Windows、Linux 與 macOS 的桌面版檢視器

桌面版 RNL Viewer 依路徑直接讀寫磁碟上的檔案:無論網表引入的檔案位於何處皆能找到,按 F5 可重新讀取已變更的檔案,編輯後的文字在儲存時直接寫回原處,而檔案 › 另存新檔(File › Save As)則可將網表儲存為新檔案。它與網頁版檢視器共用同一套介面,並額外提供用於自動佈局的「求解」選單。

桌面版資源庫在「檔案」與「內建」之間依序顯示各個 PATH 群組(預設收合),並提供新增、移動與移除控制項。展開群組可檢視直接位於該資料夾中,或位於其下一層版本號子資料夾中的 .rnl 檔案;開啟某一列也會將其加入「檔案」。開啟資源庫時以及 PATH 變更後,會重新掃描目錄。所有設定(包含求解器、顯示與 PATH)皆儲存在 Tauri 應用程式設定目錄下的 settings.json;既有的 WebView 設定會在首次啟動時遷移,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 拖曳至「應用程式(Applications)」,再退出磁碟映像。本應用程式僅作臨時簽署(ad-hoc signed),尚未經 Apple 公證。若 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 中各套件的最新版本;檢視器從不自行下載,說明 › 公開套件(Help › Public Packages)會說明本版帶有哪些。

  • Linux 上的中文字型介面與網表會自動退回使用隨附的 Noto Sans SC 網頁字型。但 GTK 原生選單、原生工具提示與系統檔案對話方塊仍需系統中文字型:在 Debian/Ubuntu 上,請執行 sudo apt install fonts-noto-cjk 並重新啟動應用程式(AppImage 亦同)。
  • WebView2桌面版檢視器需要 Microsoft Edge WebView2 執行階段,Windows 10 與 11 通常已內建。若系統缺少此元件,可從 Microsoft 網站下載。
  • SmartScreen 提示由於執行檔尚未進行程式碼簽署,Windows SmartScreen 可能會顯示「Windows 已保護您的電腦」:請點選「其他資訊」,再點選「仍要執行」。
  • 檢查更新說明 › 檢查更新(Help › Check for Updates)可檢查是否有更新的版本。

求解並顯示為預覽

桌面版檢視器的「求解(Solve)」選單會使用與 rnl solve 相同的求解器,為未指定位置的物件排列座標。結果僅顯示於視窗中,原始檔案保持不變。

求解預覽

求解 › 求解(F9)會以與 rnl solve 相同的方式,對網表及其引入檔案中已應用的文字執行求解。求解於背景執行,視窗仍可正常操作,狀態列則會顯示正在求解的層級與「取消」按鈕。圖面上方的提示列會說明目前為預覽且磁碟上的檔案未變更,側邊欄的「求解」檢視會顯示求解器的報告:點選任一項目即可跳至其在網表中的對應行。求解 › 關閉預覽會回到檔案原本寫成的內容。

另存求解副本

求解 › 另存求解副本(Solve › Save Solved Copy As,Ctrl+Shift+S)可將求解結果儲存至你指定的位置:若網表未引入其他檔案,會儲存為單一檔案(預設檔名為 NAME-solved.EXT);否則會儲存為一個資料夾,內含求解後的檔案及其他讀取的檔案,與 rnl solve -o DIR 的輸出方式相同。若所選位置會覆蓋任何已讀取的原始檔案,檢視器會拒絕儲存。

求解器設定

求解 › 設定可調整求解器的選項:各層級的時間上限、容差、網格、束寬、搜尋與走線的工作量,以及用於排序佈局的目標:啟用哪些目標、它們的排序順序,以及同一等級中各目標的權重。約束的優先順序(low、normal、high)寫在網表中,不在此處設定。「恢復預設值」會將所有選項重設為預設值,且設定會在每次啟動之間保留。

04 · 命令列

下載、解壓縮、直接執行

使用 rnl 檢查網表、繪製 SVG 與求解佈局。無須安裝 Rust;Windows 版本亦無須額外安裝 VC++ 執行階段程式庫。命令列工具與 npm 套件共用核心版本號,獨立於檢視器與語言標準之外。

RNL core · CLI核心發布頁面

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...。它支援匯出單一 cell 或整個設計庫,保留階層結構、自訂方塊符號、位置、朝向、連線與匯流排,並使用 eda-symbol 與 eda-style 套件繪製。

rnl-virtuoso程式碼儲存庫

06 · 工具鏈

RNL 工具鏈:讀取、求解、繪圖、編輯

工具鏈將「讀懂 RNL」與「將意圖轉換為座標」拆分為獨立模組:無須求解器即可檢視原理圖,僅在需要時才執行求解。目前已完成的部分包含:執行階段程式庫、宿主配接器、渲染器與命令列、上述兩款檢視器,以及內建於 rnl solve 與桌面版檢視器中的第一版求解器。點選上方路徑可查看資料流向;點選任一模組可查看其職責。

應用程式外殼 網頁版檢視器 · WebAssembly 桌面版檢視器 · Tauri 2 行動裝置瀏覽器 兩款檢視器共用同一套介面;核心以 Rust 編寫,在桌面版以原生程式碼執行,在瀏覽器中則編譯為 WebAssembly 執行。WebAssembly 核心亦已發布至 npm,套件名稱為 @rich-netlist/runtime。

07 · 授權條款

開放原始碼,可自由使用

檢視器與整個 RNL 工具鏈的原始碼皆在 GitHub 上公開。

MIT

檢視器程式碼採用 MIT 授權條款發布:只要保留著作權聲明,即可自由使用、修改與散佈。

OFL-1.1

圖面中的文字使用 Noto Sans SC 進行排版與繪製(著作權所有 2014-2021 Adobe,採用 SIL Open Font License 1.1 授權)。核心內含字型度量資料,桌面版檢視器內建字型檔,網頁版檢視器則依圖面需求動態載入(參閱決策 0009)。

原始碼

位於 GitHub:網頁版檢視器位於 apps/web,桌面版檢視器位於 apps/desktop,兩者共用的介面位於 apps/viewer-ui,核心則位於 crates。各版本的變更內容詳見版本資訊。