-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtestbench.v
51 lines (42 loc) · 951 Bytes
/
testbench.v
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
41
42
43
44
45
46
47
48
49
50
`timescale 1 ns / 1 ps
module testbench();
reg clk = 1;
reg resetn = 0;
wire [7:0] gpio;
always #5 clk = ~clk;
initial begin
repeat (10) @(posedge clk);
resetn <= 1;
end
initial begin
$dumpfile("testbench.vcd");
$dumpvars(0, testbench);
repeat (100000) @(posedge clk);
$display("TIMEOUT");
$finish;
end
picorv32_wrapper uut (
.clk(clk),
.resetn(resetn),
.gpio_o(gpio)
);
endmodule
module picorv32_wrapper #(
parameter integer MEM_WORDS = 128 * 1028
) (
input clk,
input resetn,
inout [7:0] gpio_o
);
tiny_soc_wb #(
) uut (
.clk(clk),
.resetn(resetn),
.gpio_o(gpio_o)
);
reg [1023:0] firmware_file;
initial begin
firmware_file = "/home/oleg/work/riscv/tiny_soc/firmware/firmware.hex";
$readmemh(firmware_file, uut.i_memory.mem);
end
endmodule