File: picorv32_tb.v

package info (click to toggle)
yosys 0.52-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 69,796 kB
  • sloc: ansic: 696,955; cpp: 239,736; python: 14,617; yacc: 3,529; sh: 2,175; makefile: 1,945; lex: 697; perl: 445; javascript: 323; tcl: 162; vhdl: 115
file content (62 lines) | stat: -rw-r--r-- 1,248 bytes parent folder | download
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
51
52
53
54
55
56
57
58
59
60
61
62
module gold(
	input wire clk,
	output reg resetn,
	output wire trap,
	output wire mem_valid,
	output wire mem_instr,
	output wire mem_ready,
	output wire [31:0] mem_addr,
	output wire [31:0] mem_wdata,
	output wire [31:0] mem_wstrb,
	output wire [31:0] mem_rdata,
);

	initial resetn = 1'b0;
	always @(posedge clk) resetn <= 1'b1;

	reg [31:0] rom[0:15];

	initial begin
		rom[0]  = 32'h00200093;
		rom[1]  = 32'h00200113;
		rom[2]  = 32'h00111863;
		rom[3]  = 32'h00102023;
		rom[4]  = 32'h00108093;
		rom[5]  = 32'hfe0008e3;
		rom[6]  = 32'h00008193;
		rom[7]  = 32'h402181b3;
		rom[8]  = 32'hfe304ee3;
		rom[9]  = 32'hfe0186e3;
		rom[10] = 32'h00110113;
		rom[11] = 32'hfc000ee3;
	end

	assign mem_ready = 1'b1;
	assign mem_rdata = rom[mem_addr[5:2]];

	wire pcpi_wr = 1'b0;
	wire [31:0] pcpi_rd = 32'b0;
	wire pcpi_wait = 1'b0;
	wire pcpi_ready = 1'b0;

	wire [31:0] irq = 32'b0;

	picorv32 picorv32_i(
		.clk(clk),
		.resetn(resetn),
		.trap(trap),
		.mem_valid(mem_valid),
		.mem_instr(mem_instr),
		.mem_ready(mem_ready),
		.mem_addr(mem_addr),
		.mem_wdata(mem_wdata),
		.mem_wstrb(mem_wstrb),
		.mem_rdata(mem_rdata),
		.pcpi_wr(pcpi_wr),
		.pcpi_rd(pcpi_rd),
		.pcpi_wait(pcpi_wait),
		.pcpi_ready(pcpi_ready),
		.irq(irq)
	);

endmodule