SimFlow - 异步仿真流程管理与协同平台
立项背景与目标:
在半导体和EDA领域,参数化单元(Pcell)的仿真验证是芯片设计的关键环节。传统流程中,工程师需要手动修改参数、启动仿真、收集结果,这一过程在进行大规模参数扫描(Sweep)或优化时极为耗时且容易出错。同时,将仿真流程与optiSLang等高级优化工具集成时,需要一个稳定、高效、可编程的中间件来桥接。
SimFlow 项目应运而生,其核心目标是解决以上痛点,打造一个自动化的、高并发的、可扩展的仿真流程管理平台。它旨在:
效率提升: 将手动仿真流程完全自动化,通过并发执行将大规模参数扫描的时间缩短 94% 以上。
标准化接口: 提供统一的 HTTP/WebSocket API 接口,屏蔽底层仿真工具的复杂性,使上层应用(如GUI、Web前端或optiSLang)能轻松调用。
集中化管理: 通过数据库集中管理所有仿真任务的参数、设置、状态和结果路径,实现100%可追溯性。
高并发处理: 压力测试下支持至少 100 个仿真任务并行执行,最大化利用计算资源。
实现的功能
异步Web服务:基于 aiohttp 搭建了一个高性能的异步Web服务器,能够以非阻塞方式处理大量并发请求。
全生命周期仿真管理:
启动仿真: 接收 Pcell 名称、参数和设置,自动创建数据库记录、生成结果目录并启动后台仿真进程。
状态查询: 提供多种查询接口,可根据单元名称、具体参数或查询全部记录,返回所有仿真的详细信息(ID, 状态, 路径等)。
终止仿真: 可安全地终止正在运行的仿真进程,并更新数据库状态。
结果下载 : 将指定仿真任务的结果文件打包成 ZIP 压缩包供客户端下载。
参数化与模板管理:
通过 XML 文件定义不同 Pcell 的默认参数模板。
通过 JSON 文件定义默认的仿真设置。
服务器会自动合并用户传入的参数与默认模板,并进行有效性验证。
命令行客户端:提供一个功能强大的Python客户端 ,支持所有服务端API,方便用户和脚本直接调用。
optiSLang集成: 项目包含一套完整的 wrapper 脚本,实现了 SimFlow 与 optiSLang 的无缝对接,能够自动拉取仿真结果并解析,用于后续的优化流程。
工业互联网