| 123456789101112131415161718192021222324252627 |
- module instr_mem(addr, instr, imm);
- parameter IMEM_FILE = "";
- parameter WIDTH=8, LENGTH=256;
- localparam ADDR_WIDTH = $clog2(LENGTH);
- input [ADDR_WIDTH-1:0] addr;
- output [WIDTH-1:0] imm;
- output [WIDTH-1:0] instr;
-
- logic [WIDTH-1:0] rom [LENGTH-1:0];
- initial $readmemh(IMEM_FILE, rom);
- initial begin
- $display("Instruction ROM dump");
- for (int i=0; i < rom_size; i+=16) begin
- $write("%h:", i);
- for(int j=0; j<16 && j+i < rom_size; j++)
- $write(" %h", rom[i+j]);
- $display(" :%h", i);
- end
- end
-
- always_comb begin
- instr = rom[addr];
- imm = rom[addr + 1];
- end
- endmodule
|