01 · 查看器
打开网表,立即查看原理图。直到你按下保存前,不会写入任何内容
查看器会打开带有 RNL 记录的 SPICE 或 Spectre 网表及其引入的文件,绘制电路的每一个层级,并在侧边栏显示网表文本、“问题”面板与层级结构。剪贴板中的网表文本也能直接打开:File › Load from Clipboard(文件 › 从剪贴板加载)会先显示文本内容,经你确认后再打开。
绘制每个层级
顶层与各个子电路分别为独立原理图,每次显示一层;拖动可平移画面,滚轮可缩放。双击子电路元件即可进入其原理图;按 Backspace 键返回上一层。
网表文本
网表及其引入的文件,并高亮显示 RNL 记录与网表语句;未生效的语句带有柔和底色。当绘制某个子电路时,其定义范围外的文本会变暗;进入该子电路时,会自动滚动至其定义开头。
问题
错误、警告与提示列于文本下方;点击任一项即可跳至对应行,有问题的行号也会标上颜色。
层级结构
上方为从顶层展开的元件树,下方为按名称首字母分组的所有子电路索引,并附有搜索框;点击任一项即可打开其原理图。
原理图与文本联动
在原理图上点击一个元件或一根导线,文本区会标出其语句及每一处引用;反过来点击文本,原理图上也会选中对应对象。
未绘制的对象
未指定位置(或没有符号)的对象不会绘出;侧边栏的“未绘制”视图会列出它们及其符号与端子所接的网络,可按名称搜索,点击任一项即可在网表中高亮其语句。状态栏会显示未绘制对象的数量,点击该消息即可打开此视图。
编辑、应用、保存
两款查看器均可编辑网表文本。修改本身不会自动生效:应用时才会重新绘图,保存时才会写入文件,也不会自动执行求解。
编辑文本
Edit › Edit Text(编辑 › 编辑文本,Ctrl+Q,macOS 上同样使用 Control 键)会将网表视图变为可编辑的文本框,每个文件各一个并带有行号。未保存的修改会在文件路径旁以圆点标示,文本上方的提示栏会标明修改尚未应用。Edit › Discard Changes(编辑 › 放弃变更)会丢弃尚未应用的修改并退出编辑模式。
应用
Edit › Apply and Exit Editing(编辑 › 应用并退出编辑,Ctrl+Enter)会根据编辑后的文本重新构建网表并重新绘制原理图,同时更新“问题”面板与层级结构,保留当前层级、视图与选中状态,然后退出编辑模式。若构建失败,你的修改仍会保留,并由查看器提示原因。
保存
File › Save(文件 › 保存,Ctrl+S;网页版查看器中为 File › Download File,即“文件 › 下载文件”):桌面版查看器只会将修改过的文件写回原处,并保留各文件的编码与换行格式;网页版查看器无法覆盖本地文件,因此“下载文件”会下载当前显示的文件。若有未保存的修改,查看器会在打开其他文件、重新加载或关闭前先询问。
两款查看器绘制出的原理图完全一致:由同一个 Rust 核心决定每条线段与每段文字的位置(在桌面版以原生代码运行,在浏览器中编译为 WebAssembly 运行),并使用随附字体进行文字排版。
02 · 网页版查看器
网页版查看器:免安装,打开即用
在侧边栏的“资源库”标签页(第一个标签页)中,已打开的文件会加入“文件”组并自动去重。“引入文件”与“引入文件夹”会将文件加入资源库而不打开;“排除”会将文件从搜索范围中移除,但不会关闭当前文档。“引入公开包”可直接从本站加入 SKY130 等托管的包,无需使用 GitHub API。“文件”组默认展开,只读的“内置”组(标准系列 0.3 与 0.2)默认折叠;折叠状态在同一次运行期间保留,根文件所在行会高亮显示。粘贴的剪贴板文本会单独显示为一行“临时 · 不参与搜索”,不参与文件解析:点击可回到其最近一次应用的文本,再次粘贴可替换,关闭即可清除。由于浏览器无法搜索任意本地 PATH 目录,网页版查看器会从资源库解析引入的文件与包。
网页版查看器是一个静态网页,内部运行编译为 WebAssembly 的 RNL 核心。它可以打开电脑上的文件或整个文件夹,也可以打开网上的网表;直接将文件拖放至页面上也能打开。
试试这些示例
这些示例来自 RNL 的一致性测试语料库,随网页版查看器一并发布。点击任一示例即可在查看器中打开。
- 04层级结构两级缓冲器:每个子电路各有一张原理图,在上一层绘制为方块符号,并引入了一个文件。
- 15中文写法使用中文代称包 rnl-zh 编写的五管 OTA,原理图上的标签亦为中文。
- 17线型各种几何图形上的每一种线型:在矩形、圆、椭圆、圆弧、曲线以及导线上绘制虚线、点线、粗线与双线。
你的文件只留在浏览器中
从电脑打开的文件仅在页面内读取,绝不会上传至任何地方:本网站仅由静态文件组成,没有任何接收文件的服务器。
从网址(URL)打开
File › Open URL(文件 › 打开 URL)可从其他网站服务器读取网表及其引入的文件。该服务器必须允许跨源资源共享(CORS),例如 GitHub 的 raw 文件链接。
支持的浏览器
Chrome 与 Edge 109 及更高版本、Safari 16 及更高版本,以及 Firefox 114 及更高版本(最早支持 module Worker 的版本)。
如上文所述,网页版查看器同样可以编辑文本,并在应用修改后重新绘制原理图。由于网页无法覆盖本地文件,File › Download File(文件 › 下载文件,Ctrl+S)会以 UTF-8 编码并保留原换行格式下载当前显示的文件。仅桌面版查看器提供求解功能;网页版查看器没有“求解”菜单。
查看器网址可直接指定要打开的网表,方便分享链接:viewer/?url=https://raw.githubusercontent.com/…/04-hierarchy.sp 会打开 GitHub 上的网表及其引入的文件。
嵌入其他网页
在 iframe 中使用 viewer/?embed=1 即可显示仅含画布的交互式查看器,并通过 postMessage 切换网表、层级与背景而无需重新加载。请参阅嵌入接口与示例,或打开演示页。
此处的网页版查看器按 main 分支的最新提交构建而成;Help › About RNL Viewer(帮助 › 关于 RNL Viewer)会显示其版本号与提交,Help › Desktop Viewer(帮助 › 桌面版查看器)则会回到本页。
03 · 桌面版查看器
适用于 Windows、Linux 与 macOS 的桌面版查看器
桌面版 RNL Viewer 按路径直接读写磁盘上的文件:无论网表引入的文件位于何处均能找到,按 F5 可重新读取已修改的文件,编辑后的文本在保存时直接写回原处,而 File › Save As(文件 › 另存为)则可将网表另存为新文件。其界面与网页版查看器相同,并额外提供用于自动布局的“求解”菜单。
桌面版资源库在“文件”与“内置”之间按顺序显示各个 PATH 目录组(默认折叠),并提供添加、移动与移除控件。展开组可查看直接位于该目录下、或位于其下一层版本号子目录中的 .rnl 文件;打开某一行也会将其加入“文件”组。打开资源库时以及修改 PATH 后会重新扫描目录。所有设置(包括求解器、显示与 PATH)均保存在 Tauri 应用配置目录下的 settings.json 中;首次启动时会迁移原有的网页视图设置,settings.json 的确切路径显示于资源库底部。引入的文件会优先按相对路径解析;纯文件名则依次回退到资源库与 PATH,并给出提示,指明实际解析到的文件。包会在资源库、PATH 与内置包中搜索,取第一个符合所请求版本的结果。每个目录会先检查 name.rnl 与 version/name.rnl,再扫描其他 .rnl 文件的 PACKAGE 头,因此文件名不必与包名一致。用户自己的 rnl-std 可覆盖随附的版本。
-
安装程序
RNL-Viewer-0.5.3-windows-x64-setup.exe为当前用户安装;适合绝大多数用户。
-
MSI 安装包
RNL-Viewer-0.5.3-windows-x64.msiWindows Installer 安装包,适合系统管理员部署。
-
免安装便携版
RNL-Viewer-0.5.3-windows-x64.exe单个可执行文件,无需安装即可直接运行。
-
校验和
SHA256SUMS.txt上方各文件的 SHA-256 散列值;可在 PowerShell 中用
Get-FileHash FILE计算并比对。
-
AppImage
RNL-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。
打开对应芯片的 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 校验下载文件。
-
Windows 便携版
RNL-Viewer-0.5.3-with-packages-windows-x64.zip单个 Windows 可执行文件,旁边带一个 public-packages 文件夹,打成 zip:解压后运行该文件。
-
AppImage(含公开包)
RNL-Viewer-0.5.3-with-packages-linux-x86_64.AppImage与上面相同的 AppImage,公开包在其中;同样先赋予可执行权限再运行。
-
公开包的 Debian 安装包
RNL-Viewer-0.5.3-linux-public-packages.deb与上面查看器的 Debian 安装包配套,查看器会在 /usr/share/rnl-viewer 中查找。请在下载目录运行
sudo apt install ./RNL-Viewer-0.5.3-linux-public-packages.deb。 - Apple 芯片(含公开包)
RNL-Viewer-0.5.3-with-packages-macos-arm64.dmg - Intel(含公开包)
RNL-Viewer-0.5.3-with-packages-macos-x86_64.dmg
上面的安装程序在安装时可以选择是否带上公开包: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 相同的求解器,为未指定位置的对象排出坐标。结果仅显示于窗口中,原始文件保持不变。
求解预览
Solve › Solve(求解 › 求解,F9)会对网表及其引入的文件中已应用的文本执行求解,方式与 rnl solve 相同。求解在后台运行,窗口仍可正常使用,状态栏会显示正在求解的层级并提供“取消”按钮。图面上方的提示栏会标明这是预览,磁盘上的文件并未改动;侧边栏的“求解”视图会显示求解器的报告,点击任一项即可跳至网表中的对应行。Solve › Close Preview(求解 › 关闭预览)可回到文件原本的内容。
保存求解副本
Solve › Save Solved Copy As(求解 › 求解副本另存为,Ctrl+Shift+S)可将求解结果另存至你指定的位置:若网表未引入其他文件,会存为单个文件(默认文件名为 NAME-solved.EXT);否则会存为一个文件夹,内含求解后的文件及其他读取的文件,与 rnl solve -o DIR 的输出方式相同。若所选位置会覆盖任何已读取的原始文件,查看器会拒绝保存。
求解器设置
Solve › Settings(求解 › 设置)用于配置求解器选项:各层级的时间上限、容差、网格、束宽、搜索与布线器的工作量,以及用于给布局排序的优化目标(启用哪些目标、排序先后,以及同一档内各目标的权重)。约束优先级(low、normal、high)写在网表中,不在此处设置。“恢复默认值”会将所有选项重置为默认值,设置在每次启动之间保留。
04 · 命令行
下载、解压、直接运行
使用 rnl 检查网表、绘制 SVG 与求解布局。无需安装 Rust;Windows 版本亦无需额外安装 VC++ 运行库。命令行工具与 npm 包共用核心版本号,独立于查看器与语言标准之外。
- Windows x64
.zip · MSVC解压后运行
.\rnl.exe --version。 - Linux x86_64
.tar.gz · musl静态链接可执行文件。解压后运行
./rnl --version。 - macOS · Apple Silicon
.tar.gz · arm64适用于搭载 Apple Silicon 芯片的 Mac。
- macOS · Intel
.tar.gz · x86_64适用于搭载 Intel 处理器的 Mac。
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 包绘制。
- Linux x86-64
.tar.gz从发布页下载并解压至运行 Virtuoso 的主机上;需配合该主机上 Cadence 自带的导出程序及其许可使用。
- 安装与使用
README安装步骤、菜单操作与各项选项均详列于其 README 中。
- RISCA reconfigurable ADC
gallery一个从 Virtuoso 实际导出的 RNL 案例
06 · 工具链
RNL 工具链:读取、求解、绘图、编辑
工具链将“读懂 RNL”与“将意图转换为坐标”拆分为独立模块:无需求解器即可查看原理图,仅在需要时才执行求解。目前已完成的部分包含:运行库、宿主适配器、渲染器与命令行、上述两款查看器,以及内置于 rnl solve 与桌面版查看器中的第一版求解器。选择上方路径可查看数据流向;点击任一模块可查看其职责。
07 · 许可证
开源,可自由使用
查看器与整个 RNL 工具链的源码均在 GitHub 上公开。
MIT
查看器代码按 MIT 许可证发布:只要保留版权声明,即可自由使用、修改与分发。
OFL-1.1
原理图中的文字使用 Noto Sans SC 进行排版与绘制(版权所有 2014-2021 Adobe,按 SIL Open Font License 1.1 发布)。核心内置字体度量数据,桌面版查看器内置字体文件,网页版查看器则按需动态加载(参见决策 0009)。