![]() |
1
0
这样的任务通常相当于遍历AST并象征性地执行它,并为SMT求解器生成轨迹。 不幸的是,这说起来容易做起来难: 进行这种转换有很多方面,即使完全完成,解算器也很难验证相应的属性。对于完整的Verilog,您必须实现一个可以处理符号值的Verilog模拟器。虽然这可能是一项非常大的任务,但如果您的输入足够“简单”,那么您可能可以获得一组小得多的功能。如果不知道你的Verilog是如何构造的,真的很难说什么。 paper 由Z3的两位主要作者(尼古拉和莱昂纳多)撰写的文章对这种方法进行了很好的调查。这本书很好,有很多有用的参考资料。从这一点开始,至少可以让你了解其中所涉及的内容。 我应该补充一点,Verilog设计的验证是一个具有工业应用的主题,并且有供应商支持的工具(不便宜!)在Verilog级别进行验证。这个 Jasper Gold Synopsys 还有一个类似的工具。 您似乎对测试用例生成感兴趣。这将对应于写入一个典型的“cover”属性,并将值读取到主输入,从而在这种设置中生成cover场景。此类属性通常写在 SVA 格式,这些工具可以理解。 |
![]() |
Pushpa · 理解Z3中的量词遍历 7 年前 |
![]() |
Pushpa · 将Z3 QBF公式直接转换为pcnf 7 年前 |
![]() |
stklik · z3py将数据类型/枚举与字符串进行比较 7 年前 |
|
Jim bim · 将pyverilog AST转换为Z3解算器的输入 7 年前 |