30 lines
861 B
Systemverilog
30 lines
861 B
Systemverilog
|
// RISC-V Read only memory
|
||
|
module rom(clk, rd, wr, addr, datar, dataw);
|
||
|
input clk;
|
||
|
input reg rd;
|
||
|
input reg wr; // wait why the fuck did i add a write pin
|
||
|
input reg [31:0] addr;
|
||
|
output reg [31:0] datar;
|
||
|
input reg [31:0] dataw;
|
||
|
|
||
|
always @(posedge clk) begin
|
||
|
if (rd) begin
|
||
|
case (addr >> 2)
|
||
|
0: datar = 0;
|
||
|
1: datar = 1;
|
||
|
2: datar = 2;
|
||
|
3: datar = 3;
|
||
|
4: datar = 4;
|
||
|
5: datar = 5;
|
||
|
6: datar = 6;
|
||
|
7: datar = 7;
|
||
|
8: datar = 8;
|
||
|
9: datar = 9;
|
||
|
10: datar = 10;
|
||
|
default: $error("INVALID MEMORY ACCESS");
|
||
|
endcase
|
||
|
end else begin
|
||
|
datar = 0;
|
||
|
end
|
||
|
end
|
||
|
endmodule
|