• 首页
  • 使用指南
    上传指南安装指南
  • API文档
    开发指南API调用API参考
  • 相关网站
    嘉立创EDA嘉立创社区开源广场
  • 编辑器
    在线编辑器(专业版)桌面客户端
  • 扩展管理
  • 登录注册
嘉立创产业服务站群

电子产业

logo

嘉立创PCB

PCB、FPC制造服务

logo

嘉立创SMT

一站式PCBA服务平台

logo

嘉立创激光钢网治具

激光钢网&治具制造

logo

嘉立创EDA

国产PCB设计工具

机械产业

logo

嘉立创FA

机械/电气零部件一站式商城

logo

嘉立创3D打印

树脂、尼龙、金属3D打印服务

logo

嘉立创CNC机械智造

机加件一件起订,3天交货

更多服务

嘉立创CAM

国产线路板CAM软件

Forface 3D

SaaS化3D技术服务平台

硬创社

好玩的硬件交流社区

供应商合作

一站式阳光采购平台

· EDA扩展广场
首页

使用指南

上传指南安装指南

API文档

开发指南API调用API参考

相关网站

嘉立创EDA嘉立创社区开源广场

编辑器

在线编辑器(专业版)桌面客户端
登录注册

SimulIDE仿真引擎

OSHWHub22v1.8.1
(0)Simulide License (Modified BSD)
SimulIDE仿真引擎,安装后可以在SimulIDE仿真图页中进行动态仿真
详情
更改日志
历史版本
评论

SimulIDE仿真引擎

OSHWHub22
(0)Simulide License (Modified BSD)
详情
更改日志
历史版本
评论

eext-simulation-with-simulide

English

基于 SimulIDE 引擎的 WebAssembly 电路仿真工具,为 EasyEDA 专业版(嘉立创EDA专业版)提供强大的浏览器端电路仿真能力。

本项目是一个 EasyEDA 扩展插件,将 SimulIDE 的 C++ 仿真引擎编译为 WebAssembly,实现了在浏览器中进行实时电路仿真的功能。

✨ 特性

  • WebAssembly 编译 - 基于 Emscripten 将 C++ 仿真引擎编译为 WASM,在浏览器中高效运行

  • 实时仿真 - 事件驱动的仿真引擎,支持实时交互和动态元件属性更新

  • 丰富的元件库 - 支持 BJT、MOSFET、二极管、电阻、电感、逻辑门、微控制器等多种电路元件

  • EasyEDA 扩展 - 以扩展插件形式集成,通过标准 API 与 EasyEDA 平台通信

  • 数据可视化 - JSON 格式的仿真数据输出,实时推送到 EasyEDA 界面

  • 高性能 - C++20 编写,O3 优化,提供原生级别的计算性能

  • 跨平台 - 支持 Windows、Linux、macOS 构建和部署

  • 可扩展 - 基于事件驱动的插件架构,易于扩展和维护

扩展插件工作原理

  LCEDA 专业版平台

   - 扩展管理器

     - simulation-with-simulide 扩展插件

       - TypeScript 扩展代码(src/index.ts)

       - 事件监听器注册

       - 仿真控制逻辑

       - 数据推送处理

    - webAssembly 模块(WASM)

      - c++引擎

      - 电路模拟计算

      - 元件状态管理 

功能演示

演示图

📦 前置要求

必需工具

工具版本要求用途获取链接
CMake3.15+构建配置cmake.org
Emscripten最新版WASM 编译emscripten.org
GCC15.1.0+C++ 编译(本地构建)MSYS2
Python3.x运行测试服务器python.org

环境配置

Windows 用户 (推荐使用 MSYS2):


# 安装 MSYS2 后,在 MSYS2 终端中执行

pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake

安装 Emscripten:


# 克隆 emsdk

git clone https://github.com/emscripten-core/emsdk.git

cd emsdk

# 安装最新版本

./emsdk install latest

./emsdk activate latest

# 配置环境变量(每次使用前需要执行)

source ./emsdk_env.sh  # Linux/macOS

# 或

emsdk_env.bat          # Windows

🛠️ 构建步骤

1. 配置 EMSDK 路径

编辑构建脚本,设置 Emscripten SDK 路径:

Linux/macOS:


# 编辑 build-wasm.sh

export EMSDK="/path/to/your/emsdk"

Windows:


# 编辑 build-wasm.bat

set EMSDK=F:\Program Files (x86)\emsdk\emsdk

或者在脚本中会自动检测常见位置,如果检测失败,请手动设置环境变量。

2. 执行构建

使用构建脚本(推荐):


# Linux/macOS

chmod +x build-wasm.sh

./build-wasm.sh

# Windows (MSYS2/Git Bash)

bash build-wasm.sh

# Windows (CMD)

build-wasm.bat

清理并重新构建:


./build-wasm.sh clean

3. 构建输出

构建成功后,在 ouput/ 目录下会生成以下文件:

  • lceda-pro-sim-server.js - WASM 模块的 JavaScript 接口

  • lceda-pro-sim-server.wasm - WebAssembly 二进制文件

注:需要打包WASM文件制作插件的话,需要将这两个文件转移到根目录的wasm文件夹中进行插件生成。

手动构建(高级用户)


# 激活 Emscripten 环境

source /path/to/emsdk/emsdk_env.sh

Windows(cmd) 使用emsdk_env.bat

# 创建构建目录

mkdir -p build-wasm

cd build-wasm

# 配置 CMake

emcmake cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release

# 编译(使用多核加速)

make -j$(nproc)

TypeScript 扩展构建

在完成 WASM 构建后,构建 TypeScript 扩展代码:


# 1. 安装依赖

npm install

# 3. 完整构建(编译 + 打包扩展)

npm run build

构建输出:

  • dist/index.js - 编译后的扩展代码

  • simulation-with-simulide_v1.0.0.eext - 可安装的扩展包

📦 扩展打包

扩展打包为 .eext 文件,可通过 LCEDA菜单选项中的高级选项 => 扩展管理器安装。

🛠️ 构建步骤

本项目分为两个独立的构建流程:

  1. WASM 构建 - 将 C++ 仿真引擎编译为 WebAssembly

  2. 扩展构建 - 编译 TypeScript 并打包为 .eext 扩展包

🚀 快速开始

在 EasyEDA 中使用扩展

  1. 构建扩展包

   ```bash

   npm install

   npm run build

   ```

   生成 simulation-with-simulide_v1.0.0.eext 文件

  1. 在 EasyEDA 中安装

   - 打开 EasyEDA 专业版

   - 进入扩展管理器

   - 点击 "安装扩展"

   - 选择生成的 .eext 文件

   - 重启 EasyEDA

  1. 使用扩展

 - 在eda中新建仿真原理图

 - 即可使用

本地开发测试

1. 启动本地测试服务器

构建完成后,使用 Python 服务器进行测试:


# 方式一:使用 start-server 脚本(Windows)

start-server.bat

# 方式二:使用 Python 直接运行

python serve.py

# 方式三:使用 Python 3(Linux/macOS)

python3 serve.py

服务器将在 http://localhost:8080 启动。

2. 在浏览器中测试

打开浏览器访问:


http://localhost:8080/test.html


3. 测试电路仿真

在测试页面中:

  1. 加载电路文件

   - 点击上传区域选择电路文件(支持 .cir, .txt, .net 等格式)

   - 或拖拽文件到上传区域

  1. 加载电路

   - 点击 "Load Circuit" 按钮加载电路到仿真引擎

  1. 启动仿真

   - 点击 "Start Simulation" 开始仿真

   - 实时查看仿真状态、时间和帧率

  1. 停止仿真

   - 点击 "Stop Simulation" 停止仿真

📜 开源协议

本项目采用双许可证模式:

  1. 原始 Simulide 代码  

   - 版权归 Santiago González 所有

   - 采用 GNU Affero General Public License v3.0 (AGPLv3) 协议

   - 参见 copyright.txt

  1. 修改和新增代码  

   - 版权归 EasyEDA & JLC Technology Group 所有

   - 采用 GNU General Public License v3.0 (GPLv3) 协议

使用要求

  • 任何修改后的版本必须同样采用 AGPLv3 + GPLv3 双协议开源

  • 如果作为网络服务提供,必须提供源代码(根据 AGPLv3 要求)

  • 必须保留所有原始版权声明和许可声明

完整协议内容请查看 LICENSE 文件。

🙏 致谢

  • SimulIDE 项目 (simulide.com) - 感谢提供优秀的电路仿真引擎

  • Emscripten 团队 - 让 C++ 代码能够在浏览器中运行

  • 所有项目贡献者和开源社区的支持

📚 相关资源

  • SimulIDE 官方网站

  • WebAssembly 官方文档

  • Emscripten 文档

CHANGELOG

eext-simulation-with-simulide —— 基于 SimulIDE 的 WebAssembly 电路仿真引擎,为嘉立创EDA专业版 / EasyEDA 提供浏览器端实时电路仿真能力(C++20 编写,经 Emscripten 编译为 WASM,以扩展插件形式集成)。

1.8.1

  • 修复多运放交叉耦合电路(如双运放 + BJT 恒流源)仿真报 NonLinear Not Converging 的问题。
  • 修复加载部分含子电路的电路(如 74XX69、74HC40103 等)时仿真直接崩溃的问题。
  • 修复芯片文件查找失败时仿真直接停止的问题。
  • 修复数值单位解析不一致导致器件引脚数错误、数字电路仿真结果不正确的问题。
  • 新增函数发生器(Function)与存储器(Memory)器件支持(用于特定芯片)。
  • 提升运放、稳压器等元件的仿真收敛性与稳定性。
  • 修复含子电路的数字 IC(如 74HC283、74XX82)加载时报 null startPin/null endPin in Connector、内部逻辑悬空的问题。
  • 修复运放在高增益负反馈闭环电路中仿真报 NonLinear Not Converging 的问题。
暂无数据
暂无数据

评论

在登录或注册后才可以进行评论操作
全部评论(1)
按时间排序|按热度排序

类型

Schematic

关键词

Simulation

扩展信息

版本v1.8.1
发布者

EasyEDA

发布时间2026-08-21 15:56:06
名称

simulation-with-simulide

UUID

da6f02cde1cd4384abe56140588973b1

适用EDA版本:^3.3.0
报告

报告滥用

相关链接

主页:https://github.com/easyeda
反馈:https://github.com/easyeda/eext-simulation-with-simulide/issues
仓库:https://github.com/easyeda/eext-simulation-with-simulide
logo

政策条款

服务条款隐私政策项目授权许可协议作出贡献感谢名单

软件版本

专业版标准版教育版私有化部署版

解决方案

专业版编辑器标准版编辑器桌面客户端API接口文档格式

使用帮助

用户论坛专业版教程标准版教程专业版更新标准版更新

关于我们

团队介绍相关报道关于公司联系我们合作联系
EDA公众号
EDA公众号
开源公众号
开源公众号
开源硬件交流群
开源硬件交流群
版权所有 - 深圳创电优选科技有限公司 粤ICP备2026007863号粤公网安备44030402002736号增值电信业务经营许可证粤B2-20201198ISO/IEC隐私政策用户协议