Logic2_to_FPGA/pattern_rom.v
2026-06-01 06:19:27 +03:00

70 lines
2.4 KiB
Verilog

// Автогенерация из CSV: Logic2_D7.csv
// F_CLK_HZ = 48000000
// Количество сегментов (DEPTH) = 50
module pattern_rom #(
parameter TICKS_WIDTH = 32,
parameter DEPTH = 50
) (
input wire [$clog2(DEPTH)-1:0] addr,
output reg [TICKS_WIDTH:0] data // {level[MSB], ticks[LSB:0]}
);
// Простейший ROM на case по адресу
always @* begin
case (addr)
0: data = {1'b0, 32'd1};
1: data = {1'b1, 32'd1};
2: data = {1'b0, 32'd1};
3: data = {1'b1, 32'd1};
4: data = {1'b0, 32'd1};
5: data = {1'b1, 32'd1};
6: data = {1'b0, 32'd1};
7: data = {1'b1, 32'd1};
8: data = {1'b0, 32'd1};
9: data = {1'b1, 32'd1};
10: data = {1'b0, 32'd1};
11: data = {1'b1, 32'd1};
12: data = {1'b0, 32'd1};
13: data = {1'b1, 32'd1};
14: data = {1'b0, 32'd1};
15: data = {1'b1, 32'd1};
16: data = {1'b0, 32'd1};
17: data = {1'b1, 32'd1};
18: data = {1'b0, 32'd1};
19: data = {1'b1, 32'd1};
20: data = {1'b0, 32'd1};
21: data = {1'b1, 32'd1};
22: data = {1'b0, 32'd1};
23: data = {1'b1, 32'd1};
24: data = {1'b0, 32'd1};
25: data = {1'b1, 32'd1};
26: data = {1'b0, 32'd1};
27: data = {1'b1, 32'd1};
28: data = {1'b0, 32'd1};
29: data = {1'b1, 32'd1};
30: data = {1'b0, 32'd1};
31: data = {1'b1, 32'd1};
32: data = {1'b0, 32'd1};
33: data = {1'b1, 32'd1};
34: data = {1'b0, 32'd1};
35: data = {1'b1, 32'd1};
36: data = {1'b0, 32'd1};
37: data = {1'b1, 32'd1};
38: data = {1'b0, 32'd1};
39: data = {1'b1, 32'd1};
40: data = {1'b0, 32'd1};
41: data = {1'b1, 32'd1};
42: data = {1'b0, 32'd1};
43: data = {1'b1, 32'd1};
44: data = {1'b0, 32'd1};
45: data = {1'b1, 32'd1};
46: data = {1'b0, 32'd1};
47: data = {1'b1, 32'd1};
48: data = {1'b0, 32'd1};
49: data = {1'b1, 32'd1};
default: data = {1'b0, {TICKS_WIDTH{1'b0}}};
endcase
end
endmodule