集成电路测试向量自动生成与故障诊断系统 / V1.0
向量从哪来,覆盖率够不够
给一份门级网表,系统做故障建模、故障模拟与向量生成,再回答两个具体问题:这批向量的覆盖率是多少,没覆盖的那些故障里哪些其实不用补。整条链路六步走完:网表解析、故障注入、故障模拟、向量生成、覆盖率分析、报告导出。
串行基准之外另写并行位打包与演绎两套故障模拟实现,三套结论必须逐故障一致,用差分随机测试守着。
覆盖率与界面上的故障列表同源,不在名单里的故障不会被算成已覆盖;结构不可测与预算未决分开表述。
桌面窗口、浏览器、命令行三种模式共用同一套业务逻辑,功能完全一致,命令行适合没有图形界面的机器批量跑。
工作链条
六步走完
每一步都对应界面上的一个页签,前一步的输出是后一步的输入。
| # | 环节 | 具体做什么 |
|---|---|---|
| 01 | 网表编辑与解析 | 解析门级网表,识别输入输出声明、基本门与 D 触发器家族,自动拓扑排序并给出节点顺序。同时给出可测性分析与全扫描组合化预览。 |
| 02 | 故障注入 | 按选定的故障模型为当前电路生成故障列表,也可以手工添加自定义故障并实时校验节点是否存在、是否重复。生成后做结构等价合并与支配吸收,把等价故障收敛掉。 |
| 03 | 故障模拟 | 给定向量集,判断每个故障是否被检测。支持过渡类故障的双向量检测、故障效应传播路径展示,以及逐节点的正常值与故障值对照。 |
| 04 | 测试向量生成 | 五种策略:穷举、随机、确定性回溯、敏化入口与自动。自动策略按输入规模分流:输入少时给大预算争取把空间穷尽,输入多时降预算并用可测性引导分支顺序。支持目标故障通配符筛选、n 重检测、结果去重与顺序压缩。 |
| 05 | 覆盖率分析 | 给出覆盖率、故障效率与累积曲线,按门类型分组统计,把未覆盖故障分成结构不可测、预算未决与可测但缺向量三类并给补测建议,支持一键补测。 |
| 06 | 报告导出 | 十类报告可选,支持多类打包成一个压缩包,报告的标题、编制人与备注可以定制,并保留最近五份历史报告。 |
故障模型
支持 6 类故障模型
故障编号是稳定的文本格式,界面、报告与命令行之间可以互相引用,也方便从文本反解回故障对象。
| 故障模型 | 编号示例 | 说明 |
|---|---|---|
| 固定型(SA0 / SA1) | SA0@y | 信号线固定为 0 或 1。最经典的一类,也是覆盖率统计的默认口径。 |
| 桥接 | bridge_wired_and:a&b | 两条线短路,提供线与强 0、线与强 1 两种行为模型。候选线对按邻近关系生成,避免全两两组合爆炸;每个线对只生成一个规范序故障。 |
| 过渡故障(STR / STF) | STR@y | 信号翻转速度缺陷,需要双向量检测:前一个向量建立初值,后一个向量激活并传播。 |
| 小延迟缺陷(SDD) | SDD1-STR@a | 过渡故障加一个幅度标注,共用双向量检测。幅度是标注性质,做不了延迟波形仿真。 |
| 路径延迟(PDF) | PDF_R@a>n1>y | 枚举组合电路里主输入到主输出的拓扑路径,每条路径取慢升与慢降两个故障;检测要求翻转沿整条路径传播且终点达到期望电平。 |
| IDDQ | iddq:a&b | 用两条线被驱动成相反值形成静态电流通路来建模,不依赖主输出有没有逻辑差异,所以判定方式与其它几类不同,按单向量统计。 |
界面上的故障模型下拉提供固定型、过渡、SDD、路径延迟与 IDDQ 五类,桥接故障经由独立的注入入口添加。软件说明书里写的「五类」指下拉里的五个选项,引擎层面实现的是六类。
在线演示
覆盖率与故障效率:自己填数试试
这是覆盖率模块的算法演示。填入故障总数、已检测数与两类未覆盖数,看两个指标差在哪、未覆盖的部分是什么性质。
- 覆盖率
- --
- 故障效率
- --
- 未检测故障
- --
- 构成
- --
默认值是内置基准电路 c17 的规模:5 个输入、2 个输出、6 个与非门,共 11 条信号线,每条线两个固定型故障合计 22 个。穷举 32 个输入向量即可全部覆盖,所以覆盖率是 100%。
报告
十类报告与一键交付
报告是给别人看的东西,所以格式尽量贴近现有工具链的习惯,并且支持把整套结果一次打包。
覆盖率报告 CSV、测试向量集 CSV、故障字典 CSV、摘要文本,以及用重复计数压缩过的紧凑测试集。
完整 HTML 报告,自包含单文件,可以直接用浏览器打印成 PDF。报告的标题、编制人与备注可以在导出前填写。
测试波形 VCD、正常与故障双波形 VCD,以及类 STIL 与类 WGL 文本,便于与已有测试流程对接。
一次操作走完向量生成、故障模拟、覆盖率分析与全部报告导出,结果打包成一个压缩包。
输入格式
支持三种网表写法
以 INPUT、OUTPUT、GATE、DFF、NODE 关键字描述电路,门行写成「GATE 类型名称输入列表到输出」的形式,支持行注释。这是功能最完整的一种写法。
读写 ISCAS-85 与 ISCAS-89 风格的 bench 文件,支持常用门与缓冲,以及带时钟的 D 触发器子集。随包附带 c17、c432、c499、c880 四个基准电路。
导入单模块或多模块的结构描述:门原语、assign 语句与模块例化。多模块会先做层次展开再转成内部网表。
Verilog 导入明确只支持 1 位标量信号,多位总线与位选会直接报错而不是猜语义;bench 格式不支持线网扇出计数与扫描链变体。这些边界写在导入报错信息里。
时序电路
含触发器的电路怎么处理
组合逻辑与含触发器的时序逻辑走两条不同的路径,系统会明确指出该走哪条。
把每个触发器的状态输出当作伪输入、数据输入当作伪输出,变换成纯组合的扫描模型,再按组合逻辑生成向量。变换完成后会用原来的时序电路做一次捕获周期求值,核对变换前后结论一致。
对规模较小的时序电路,把测试表达成连续时钟帧的输入序列,在帧数与触发器数量的预算内搜索,每个周期用带状态的故障模拟裁决结果。
帧数或触发器数超出预算时状态标为降级并提示改走全扫描路径;预算内没命中只报未证伪,不下冗余结论。
运行方式
三种跑法,同一套逻辑
双击程序打开窗口,左侧配置电路与故障,右侧看结构图、故障分布与覆盖率曲线。窗口默认 1280 × 860。
在本机起一个只监听回环地址的服务,用浏览器操作,适合把结果投到大屏上讲解。
13 个子命令覆盖网表校验、格式转换、故障模拟、向量生成、基准验证、全扫描、时间帧、故障字典与批量跑例,退出码 0 表示全部通过,适合进自动化流程。
功能边界
这套系统不做什么
下面几条写在软件说明书的功能边界章节里,界面与命令行也会同步提示。
只做故障诊断与向量生成这一段,不做版图相关处理,也不做时序签核,这类需求属于商业 EDA 工具的范围。
每个输入向量视为一个时钟周期,不做亚周期波形仿真,因此不针对具体的建立保持时间余量给结论。
含触发器的电路需要先做全扫描组合化;路径数量有上限,超出会截断并提示。
用驱动冲突形成静态电流通路的模型来判定,不等同于真实 IDDQ 测试仪的电流阈值判定。
大电路上回溯搜索容易在预算内找不到向量,这类结果标为预算未决,不代表故障不可测。这一点在界面和说明书里都写明。
报告 PDF 的做法是导出 HTML 报告后用浏览器打印另存,不引入 PDF 生成库,以保持运行期零第三方依赖。
运行环境
装在什么机器上
| 操作系统 | Windows 10 / 11,64 位。免安装,不需要预装开发环境 |
|---|---|
| 硬件建议 | x86-64 双核及以上,内存 4 GB 及以上,500 MB 可用磁盘 |
| 桌面窗口 | 依赖系统自带的 WebView2 运行时;不可用时给出提示,也可改用浏览器或命令行模式 |
| 外网 | 不需要。运行期只绑定本机回环地址,不访问外部网络 |
| 计算引擎 | 只用编程语言自带标准库实现,故障模拟、向量生成、可测性分析与报告导出都不依赖第三方计算包 |
下一步
拿一块电路试一遍
给一份网表或电路规模描述,我们跑一遍向量生成与覆盖率分析,把未覆盖故障的分类和补测建议一起给你。