S SmartDocs
Série: RISC V Hardware verilog 20 lignes · Mis à jour 2026-07-04

imem.v

RISC_V_Hardware/verilog/rtl/imem.v

// ============================================================
// imem.v -- instruction ROM, loaded from hex file
// ============================================================
`timescale 1ns/1ps

module imem #(
    parameter WORDS    = 1024,
    parameter MEMFILE  = ""
)(
    input  wire [31:0] addr,
    output wire [31:0] instr
);
    reg [31:0] mem [0:WORDS-1];
    integer i;
    initial begin
        for (i = 0; i < WORDS; i = i + 1) mem[i] = 32'h00000013; // nop
        if (MEMFILE != "") $readmemh(MEMFILE, mem);
    end
    assign instr = mem[addr[31:2]];
endmodule

Articles liés