Open-source AI Assistant for Sentaurus TCAD
当前版本:v0.1.0 · Linux 原生桌面应用 · Apache-2.0
Ember 意为余火。EmberTCAD 希望做的,就是把 AI 在 TCAD 工作流里点燃的那一点火星,变成真正能够落到工程中的工具。
EmberTCAD 是一款面向 Synopsys Sentaurus TCAD / Sentaurus Workbench(SWB) 的免费开源 AI 助手。它读取 SWB 工程,理解 Tool 链、源文件、参数、节点状态和已有结果;结合当前 Sentaurus 版本的本地 Manual / Tutorial 生成方案;经用户确认后,再修改参数或代码、运行节点、检查结果并保存报告。
除了接手已有工程,它也支持从自然语言需求和参考文献出发,规划并创建新的 TCAD 工程。
EmberTCAD 不是新的 TCAD 求解器,也不把模型生成的代码直接当作正确答案。它提供的是一条面向真实工程的、可观察、可审查、可停止、可追溯的 AI 工作链。
一个真实 TCAD 任务通常不仅是“写一段代码”,还包括工程读取、版本核对、手册检索、节点运行、日志诊断和结果验收。通用大模型能写代码,通用编码 Agent 也能操作电脑,但它们并不天然理解 SWB 的工程结构和验证规则。
| 使用方式 | 优点 | 主要缺口 |
|---|---|---|
| 复制代码并询问大模型 | 简单、直接,适合解释语法和局部修改 | 模型看不到完整工程、节点状态和真实运行结果 |
| 使用 Codex 等通用 Agent 操作 TCAD | 灵活,适合有经验的工程师完成复杂自动化 | 需要自行组织上下文、权限、步骤、验证和历史记录 |
| EmberTCAD | 将工程理解、版本证据、方案审批、SWB 联动和任务归档整合为固定流程 | 目前仍是 v0.1.0,需要用户审查模型方案和仿真结果 |
EmberTCAD 的重点不是替代 Codex,而是补上 AI 模型与真实 Sentaurus 工程之间的专业执行层。
模型负责分析与规划;本地程序负责安全写入、SWB 操作、状态检查和结果留档。
flowchart LR
U[用户] --> UI[GTK3 原生桌面界面]
UI --> P[工程解析器]
UI --> M[版本匹配的手册检索]
UI --> A[AI 规划器]
UI --> H[本地任务与报告库]
P --> S[安全执行与审批层]
M --> A
A --> S
S --> C[SWB Connector]
C --> W[Sentaurus Workbench]
W --> T[SDE / SDevice / SVisual / Inspect]
T --> H
- 工程与证据层:在本机读取项目、Tool 链、参数和结果,并检索当前版本的 Manual / Tutorial。
- AI 规划层:接入 DeepSeek、OpenAI、Claude、Gemini 及兼容接口,生成工程理解、方案和修订建议。
- 安全执行层:审批前不写入工程;执行时校验路径、文件指纹、目标工程与运行状态。
- SWB Connector:创建参数、刷新工程、提交节点、读取
.sta和结果产物,并支持停止运行。 - 本地任务库:保存阅读、方案、审批、运行、错误和 Markdown 报告。
选择已有 SWB 工程后,EmberTCAD 会先完成只读分析并生成工程报告。用户提出目标后,系统给出可调整、可审查的执行方案;只有获得批准,才会修改参数或源文件并运行真实节点。
用户只需描述器件和研究目标,也可以附加文本型 PDF。EmberTCAD 会询问缺失的物理条件,检索依据,生成工程蓝图、Tool 链与全部源文件,并在用户选择的目录中创建新工程。
检索当前 Sentaurus 版本对应的本地 Manual 和 Tutorial,返回手册、页码、示例路径与命中片段,帮助用户核对模型语法和参数依据。
按工程保存完整档案,包括工程阅读、方案版本、代码差异、运行过程、失败诊断和最终报告。每个 Project 只保留一条入口,也可以清空不再需要的记录。
模型配置明确区分服务地址、模型 ID、接口协议和推理强度。EmberTCAD 也会扫描本机的 Sentaurus 安装,并让工程读取、手册检索、节点运行和新开的 SWB 使用用户选择的版本。
| 从自然语言创建工程 | 检索本机手册与教程 |
|---|---|
![]() |
![]() |
- RHEL 兼容 Linux 图形桌面;当前主要测试 CentOS 7 与 Rocky Linux 8.10。
- 用户已经合法安装 Sentaurus TCAD / SWB,并可在当前账户下运行。
- Python、GTK3 / PyGObject 和基础系统工具;推荐先运行
install.sh --check,由脚本报告缺失项。 - 使用 Git 克隆仓库,或使用系统自带的
curl与tar下载发布源码包。 - 一个可用的大模型 API。Sentaurus 与大模型服务均不包含在本项目中。
先进行只读环境检查:
git clone --depth 1 https://github.com/dengjp905/EmberTCAD.git
cd EmberTCAD
bash ./linux/swb-companion/install.sh --checkRocky 等最小化安装没有预装 Git 时,可以直接下载公开版本源码包:
curl -fL https://github.com/dengjp905/EmberTCAD/archive/refs/tags/v0.1.0.tar.gz | tar -xz
cd EmberTCAD-0.1.0
bash ./linux/swb-companion/install.sh --check确认无误后安装并启动:
bash ./linux/swb-companion/install.sh
EmberTCAD安装发生在当前 Linux 用户目录,不会停止或修改已经运行的 SWB。小写命令 embertcad 同样可用。
自动探测不满足需要时,可以显式指定工作区和 Sentaurus 根目录:
bash ./linux/swb-companion/install.sh \
--project-root "$HOME/STDB" \
--sentaurus-root /usr/synopsys/sentaurus/O_2018.06-SP2| 平台 | 当前状态 |
|---|---|
| CentOS 7 + Sentaurus O-2018.06-SP2 | 已完成真实工程读取、模型规划、SWB 节点运行、停止和报告闭环验证 |
| Rocky Linux 8.10 + Sentaurus X-2025.06 | 已完成安装、GTK 界面、运行时发现、版本切换和本地手册检索验证 |
| AlmaLinux 8 | 提供安装和运行兼容路径,建议先运行 install.sh --check |
| Rocky Linux 9 / CentOS Stream 9 | 兼容目标,仍需在真实 Sentaurus 主机上继续验证 |
两条工作流遵循同一原则:先只读理解,再审查方案,获得批准后执行,最后以真实 SWB 节点和结果产物验收。
选择工程 → AI 理解 → 描述目标 → 审查方案 → 执行验证 → 完成
描述需求 → 依据与澄清 → 审查方案及文件 → 创建与验证 → 交付
创建工程时可以选择三种验证级别:
- 快速预检:检查路径、文件结构、宏、依赖关系和已知版本语法,不运行仿真。
- 标准验收:运行一条有代表性的最短依赖路径,作为默认选择。
- 完整验收:运行全部叶节点,适合小型工程或最终确认。
“源文件已生成”“静态预检通过”和“真实仿真验证通过”是三个不同状态。EmberTCAD 只有在读取到真实节点状态与结果产物后,才会报告相应的数值验证结果。
如果同一工程已经在 SWB 中打开,EmberTCAD 会刷新该窗口;如果 SWB 正在使用其他工程,则为新工程打开独立窗口,不替换或关闭用户当前的工作。
EmberTCAD 支持 DeepSeek、OpenAI、Claude、Gemini 和 OpenAI-compatible 服务。API Key 只用于账户认证,实际调用的模型由模型 ID 决定。
下面的演示从一个真实 NMOS SWB 工程开始。该工程使用 SDE 构建二维器件结构,通过 SDevice 计算 Id–Vg 曲线并提取阈值电压;P-well 掺杂浓度已经通过 con_pwell 参数引出。
用户选择目标 Project 后启动只读分析。EmberTCAD 依次清点文件与节点、读取 Tool 源文件,并调用已配置的模型理解工程。
| 实时显示工程阅读步骤 | 工程意图、Tool 链、参数和风险摘要 |
|---|---|
![]() |
![]() |
本例要求调整 con_pwell,使 NMOS 阈值电压进入 0.45–0.50 V。AI 先给出扫描范围、提取方法、固定条件、容差和执行步骤;参数可以修改,也可以要求 AI 重新规划。
| 描述目标 | 审查推荐方案 |
|---|---|
![]() |
![]() |
批准后,EmberTCAD 运行相应 SDE / SDevice 节点、提取阈值并评估结果。执行状态与新参数会同步出现在 SWB 中,用户可以随时观察或停止任务。
| EmberTCAD 中的执行与测量 | SWB 中同步生成的参数和节点 |
|---|---|
![]() |
![]() |
达到目标后,任务结束并保存每次迭代的参数、节点和测量结果。若任务需要修改 SDE、SDevice 或其他 Tool 源文件,方案审查阶段也会展示逐文件差异。
第二个演示根据自然语言需求和一篇硅像素探测器论文,规划包含 SDE、SDevice、SVisual 和 Inspect 的新工程。
参考文献:S. Zhang et al., Nuclear Instruments and Methods in Physics Research Section A, 1063, 169287 (2024), doi:10.1016/j.nima.2024.169287。
| 输入需求并附加 PDF | AI 集中询问缺失条件 |
|---|---|
![]() |
![]() |
用户回答后,AI 整理器件目标、物理模型、边界条件和预期结果。这个阶段只进行分析,不会写入工程。
| 生成工程方案 | 审查结构假设、Tool 链和目标目录 |
|---|---|
![]() |
![]() |
全部源文件会在写入前展示。用户可以检查 SDE 几何、参数、SDevice 物理模型和结果提取脚本,并选择验证级别。
| 审查生成文件 | 选择验证级别 |
|---|---|
![]() |
![]() |
正式创建前,EmberTCAD 再次显示目录、工程名、源文件数量、Tool 数量和验证方式。同名工程不会被直接覆盖。
| 最终创建确认 | 新工程在独立 SWB 窗口中打开 |
|---|---|
![]() |
![]() |
下面是生成工程的结构与掺杂分布示例。该结果用于检查几何区域、电极和掺杂设置,最终物理结论仍需结合网格、模型、边界条件和完整仿真判断。
| 检索当前版本的 Manual / Tutorial | 按工程查看完整任务档案 |
|---|---|
![]() |
![]() |
- 模型凭据保存在
~/.config/aitcad/model.json,文件权限仅限当前用户。 - 任务与报告保存在
~/.local/share/aitcad/research/;升级不会删除工程、历史、报告或设置。 - 执行 AI 阅读和规划时,用户需求、必要的工程摘要、相关源文件与检索证据会发送给用户配置的模型服务商;EmberTCAD 不会替用户选择或托管模型账户。
- 用户选择的 PDF 会复制到本地私有参考库,并记录 SHA-256 指纹;只向配置的模型发送相关页面片段。
- 图片型扫描 PDF 在没有 OCR 时会被明确拒绝,不会被当作已经理解。
- 模型输出不能绕过用户审批、路径安全、源文件指纹、版本检查和真实节点验收。
- v0.1.0 仍是初始版本。AI 生成的 SDE / SDevice 代码可能存在语法错误、版本差异或不合理的物理假设。
- 对运行时间长、节点数量多的复杂项目,完整闭环可能效率较低;建议先选择标准验收或限定代表性路径。
- 手册证据能减少模型凭空编写,但不能替代工程师对网格、边界条件、物理模型和收敛性的判断。
- 模型能力会影响首轮方案质量。更换模型可能改善规划与代码生成,但不能替代真实仿真验证。
现阶段更适合把 EmberTCAD 看作一名能够阅读工程、检索资料并操作 SWB 的 AI 助手,而不是替代 TCAD 工程师的全自动专家。
当前原生应用位于 linux/swb-companion/。仓库中的旧网页原型仅保留作迁移记录,不由安装脚本部署。
主要本地测试:
python3 tests/generated-project.test.py
python3 tests/connector-safety.test.py
python3 tests/research-service.test.py
python3 tests/ai-agent-routing.test.py
python3 tests/runtime-settings.test.py
python3 tests/unbounded-execution.test.py以 centos- 开头的测试会调用真实 GTK / SWB 环境,只应在隔离测试工作区中运行。
实现细节参见 原生应用说明。欢迎提交 Issue、测试记录和 Pull Request,尤其欢迎补充不同器件、Tool 链与 Sentaurus 版本的验证结果。
EmberTCAD 使用 Apache License 2.0。再分发本项目或衍生源码时,请保留许可证与 NOTICE。
Sentaurus、Sentaurus Workbench、官方 Manual / Tutorial 及其许可证属于 Synopsys,不包含在本仓库中,用户需自行合法安装和持有。
























