mirror of
https://github.com/YosysHQ/yosys
synced 2025-08-29 14:30:08 +00:00
53 lines
2.4 KiB
Verilog
53 lines
2.4 KiB
Verilog
// ROMs Using Block RAM Resources.
|
|
// File: rams_sp_rom_1.v
|
|
//
|
|
module rams_sp_rom_1 (clk, en, addr, dout);
|
|
input clk;
|
|
input en;
|
|
input [5:0] addr;
|
|
output [19:0] dout;
|
|
|
|
(*rom_style = "block" *) reg [19:0] data;
|
|
|
|
always @(posedge clk)
|
|
begin
|
|
if (en)
|
|
case(addr)
|
|
6'b000000: data <= 20'h0200A; 6'b100000: data <= 20'h02222;
|
|
6'b000001: data <= 20'h00300; 6'b100001: data <= 20'h04001;
|
|
6'b000010: data <= 20'h08101; 6'b100010: data <= 20'h00342;
|
|
6'b000011: data <= 20'h04000; 6'b100011: data <= 20'h0232B;
|
|
6'b000100: data <= 20'h08601; 6'b100100: data <= 20'h00900;
|
|
6'b000101: data <= 20'h0233A; 6'b100101: data <= 20'h00302;
|
|
6'b000110: data <= 20'h00300; 6'b100110: data <= 20'h00102;
|
|
6'b000111: data <= 20'h08602; 6'b100111: data <= 20'h04002;
|
|
6'b001000: data <= 20'h02310; 6'b101000: data <= 20'h00900;
|
|
6'b001001: data <= 20'h0203B; 6'b101001: data <= 20'h08201;
|
|
6'b001010: data <= 20'h08300; 6'b101010: data <= 20'h02023;
|
|
6'b001011: data <= 20'h04002; 6'b101011: data <= 20'h00303;
|
|
6'b001100: data <= 20'h08201; 6'b101100: data <= 20'h02433;
|
|
6'b001101: data <= 20'h00500; 6'b101101: data <= 20'h00301;
|
|
6'b001110: data <= 20'h04001; 6'b101110: data <= 20'h04004;
|
|
6'b001111: data <= 20'h02500; 6'b101111: data <= 20'h00301;
|
|
6'b010000: data <= 20'h00340; 6'b110000: data <= 20'h00102;
|
|
6'b010001: data <= 20'h00241; 6'b110001: data <= 20'h02137;
|
|
6'b010010: data <= 20'h04002; 6'b110010: data <= 20'h02036;
|
|
6'b010011: data <= 20'h08300; 6'b110011: data <= 20'h00301;
|
|
6'b010100: data <= 20'h08201; 6'b110100: data <= 20'h00102;
|
|
6'b010101: data <= 20'h00500; 6'b110101: data <= 20'h02237;
|
|
6'b010110: data <= 20'h08101; 6'b110110: data <= 20'h04004;
|
|
6'b010111: data <= 20'h00602; 6'b110111: data <= 20'h00304;
|
|
6'b011000: data <= 20'h04003; 6'b111000: data <= 20'h04040;
|
|
6'b011001: data <= 20'h0241E; 6'b111001: data <= 20'h02500;
|
|
6'b011010: data <= 20'h00301; 6'b111010: data <= 20'h02500;
|
|
6'b011011: data <= 20'h00102; 6'b111011: data <= 20'h02500;
|
|
6'b011100: data <= 20'h02122; 6'b111100: data <= 20'h0030D;
|
|
6'b011101: data <= 20'h02021; 6'b111101: data <= 20'h02341;
|
|
6'b011110: data <= 20'h00301; 6'b111110: data <= 20'h08201;
|
|
6'b011111: data <= 20'h00102; 6'b111111: data <= 20'h0400D;
|
|
endcase
|
|
end
|
|
|
|
assign dout = data;
|
|
|
|
endmodule
|