利用归纳逻辑编程推动基于仿真的设计验证
在当今的设计验证领域,如何高效且准确地进行验证是一个关键问题。归纳逻辑编程(ILP)为这一问题提供了新的解决方案。下面我们将详细探讨ILP在设计验证中的应用。
1. ILP规则生成与测试准确性评估
在设计验证中,ILP可以从现有的测试和覆盖数据中归纳出规则,这些规则可作为测试生成的指令。例如,有这样一条规则:
cover(alu rs1 2,Test ID) :-
has instruction(Test ID,I1),
has instruction(Test ID,I2),
instr has opcode(I2,alu),
same rd rs1 d1(I1,I2).
这条规则可以翻译成自然语言:“测试必须包含一个操作码为alu类型的指令,并且alu类型指令前一条指令的目标寄存器被alu类型指令用作第一个源寄存器。”
为了评估基于ILP规则生成的测试的准确性,我们比较了伪随机生成测试和基于ILP诱导规则生成测试的成功率(命中率)。以下是经过500次模拟运行后的覆盖和学习结果:
| 覆盖任务 (PU,SRL,RBL) | 被测试覆盖的数量 | 规则数量 | 随机命中率 | ILP命中率 | 提升率 |
| — | — | — | — | — | — |
| (alu,rs2,4) | 2 | 2 | 0.4% | 7% | 17.5 |
| (alu,rs2,1) | 4 | 4 | 0.8% | 13% | 16.25 |
| (alu
超级会员免费看
订阅专栏 解锁全文
41

被折叠的 条评论
为什么被折叠?



