SinglePortRom.v 700 B

123456789101112131415161718192021222324252627282930
  1. module SinglePortRom (
  2. clk_i,
  3. addr_i,
  4. q_o
  5. );
  6. parameter DATA_WIDTH = 16;
  7. parameter ADDR_WIDTH = 5;
  8. parameter INIT_FILE_NAME = "./initFiles/AdcInitData.txt";
  9. parameter DATA_BASE = "HEX"; // HEX or BIN
  10. input clk_i;
  11. input [(ADDR_WIDTH-1):0] addr_i;
  12. output reg [(DATA_WIDTH-1):0] q_o;
  13. reg [DATA_WIDTH-1:0] rom[2**ADDR_WIDTH-1:0];
  14. initial begin
  15. if (DATA_BASE == "HEX") begin
  16. $readmemh(INIT_FILE_NAME, rom);
  17. end else begin
  18. $readmemb(INIT_FILE_NAME, rom);
  19. end
  20. end
  21. always @ (posedge clk_i) begin
  22. q_o <= rom[addr_i];
  23. end
  24. endmodule