3
0
Fork 0
mirror of https://github.com/YosysHQ/sby.git synced 2025-04-13 08:48:18 +00:00
sby/docs/examples/quickstart/prove.sv
Clifford Wolf 2fa29974dd Update remaining quickstart examples
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-29 18:21:38 +02:00

54 lines
830 B
Systemverilog

module testbench (
input clk,
input reset,
input [7:0] din,
output reg [7:0] dout
);
demo uut (
.clk (clk ),
.reset(reset),
.din (din ),
.dout (dout )
);
reg init = 1;
always @(posedge clk) begin
if (init) assume (reset);
if (!reset) assert (!dout[1:0]);
init <= 0;
end
endmodule
module demo (
input clk,
input reset,
input [7:0] din,
output reg [7:0] dout
);
reg [7:0] buffer;
reg [1:0] state;
always @(posedge clk) begin
if (reset) begin
dout <= 0;
state <= 0;
end else
case (state)
0: begin
buffer <= din;
state <= 1;
end
1: begin
if (buffer[1:0])
buffer <= buffer + 1;
else
state <= 2;
end
2: begin
dout <= dout + buffer;
state <= 0;
end
endcase
end
endmodule