blob: 05b93df622480e16c2beefc70547c24eeb659230 [file] [log] [blame]
`default_nettype none
// ============================================================================
module rom
(
input wire CLK,
input wire RST,
input wire RD,
output wire [7:0] O
);
// ============================================================================
reg [7:0] rom[0:31];
initial begin
rom[ 0] <= 8'd157;
rom[ 1] <= 8'd254;
rom[ 2] <= 8'd208;
rom[ 3] <= 8'd125;
rom[ 4] <= 8'd39;
rom[ 5] <= 8'd192;
rom[ 6] <= 8'd242;
rom[ 7] <= 8'd117;
rom[ 8] <= 8'd186;
rom[ 9] <= 8'd94;
rom[ 10] <= 8'd201;
rom[ 11] <= 8'd156;
rom[ 12] <= 8'd224;
rom[ 13] <= 8'd120;
rom[ 14] <= 8'd255;
rom[ 15] <= 8'd219;
rom[ 16] <= 8'd12;
rom[ 17] <= 8'd53;
rom[ 18] <= 8'd156;
rom[ 19] <= 8'd93;
rom[ 20] <= 8'd97;
rom[ 21] <= 8'd47;
rom[ 22] <= 8'd9;
rom[ 23] <= 8'd184;
rom[ 24] <= 8'd68;
rom[ 25] <= 8'd235;
rom[ 26] <= 8'd67;
rom[ 27] <= 8'd68;
rom[ 28] <= 8'd216;
rom[ 29] <= 8'd26;
rom[ 30] <= 8'd16;
rom[ 31] <= 8'd93;
end
reg [7:0] dat;
reg [4:0] adr;
always @(posedge CLK)
if (RST) adr <= 0;
else if (RD) adr <= adr + 1;
always @(posedge CLK)
if (RD) dat <= rom[adr];
assign O = dat;
// ============================================================================
endmodule