P3 DevicePack v1、L1~L6 能力边界和器件包制作方法见 DevicePack 格式文档。仓库中的三个器件包是 CC0 虚构测试数据,不对应任何真实厂商芯片。
当前版本:
0.3.0 Alpha。仍建议为重要设计保留版本控制或外部备份。
- 版本化、厂商无关的 DevicePack;经 Rust 安全验证、内容哈希去重后嵌入工程。
- 动态器件库与多单元分组符号,支持小型器件和大型 BGA。
- ERC 覆盖必接/电源引脚、输出冲突、电压域、差分对和显式 No Connect。
- L1/L2 数据基础、受限内嵌 SPICE L3,以及 IBIS/S 参数和 SDK Adapter 的 L4/L5 元数据接口。
- 厂商无关配置可通过可视化编辑器或 JSON/受限 DTS 导入绑定到逻辑器件,规范化后随 schema v4 工程保存;支持 Rust 实时规则检查、画布定位、撤销和确定性导出。
- 未使用的器件包可从工程安全移除;仍被实例引用时拒绝,操作支持撤销。
- 三个 CC0 虚构测试包:模拟器件、带 PinMux 的 MCU、144 球多电源域 SoC。
- 可视化 DevicePack L1/L2/L5 制作基础、Rust 权威导出和 Ed25519 分离签名验证;未知公钥不会被标记为可信厂商。
- 高级制作支持多单元符号、差分对、SPICE 完整端口绑定、IBIS/S 参数元数据和资料来源;发布密钥可在验证后显式加入或撤销本地信任库。
- 工程支持多张原理图页签,新建、切换、重命名和删除均由 Rust 工作区命令管理并随工程保存。
- 全局标签可显式连接跨页网络;层次端口会同步为父图纸实例引脚,并提供跨页连接导航。
- 结构化向量总线支持
NAME[msb:lsb]、逐成员引出、拐点编辑、移动吸附和复制粘贴;总线几何不会与普通导线隐式短接。 - 电阻、电容、电感、电压源、电流源、接地与网络标签。
- 网格吸附、缩放、平移、框选、旋转、删除和正交布线。
- 导线交点与 T 型连接节点、拐点增删、端点重接和线段整形。
- 元件移动时自动拉伸已连接导线。
- 元件与导线复制、粘贴、快速复制及方向键微调。
- 悬空引脚、断线、未连接标签直接在画布标红。
- 导入并随项目嵌入二极管、BJT、MOSFET 和子电路 SPICE 模型。
- Operating Point、Transient、DC Sweep 与 AC Sweep。
- 运行前检查接地、引脚、网络标签、探针和分析参数。
- 检查错误可点击,并自动定位到画布中的对应元件。
- 从已有网络选择电压/电流探针,无需手写表达式。
- 多套仿真配置可新增、切换、重命名和删除。
- 明确区分网表生成成功与 ngspice 计算成功。
- 波形双游标、差值、频率、最大值/最小值、相位和 CSV 导出。
- 编辑后防抖自动保存恢复副本;异常退出后启动时可恢复或放弃。
- 新建、打开和关闭时统一处理未保存修改:保存并继续、放弃或取消。
- 最近项目列表会标记已移动/删除的文件,并可直接清理失效记录。
.sugeda使用带版本号的可读 JSON;正式保存和恢复数据均采用临时文件原子替换。- 3,000 元件大型原理图性能回归测试与视口空间索引。
- 基于
tauri-driver的真实桌面自动化,覆盖启动、编辑、Rust 自动保存和未保存拦截。
- Node.js 22+
- Rust stable
- Tauri 2 平台依赖
- 从源码构建 ngspice 时还需要 C/C++ 编译器、
bash、make、curl和tar
npm install
npm run tauri dev只查看界面可以运行:
npm run dev浏览器预览使用内存项目,不提供文件读写与真实 ngspice 仿真;桌面应用始终以 Rust 工作区为数据源。
macOS/Linux 可以从校验过的 ngspice 47 源码构建无界面版本:
npm run build:ngspice
npm run tauri buildWindows 构建使用受信任的自包含 payload:
npm run prepare:ngspice -- /absolute/path/to/ngspice-payload
npm run tauri build开发时也可以指定本地引擎:
export SUGAREDA_NGSPICE_PATH="/absolute/path/to/ngspice"
npm run tauri dev解析顺序为:界面指定路径 → SUGAREDA_NGSPICE_PATH → 应用内置引擎 → 系统 PATH。
| 操作 | 快捷键 |
|---|---|
| 新建 / 打开 / 保存 | Cmd/Ctrl+N / O / S |
| 撤销 / 重做 | Cmd/Ctrl+Z / Shift+Cmd/Ctrl+Z |
| 复制 / 粘贴 / 快速复制 | Cmd/Ctrl+C / V / D |
| 微调选择 | 方向键;按住 Shift 按网格移动 |
| 删除选择或选中拐点 | Delete / Backspace |
| 导线切换 L 型方向 | 绘制或选中导线时按 Tab |
| 增加导线拐点 | 双击导线 |
| 仿真检查 | Shift+F4 |
| 运行 / 停止仿真 | F5 / Shift+F5 |
正式项目保存到用户选择的 .sugeda 文件。编辑过程中,桌面端在最后一次变更约 900 ms 后写入独立恢复副本;成功正式保存、新建或打开其他项目后会清除旧恢复副本。若进程异常中止,下一次启动会显示恢复内容、来源路径、保存时间和元件/导线数量。
恢复副本和最近项目索引位于操作系统为 com.simonf.sugareda 分配的应用数据目录,不会覆盖正式项目文件。
日常完整检查:
npm run format
npm run typecheck
npm run lint
npm test
npm run build
cargo fmt --manifest-path src-tauri/Cargo.toml --check
cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets -- -D warnings
cargo test --manifest-path src-tauri/Cargo.toml单独运行大型原理图性能门槛:
npm run test:performance真实桌面自动化使用编译后的 Tauri 应用和系统 WebView:
cargo install tauri-driver --locked
npm run test:desktop原生 tauri-driver 支持 Linux/Windows;仓库中的 Quality 工作流在 Linux + Xvfb 下实际执行。macOS 本地运行会明确跳过该脚本,因为系统 WKWebView 没有可供原生驱动使用的 WebDriver。
src/ React 工作台、Canvas 原理图和波形界面
src-tauri/src/application.rs Rust 编辑命令、Undo/Redo 与工作区状态
src-tauri/src/project.rs 项目校验和原子保存
src-tauri/src/schematic_sheet.rs 图纸生命周期、选择和持久化约束
src-tauri/src/hierarchy.rs 跨页网络、端口同步、循环检查和层次网表展开
src-tauri/src/board_config/ 板级配置来源、验证、持久化和项目级检查
src-tauri/src/device_pack_authoring/ 器件包草稿校验和原子导出
src-tauri/src/device_pack_signature/ Ed25519 分离签名验证
src-tauri/src/device_pack_model_import/ 受限 SPICE 模型读取与检查
src-tauri/src/adapter_contract/ 无执行的授权 Adapter v1 数据契约
src-tauri/src/device_config/ 厂商无关配置 IR 与语义规则
src-tauri/src/device_tree_adapter/ 受限 DTS 子集解析与 IR 转换
src-tauri/src/reliability.rs 自动恢复与最近项目
src-tauri/src/netlist.rs 电气检查和确定性 SPICE 网表
src-tauri/src/simulation.rs ngspice 进程、取消和结果解析
test/ 单元、几何、波形与大型图性能测试
scripts/desktop-smoke.mjs 真实桌面 WebDriver 冒烟测试
- 工程支持显式全局网络和单实例层次图纸;ERC 覆盖展开后的全工程拓扑,SPICE 从当前图纸展开可达的全局网络与子图。可复用多实例层次模块、总线和参数化图纸尚未实现。
- L5 提供 Rust 权威实时校验、可视化 PinMux/启动/电压配置和确定性 JSON/独立 DTS 子集导出;不解析通用 DTS、厂商 SDK 或 Device Tree include。
- Adapter Contract v1 仅验证清单和数据 DTO,明确不执行进程、动态库或脚本;签名有效也不等于发布者身份受信任。
- 本地发布者信任是用户对具体 Ed25519 公钥指纹的显式认可,不是公共证书背书;当前不联网检查吊销状态。
- 波形数据仍通过 Tauri JSON 命令边界传输;后续可替换为通道或二进制结果文件。
- Windows/macOS 已配置桌面打包;Linux 主要用于自动化测试,发布包仍需单独验证。
- 外部
.include、依赖型或加密厂商模型、IBIS/S 参数求解和自动下载尚未实现;自包含 SPICE 文件可在制作工作台中经 Rust 检查后显式映射并内嵌。
English summary: SugarEDA is an open-source Tauri 2 schematic capture and SPICE simulation workbench. It includes tabbed multi-sheet projects, project-wide ERC, active-sheet SPICE simulation, structured electrical preflight checks, atomic project files, crash recovery, large-sheet performance coverage, and real desktop WebDriver smoke tests.