
KiPIDA仿真
KiPIDA仿真
OSHWHub6KiPIDA 桥接插件
将 KiPIDA PDN IR Drop 分析工具桥接到嘉立创EDA专业版的扩展插件。
项目地址: https://github.com/easyeda/eext-kipida-integration
English Version: README_EN.md
什么是 PDN 仿真?
术语说明
| 缩略词 | 全称 | 含义 |
|---|---|---|
| PDN | Power Distribution Network | 电源分配网络——PCB 上从电源到芯片的整条供电路径,包括电源平面、走线、过孔、去耦电容等 |
| IR Drop | Voltage Drop (I×R) | 电流(I)流过导体电阻(R)产生的电压降落 |
为什么需要 PDN 仿真?
在 PCB 设计中,电源从 VRM(稳压模块)到达芯片引脚的过程中,会经过铜箔走线、过孔、焊盘等导体。这些导体虽然电阻很小,但当负载电流较大时,累积的压降(IR Drop)可能导致芯片实际供电电压低于最低工作电压,引发逻辑错误、时序违规甚至芯片无法启动。
PDN 仿真通过对 PCB 铜箔进行网格化建模,计算每个节点的电压分布,帮助设计者在制板前发现:
- 供电不足区域:哪些芯片引脚的实际电压低于容限
- 电流瓶颈:走线过窄或过孔数量不足导致的局部高电流密度
- 布局优化方向:去耦电容放置位置、铜箔加宽区域等改进建议
本插件将 KiPIDA 的 PDN IR Drop 求解能力集成到嘉立创EDA中,让用户无需导出文件到第三方工具,即可在 PCB 编辑器内完成仿真并直观查看结果。
功能概述
- 从 EasyEDA 提取 PCB 走线、过孔、焊盘数据
- 在配置面板中选择电源网络、指定电压源与电流负载
- 调用本地 KiPIDA 求解器进行 IR Drop 分析
- 以 3D 热力图 + 各层 2D 热力图的形式展示分析结果
工作流程
1. 配置分析参数
打开 PCB 文件后,点击菜单 PDN 分析 → 运行 IR Drop 分析,弹出配置面板:

- 左侧自动检测 PCB 中的电源网络,点击选中目标网络
- 右侧为该网络添加 SOURCE(电压源器件)和 LOAD(负载器件)
- 设置额定电压、各负载电流值
- 调整底部的 Mesh Resolution(网格精度,越小越精确但越慢)
2. 查看分析结果
点击 Run Simulation 后,结果窗口自动弹出:

- 顶部文字摘要:每个 Rail 的电压范围和 IR Drop 值
- 标签页切换:3D View(全局三维热力图)+ 各铜层 2D 热力图
- 颜色映射:黄色 = 高电压,紫色 = 低电压(viridis 色阶)
- 分析图像同时保存到
kipida-service/output/目录
安装与配置
本插件通过嘉立创EDA扩展商店发布,用户可直接安装
.eext插件文件。但插件运行依赖本地 Python 服务,需要从 GitHub 仓库 下载kipida-service文件夹并配置。
前置依赖
| 依赖 | 说明 |
|---|---|
| 嘉立创EDA专业版 ≥ 2.3.0 | 插件运行环境 |
| Python 3.10+ | 运行 kipida-service |
1. 安装 EasyEDA 插件
在嘉立创EDA专业版中:高级 → 扩展管理器 → 导入扩展,选择 build/dist/kipida-bridge_v1.0.0.eext。
也可通过嘉立创EDA扩展商店直接搜索安装。
2. 获取 kipida-service
从 GitHub 仓库下载 kipida-service 文件夹:
git clone https://github.com/easyeda/eext-kipida-integration.git
仅需其中的 kipida-service/ 目录。
3. 启动 Python 服务
双击 kipida-service/start.bat 即可。脚本会自动完成以下操作:
- 从 GitHub 下载 KiPIDA 核心算法文件(
mesh.py、solver.py) - 安装 Python 依赖(fastapi、numpy、scipy 等)
- 启动服务(默认端口 5000)
如需手动启动:
cd kipida-service
pip install -r requirements.txt
python -m uvicorn main:app --reload --port 5000
服务启动后访问 http://localhost:5000/docs 可查看 API 文档。
项目结构
eext-kipida-integration/
├── src/ # TypeScript 插件源码
│ ├── index.ts # 主入口,菜单注册
│ ├── extract.ts # PCB 数据提取
│ ├── convert.ts # EasyEDA → KiPIDA 格式转换
│ ├── api.ts # HTTP 客户端
│ ├── display.ts # 结果展示
│ └── types.ts # 类型定义
├── ui/
│ ├── config.html # 配置面板
│ └── results.html # 结果展示面板
├── kipida-service/
│ ├── main.py # FastAPI 服务(调用 KiPIDA 求解器)
│ ├── start.bat # 一键启动脚本
│ └── requirements.txt
├── build/dist/ # 编译产物(.eext 文件)
└── extension.json # 插件配置
开发构建
npm install
npm run build
构建产物输出到 build/dist/kipida-bridge_v1.0.0.eext。
注意事项
- KiPIDA 核心算法(
mesh.py、solver.py)来自 kbralten/KiPIDA,首次运行脚本时自动下载 - 可通过环境变量
KIPIDA_PATH自定义 KiPIDA 路径,start.bat默认使用kipida-service/KiPIDA/ - Python 服务必须在运行分析前启动,默认端口 5000
- 服务地址可在插件菜单 PDN 分析 → 配置服务地址 中修改
mesh_resolution越小精度越高,但分析时间显著增加(推荐 0.2~0.5mm)
更新 KiPIDA
删除 kipida-service/KiPIDA/ 下的 mesh.py 和 solver.py,重新运行 start.bat 即可自动下载最新版本。也可手动从原项目下载覆盖:
Changelog
v1.1.0 (2026-04-24)
新增
- 结果展示面板新增各铜层 2D 热力图,含只有过孔的层也会生成对应图像
- 过孔热力点出现在所有层,焊盘热力点只出现在自己所属的层
- 层标签页名称改为从 PCB 实际层名读取(如"地1"、"电源"),不再使用硬编码的 Inner N
修复
- 修复过孔节点未连接到走线网络导致热力图缺失过孔信息的问题
- 修复焊盘节点 layer 信息未传递导致焊盘不显示在对应层的问题
- 修复结果 iframe 中
resultData重复声明导致面板无法显示的问题
优化
- 移除调试输出,日志改为
[KiPIDA]前缀的正式格式
v1.0.0 (2026-04-23)
新增
- PCB 数据提取:从嘉立创EDA提取走线、过孔、器件焊盘(含位号和器件名)
- 配置面板:自动检测电源网络,支持按器件选择 Source/Load,搜索筛选,字母排序
- 支持手动添加未自动识别的网络(从全部网络列表中选择)
- KiPIDA Solver 集成:调用
solver.py+mesh.py进行真实稀疏矩阵 IR Drop 求解 - Mesh Resolution 插值:按用户设定精度对走线进行节点插值,提升热力图密度
- 结果展示面板:文字摘要 + 3D 热力图 + 各铜层 2D 热力图(viridis 色阶)
- 分析图像自动保存到
kipida-service/output/目录 - 服务地址配置:菜单入口支持运行时修改 host:port
- 连通分量分析:自动过滤孤立子图,避免矩阵奇异导致求解失败

类型
关键词
扩展信息
| 版本 | v1.1.0 |
| 发布者 | EasyEDA |
| 发布时间 | 2026-07-03 18:02:43 |
| 名称 | kipida-integration |
| UUID | a1i8t4u1l2a6t3i7o9n1f3i6l8e0p4u9 |
| 适用EDA版本: | ^3.2.0 |
| 报告 | 报告滥用 |
评论