-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtestbench.sv
40 lines (32 loc) · 839 Bytes
/
testbench.sv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
module testbench();
logic clk;
logic reset;
logic [31:0] writedata, adr, readdata;
logic memwrite;
// microprocessor (control & datapath)
riscvmulti riscvmulti(clk, reset, adr, writedata, memwrite, readdata);
// memory
mem #("fibo.hex") mem(clk, memwrite, adr, writedata, readdata);
// initialize test
initial
begin
$dumpfile("dump.vcd"); $dumpvars(0);
reset <= 1; #22 reset <= 0;
#42000 $finish;
end
// generate clock to sequence tests
always
begin
clk <= 1; # 5; clk <= 0; # 5;
end
// check results
always @(negedge clk)
begin
if(memwrite) begin
if(adr>>2 === 32'h0000006f && writedata === 32'h6d73e55f) begin
$display("Simulation succeeded!");
$finish;
end
end
end
endmodule