module SinglePortRom ( clk_i, addr_i, q_o ); parameter DATA_WIDTH = 16; parameter ADDR_WIDTH = 5; parameter INIT_FILE_NAME = "./initFiles/AdcInitData.txt"; parameter DATA_BASE = "HEX"; // HEX or BIN input clk_i; input [(ADDR_WIDTH-1):0] addr_i; output reg [(DATA_WIDTH-1):0] q_o; reg [DATA_WIDTH-1:0] rom[2**ADDR_WIDTH-1:0]; initial begin if (DATA_BASE == "HEX") begin $readmemh(INIT_FILE_NAME, rom); end else begin $readmemb(INIT_FILE_NAME, rom); end end always @ (posedge clk_i) begin q_o <= rom[addr_i]; end endmodule