mirror of
https://github.com/YosysHQ/sby.git
synced 2025-04-23 05:15:30 +00:00
Unified trace generation using yosys's sim across all engines
Currently opt-in using the `fst` or `vcd_sim` options.
This commit is contained in:
parent
4c44a10f72
commit
6d3b5aa960
15 changed files with 686 additions and 183 deletions
|
@ -11,7 +11,7 @@ step_5 = line_ref(workdir, src, "step 5")
|
|||
step_7 = line_ref(workdir, src, "step 7")
|
||||
|
||||
log = open(workdir + "/logfile.txt").read()
|
||||
log_per_trace = log.split("Writing trace to VCD file")[:-1]
|
||||
log_per_trace = log.split("Writing trace to Yosys witness file")[:-1]
|
||||
|
||||
assert len(log_per_trace) == 4
|
||||
|
||||
|
@ -27,5 +27,5 @@ assert re.search(r"Assert failed in test: %s \(.*\)$" % step_5, log_per_trace[2]
|
|||
assert re.search(r"Assert failed in test: %s \(.*\) \[failed before\]$" % step_3_7, log_per_trace[3], re.M)
|
||||
assert re.search(r"Assert failed in test: %s \(.*\)$" % step_7, log_per_trace[3], re.M)
|
||||
|
||||
pattern = f"Property ASSERT in test at {assert_0} failed. Trace file: engine_0/trace0.vcd"
|
||||
pattern = f"Property ASSERT in test at {assert_0} failed. Trace file: engine_0/trace0.(vcd|fst)"
|
||||
assert re.search(pattern, open(f"{workdir}/{workdir}.xml").read())
|
||||
|
|
|
@ -9,7 +9,7 @@ assert_not_a = line_ref(workdir, src, "assert(!a)")
|
|||
assert_0 = line_ref(workdir, src, "assert(0)")
|
||||
|
||||
log = open(workdir + "/logfile.txt").read()
|
||||
log_per_trace = log.split("Writing trace to VCD file")[:-1]
|
||||
log_per_trace = log.split("Writing trace to Yosys witness file")[:-1]
|
||||
|
||||
assert len(log_per_trace) == 2
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ assert_false = line_ref(workdir, "extra.smtc", "assert false")
|
|||
assert_distinct = line_ref(workdir, "extra.smtc", "assert (distinct")
|
||||
|
||||
log = open(workdir + "/logfile.txt").read()
|
||||
log_per_trace = log.split("Writing trace to VCD file")[:-1]
|
||||
log_per_trace = log.split("Writing trace to Yosys witness file")[:-1]
|
||||
|
||||
assert len(log_per_trace) == 4
|
||||
|
||||
|
|
48
tests/unsorted/btor_meminit.sby
Normal file
48
tests/unsorted/btor_meminit.sby
Normal file
|
@ -0,0 +1,48 @@
|
|||
[tasks]
|
||||
btormc
|
||||
#pono
|
||||
smtbmc
|
||||
|
||||
[options]
|
||||
mode bmc
|
||||
expect fail
|
||||
|
||||
[engines]
|
||||
btormc: btor btormc
|
||||
# pono: btor pono
|
||||
smtbmc: smtbmc
|
||||
|
||||
[script]
|
||||
read -formal top.sv
|
||||
prep -top top -flatten
|
||||
|
||||
[file top.sv]
|
||||
|
||||
module top(input clk);
|
||||
|
||||
inner inner(clk);
|
||||
|
||||
endmodule
|
||||
|
||||
module inner(input clk);
|
||||
reg [7:0] counter = 0;
|
||||
|
||||
reg [1:0] mem [0:255];
|
||||
|
||||
initial begin
|
||||
mem[0] = 0;
|
||||
mem[1] = 1;
|
||||
mem[2] = 2;
|
||||
mem[3] = 2;
|
||||
mem[4] = 0;
|
||||
mem[7] = 0;
|
||||
end
|
||||
|
||||
always @(posedge clk) begin
|
||||
counter <= counter + 1;
|
||||
foo: assert (mem[counter] < 3);
|
||||
bar: assume (counter < 7);
|
||||
|
||||
mem[counter] <= 0;
|
||||
end
|
||||
endmodule
|
34
tests/unsorted/cover_unreachable.sby
Normal file
34
tests/unsorted/cover_unreachable.sby
Normal file
|
@ -0,0 +1,34 @@
|
|||
[tasks]
|
||||
btormc
|
||||
smtbmc
|
||||
|
||||
[options]
|
||||
mode cover
|
||||
expect fail
|
||||
|
||||
[engines]
|
||||
btormc: btor btormc
|
||||
smtbmc: smtbmc
|
||||
|
||||
[script]
|
||||
read -formal top.sv
|
||||
prep -top top -flatten
|
||||
|
||||
[file top.sv]
|
||||
|
||||
module top(input clk);
|
||||
|
||||
inner inner(clk);
|
||||
|
||||
endmodule
|
||||
|
||||
module inner(input clk);
|
||||
reg [7:0] counter = 0;
|
||||
|
||||
always @(posedge clk) begin
|
||||
counter <= counter == 4 ? 0 : counter + 1;
|
||||
|
||||
reachable: cover (counter == 3);
|
||||
unreachable: cover (counter == 5);
|
||||
end
|
||||
endmodule
|
Loading…
Add table
Add a link
Reference in a new issue