我有一个相当简单的顺序问题,我试图用symbiyosys中的“模式证明”来正式证明 我使用“ aiger suprove”作为引擎,并遇到以下崩溃:
$ sby -f assert_seq_proof.sby
SBY 9:02:40 [assert_seq_proof] Removing direcory 'assert_seq_proof'.
SBY 9:02:40 [assert_seq_proof] Copy 'assert_seq_proof.sv' to 'assert_seq_proof/src/assert_seq_proof.sv'.
SBY 9:02:40 [assert_seq_proof] engine_0: aiger suprove
SBY 9:02:40 [assert_seq_proof] nomem: starting process "cd assert_seq_proof/src; yosys -ql ../model/design_nomem.log ../model/design_nomem.ys"
SBY 9:02:40 [assert_seq_proof] nomem: finished (returncode=0)
SBY 9:02:40 [assert_seq_proof] aig: starting process "cd assert_seq_proof/model; yosys -ql design_aiger.log design_aiger.ys"
SBY 9:02:40 [assert_seq_proof] aig: finished (returncode=0)
SBY 9:02:40 [assert_seq_proof] engine_0: starting process "cd assert_seq_proof; suprove model/design_aiger.aig"
SBY 9:02:40 [assert_seq_proof] engine_0: finished (returncode=127)
Traceback (most recent call last):
File "/usr/local/bin/sby", line 388, in <module>
retcode |= run_job(t)
File "/usr/local/bin/sby", line 346, in run_job
job.run(setupmode)
File "/usr/local/bin/../share/yosys/python3/sby_core.py", line 634, in run
self.taskloop()
File "/usr/local/bin/../share/yosys/python3/sby_core.py", line 251, in taskloop
task.poll()
File "/usr/local/bin/../share/yosys/python3/sby_core.py", line 170, in poll
self.handle_exit(self.p.returncode)
File "/usr/local/bin/../share/yosys/python3/sby_core.py", line 108, in handle_exit
self.exit_callback(retcode)
File "/usr/local/bin/../share/yosys/python3/sby_engine_aiger.py", line 81, in exit_callback
assert retcode == 0
AssertionError
使用具有完全相同的脚本和设计的“ abc pdr”引擎:
$ sby -f assert_seq_proof.sby
SBY 9:19:20 [assert_seq_proof] Removing direcory 'assert_seq_proof'.
SBY 9:19:20 [assert_seq_proof] Copy 'assert_seq_proof.sv' to 'assert_seq_proof/src/assert_seq_proof.sv'.
SBY 9:19:20 [assert_seq_proof] engine_0: abc pdr
SBY 9:19:20 [assert_seq_proof] nomem: starting process "cd assert_seq_proof/src; yosys -ql ../model/design_nomem.log ../model/design_nomem.ys"
SBY 9:19:21 [assert_seq_proof] nomem: finished (returncode=0)
SBY 9:19:21 [assert_seq_proof] aig: starting process "cd assert_seq_proof/model; yosys -ql design_aiger.log design_aiger.ys"
SBY 9:19:21 [assert_seq_proof] aig: finished (returncode=0)
SBY 9:19:21 [assert_seq_proof] engine_0: starting process "cd assert_seq_proof; yosys-abc -c 'read_aiger model/design_aiger.aig; fold; strash; pdr; write_cex -a engine_0/trace.aiw'"
SBY 9:19:24 [assert_seq_proof] engine_0: ABC command line: "read_aiger model/design_aiger.aig; fold; strash; pdr; write_cex -a engine_0/trace.aiw".
SBY 9:19:24 [assert_seq_proof] engine_0: Warning: The last 7 outputs are interpreted as constraints.
SBY 9:19:24 [assert_seq_proof] engine_0: Invariant F[80] : 225 clauses with 112 flops (out of 124) (cex = 0, ave = 21.31)
SBY 9:19:24 [assert_seq_proof] engine_0: Verification of invariant with 225 clauses was successful. Time = 0.00 sec
SBY 9:19:24 [assert_seq_proof] engine_0: Property proved. Time = 2.91 sec
SBY 9:19:24 [assert_seq_proof] engine_0: Counter-example is not available.
SBY 9:19:24 [assert_seq_proof] engine_0: finished (returncode=0)
SBY 9:19:24 [assert_seq_proof] engine_0: Status returned by engine: PASS
SBY 9:19:24 [assert_seq_proof] summary: Elapsed clock time [H:MM:SS (secs)]: 0:00:03 (3)
SBY 9:19:24 [assert_seq_proof] summary: Elapsed process time [H:MM:SS (secs)]: 0:00:03 (3)
SBY 9:19:24 [assert_seq_proof] summary: engine_0 (abc pdr) returned PASS
SBY 9:19:24 [assert_seq_proof] DONE (PASS, rc=0)
关于如何调试/解决紧急崩溃的任何想法?