3
0
Fork 0
mirror of https://github.com/YosysHQ/sby.git synced 2025-04-22 21:05:30 +00:00

Use the test Makefile for all examples

* Rename and move sbysrc/demo[123].sby to docs/examples/demos
    * Make them use multiple tasks for multiple engines
* Scan docs/examples for sby files for make test
* `make ci` is now `NOSKIP` by default
* Skip scripts using `verific` w/o yosys verific support
    * This does not fail even with NOSKIP set
This commit is contained in:
Jannis Harder 2022-06-13 13:20:33 +02:00
parent 1d21513a47
commit 499371fd39
18 changed files with 77 additions and 92 deletions

3
docs/examples/Makefile Normal file
View file

@ -0,0 +1,3 @@
SUBDIR=../docs/examples
TESTDIR=../../tests
include $(TESTDIR)/make/subdir.mk

View file

@ -0,0 +1,3 @@
SUBDIR=../docs/examples/abstract
TESTDIR=../../../tests
include $(TESTDIR)/make/subdir.mk

View file

@ -0,0 +1,3 @@
SUBDIR=../docs/examples/demos
TESTDIR=../../../tests
include $(TESTDIR)/make/subdir.mk

View file

@ -0,0 +1,53 @@
[options]
depth 10
mode bmc
[engines]
smtbmc yices
[script]
read_verilog -formal demo.v
prep -top top
[file demo.v]
module top (
input clk,
input [7:0] addr,
input [7:0] wdata,
output [7:0] rdata
);
rand const reg [7:0] test_addr;
reg [7:0] test_data;
reg test_valid = 0;
always @(posedge clk) begin
if (addr == test_addr) begin
if (test_valid)
assert(test_data == rdata);
test_data <= wdata;
test_valid <= 1;
end
end
memory uut (
.clk (clk ),
.addr (addr ),
.wdata(wdata),
.rdata(rdata)
);
endmodule
module memory (
input clk,
input [7:0] addr,
input [7:0] wdata,
output [7:0] rdata
);
reg [7:0] mem [0:255];
always @(posedge clk)
mem[addr] <= wdata;
assign rdata = mem[addr];
endmodule

View file

@ -0,0 +1,25 @@
[tasks]
yices
boolector
z3
abc
[options]
mode bmc
depth 10
[engines]
yices: smtbmc yices
boolector: smtbmc boolector -ack
z3: smtbmc --nomem z3
abc: abc bmc3
[script]
read_verilog -formal -norestrict -assume-asserts picorv32.v
read_verilog -formal axicheck.v
prep -top testbench
[files]
picorv32.v ../../../extern/picorv32.v
axicheck.v ../../../extern/axicheck.v

View file

@ -0,0 +1,24 @@
[tasks]
suprove
avy
[options]
mode prove
[engines]
suprove: aiger suprove
avy: aiger avy
[script]
read_verilog -formal demo.v
prep -top top
[file demo.v]
module top(input clk, input up, down);
reg [4:0] counter = 0;
always @(posedge clk) begin
if (up && counter != 10) counter <= counter + 1;
if (down && counter != 0) counter <= counter - 1;
end
assert property (counter != 15);
endmodule

View file

@ -0,0 +1,3 @@
SUBDIR=../docs/examples/indinv
TESTDIR=../../../tests
include $(TESTDIR)/make/subdir.mk

View file

@ -0,0 +1,3 @@
SUBDIR=../docs/examples/multiclk
TESTDIR=../../../tests
include $(TESTDIR)/make/subdir.mk

View file

@ -0,0 +1,3 @@
SUBDIR=../docs/examples/puzzles
TESTDIR=../../../tests
include $(TESTDIR)/make/subdir.mk

View file

@ -0,0 +1,3 @@
SUBDIR=../docs/examples/quickstart
TESTDIR=../../../tests
include $(TESTDIR)/make/subdir.mk