我认为我有与Yosys instruction "sat -dump_cnf "中类似的问题。我正在尝试使用SAT求解器告诉我在verilog设计中使用的断言是否成立。我的测试设计很简单:
module test(input a, output y);
assign y = ~a;
`ifdef FORMAL
assert property (y == a);
`endif
endmodule
现在,我想使用yosys来获取问题的CNF表示,然后将其提供给其他SAT求解器。因此,我使用:
read_verilog -formal test.v
prep -top test
sat -prove-asserts -show-inputs -show-outputs -dump_cnf test.cnf
但是,生成的CNF在15个变量中包含33个子句,而对于我的简单问题,我期望它要少得多。您能给我提示为什么会发生这种情况,和/或这是否是解决我的问题的正确方法?