-
Notifications
You must be signed in to change notification settings - Fork 0
/
shark_rom.v
305 lines (280 loc) · 23.8 KB
/
shark_rom.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
module shark_rom #(parameter WIDTH = 40,
parameter HEIGHT = 20,
parameter LOG_FRAMES = 3)
(input [5:0] x,
input [4:0] y,
input [2:0] s_type,
input [LOG_FRAMES-1:0] frame,
output reg [11:0] pixel);
reg[WIDTH*12-1:0] horiz; //a horizontal strip of pixels
//selects the correct pixel from the horizontal strip
always @(x, horiz) begin
pixel = (horiz >> (x*12));
//pixel = (horiz >> (WIDTH * 12 - x*12 - 12));
//[WIDTH*12-1-x*12:WIDTH*12-13-x*12];
end
//for current y and frame, return the corresponding pixel strip
always @(y, frame) begin
if (s_type == 1) begin //if shark collectable
casex({frame,y})
8'b00x_00000: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_688_688_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b00x_00001: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_688_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_688_000_000;
8'b00x_00010: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_244_688_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_acc_688_000;
8'b00x_00011: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_244_244_688_000_000_000_000_000_000_000_000_000_000_000_000_244_acc_acc_acc_000;
8'b00x_00100: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_222_244_244_244_244_244_244_000_000_000_000_222_244_222_244_244_acc_acc_acc_acc_000;
8'b00x_00101: horiz=480'h_000_244_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_244_244_244_244_244_244_244_244_222_244_244_622_244_244_688_acc_acc_acc_688_000;
8'b00x_00110: horiz=480'h_000_244_244_244_000_000_000_000_000_000_000_000_000_000_000_244_244_acc_688_244_244_244_244_244_244_244_244_244_244_244_ea8_244_688_acc_acc_e22_e22_e22_e22_000;
8'b00x_00111: horiz=480'h_000_000_244_244_244_000_000_000_000_000_000_000_000_000_244_688_688_244_244_244_244_244_244_244_244_244_244_244_244_222_688_acc_acc_e22_e22_e22_e82_e82_e82_000;
8'b00x_01000: horiz=480'h_000_000_688_688_244_244_000_000_000_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_688_acc_acc_e22_e82_eee_eee_eee_eee_eee_eee_000;
8'b00x_01001: horiz=480'h_000_000_000_000_000_244_244_000_000_000_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_688_688_acc_eee_eee_eee_eee_eee_eee_622_622_eee_acc_ea8;
8'b00x_01010: horiz=480'h_000_000_000_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_222_222_244_688_688_acc_eee_eee_222_eee_622_622_eee_622_622_622_eee_000;
8'b00x_01011: horiz=480'h_000_000_000_000_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_688_688_222_688_acc_222_222_222_222_222_622_622_622_622_622_acc_eee_000;
8'b00x_01100: horiz=480'h_000_000_000_000_244_244_244_244_688_244_244_244_244_244_244_244_244_244_244_244_244_244_244_688_688_acc_e22_e22_222_222_222_622_642_622_622_622_acc_eee_000_000;
8'b00x_01101: horiz=480'h_000_000_000_244_244_244_688_000_000_000_688_244_244_244_244_244_244_244_244_244_244_244_222_222_244_acc_e22_eee_e22_ea8_e22_622_622_622_622_acc_eee_000_000_000;
8'b00x_01110: horiz=480'h_000_000_000_244_244_000_000_000_000_244_244_688_688_acc_acc_688_688_688_244_244_688_244_244_688_688_688_acc_eee_eee_e22_622_e22_e22_622_e22_eee_000_000_000_000;
8'b00x_01111: horiz=480'h_000_000_244_244_000_000_000_000_688_688_000_000_000_688_acc_acc_acc_acc_acc_688_244_244_244_688_acc_acc_acc_eee_eee_e22_eee_e22_e22_622_e22_acc_eee_000_000_000;
8'b00x_10000: horiz=480'h_000_000_688_000_000_000_000_000_000_000_000_000_000_000_000_688_acc_acc_acc_244_244_244_688_acc_acc_acc_acc_e22_acc_eee_eee_e22_e22_e22_622_622_acc_acc_000_000;
8'b00x_10001: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_688_244_244_688_acc_acc_acc_acc_688_acc_e22_eee_eee_eee_eee_e22_622_ea8_acc_eee_000_000;
8'b00x_10010: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_688_000_000_000_000_000_688_688_688_acc_e82_e22_eee_eee_eee_eee_eee_eee_000_000_000;
8'b00x_10011: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_688_000_000_000_000_000_000_000_000_000_000_000_688_622_e82_e82_e22_e22_e22_000_000_000_000;
8'b01x_00000: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_688_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b01x_00001: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_688_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b01x_00010: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_244_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b01x_00011: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_244_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b01x_00100: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_244_244_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b01x_00101: horiz=480'h_244_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_244_244_244_244_244_244_244_000_000_000_000_000_000_000_000_000_000_000_000;
8'b01x_00110: horiz=480'h_000_244_244_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_688_244_244_244_244_244_244_244_244_244_244_244_000_000_000_000_000_000_000_000_000_000;
8'b01x_00111: horiz=480'h_000_000_244_244_000_000_000_000_000_000_000_000_000_000_244_244_acc_688_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_000_000_000_000_000_000_000;
8'b01x_01000: horiz=480'h_000_000_244_244_244_000_000_000_000_244_000_000_244_244_244_688_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_222_244_688_244_000_000_000;
8'b01x_01001: horiz=480'h_000_000_000_000_688_244_000_000_000_000_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_222_222_688_222_244_244_244_244_000;
8'b01x_01010: horiz=480'h_000_000_000_244_244_244_244_244_000_000_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_222_222_ea8_e82_244_244_244_244_244_688;
8'b01x_01011: horiz=480'h_000_000_000_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_688_222_244_222_244_244_acc_acc_688_244_244_688_688_acc_acc_acc_688;
8'b01x_01100: horiz=480'h_000_000_000_000_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_688_222_244_688_acc_688_688_688_acc_acc_acc_acc_acc_acc_688_000;
8'b01x_01101: horiz=480'h_000_000_000_244_244_244_244_688_000_688_244_244_244_244_244_244_244_244_244_244_244_244_244_222_244_244_acc_688_acc_eee_eee_ea8_e22_688_688_688_688_eee_eee_000;
8'b01x_01110: horiz=480'h_000_000_000_244_244_688_000_000_000_000_244_244_688_688_244_244_244_244_244_244_244_244_244_244_222_acc_eee_e22_e22_e22_eee_e22_e22_eee_eee_acc_acc_000_000_000;
8'b01x_01111: horiz=480'h_000_000_000_244_688_000_000_000_000_244_688_000_000_acc_acc_acc_acc_acc_acc_688_244_244_244_244_acc_acc_eee_eee_e22_e22_acc_e22_eee_000_000_000_000_000_000_000;
8'b01x_10000: horiz=480'h_000_000_244_688_000_000_000_000_000_000_000_000_000_000_688_acc_acc_acc_acc_244_244_244_244_688_acc_acc_acc_eee_eee_e22_e22_e22_eee_eee_000_000_000_000_000_000;
8'b01x_10001: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_688_acc_688_244_244_244_688_acc_acc_acc_688_acc_622_eee_eee_e22_eee_000_000_000_000_000_000_000;
8'b01x_10010: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_688_688_688_688_688_688_acc_acc_acc_622_acc_eee_eee_000_000_000_000_000_000_000;
8'b01x_10011: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_688_000_000_000_000_000_000_000_000_000_688_688_acc_acc_688_000_000_000_000_000_000_000;
8'b1xx_00000: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_688_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b1xx_00001: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b1xx_00010: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_244_688_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b1xx_00011: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_244_688_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b1xx_00100: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_244_244_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b1xx_00101: horiz=480'h_244_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_222_244_244_244_244_244_244_244_244_244_000_000_000_000_000_000_000_000_000_000_000_000;
8'b1xx_00110: horiz=480'h_000_244_244_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_688_244_244_244_244_244_244_244_244_244_244_244_000_000_000_000_000_000_000_000_000_000;
8'b1xx_00111: horiz=480'h_000_000_244_244_000_000_000_000_000_000_000_000_000_000_244_244_acc_688_244_244_244_244_244_244_244_244_244_244_244_244_244_244_000_000_000_000_000_000_000_000;
8'b1xx_01000: horiz=480'h_000_000_244_244_244_000_000_000_000_244_000_000_244_244_244_688_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_000_000_000_000_000_000_000;
8'b1xx_01001: horiz=480'h_000_000_000_000_688_244_244_000_000_000_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_000_000_000_000_000;
8'b1xx_01010: horiz=480'h_000_000_000_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_688_222_244_244_000_000_000_000;
8'b1xx_01011: horiz=480'h_000_000_000_000_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_222_688_244_222_244_244_222_688_688_244_688_000_000_000;
8'b1xx_01100: horiz=480'h_000_000_000_000_244_244_244_244_688_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_244_222_688_244_244_688_244_ea8_e82_222_244_244_244_000;
8'b1xx_01101: horiz=480'h_000_000_000_244_244_688_000_000_000_000_244_244_688_688_244_244_244_244_244_244_244_244_244_244_244_244_244_222_244_688_acc_eee_eee_acc_acc_688_688_688_acc_688;
8'b1xx_01110: horiz=480'h_000_000_000_244_688_000_000_000_000_244_688_000_000_acc_acc_acc_acc_acc_acc_688_244_244_244_244_244_244_688_688_688_acc_acc_acc_ec4_eee_eee_acc_acc_688_688_000;
8'b1xx_01111: horiz=480'h_000_000_244_688_000_000_000_000_000_000_000_000_000_000_688_acc_acc_acc_acc_244_244_244_244_244_244_acc_acc_acc_acc_acc_acc_acc_acc_acc_acc_000_000_000_000_000;
8'b1xx_10000: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_688_688_688_244_244_244_244_688_acc_acc_acc_acc_acc_688_688_acc_acc_000_000_000_000_000_000_000;
8'b1xx_10001: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_244_244_688_acc_acc_acc_acc_acc_acc_acc_688_000_000_000_000_000_000_000_000_000_000;
8'b1xx_10010: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_244_688_688_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
8'b1xx_10011: horiz=480'h_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000_000;
default: horiz = 0;//480'h_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00_F00;
endcase
end
else begin
horiz = 0;
end
end
endmodule
module heart_rom #(parameter WIDTH = 40,
parameter HEIGHT = 40,
LG_SCALE=2,
parameter LOG_FRAMES = 1)
(input [10:0] x,
input [9:0] y,
input [2:0] s_type,
input [LOG_FRAMES-1:0] frame,
output reg [11:0] pixel);
reg[(WIDTH>>LG_SCALE)*12-1:0] horiz; //a horizontal strip of pixels with scaling
//selects the correct pixel from the horizontal strip
always @(x, horiz) begin
pixel = horiz >> (((WIDTH - x)>>LG_SCALE)*12 - 12);
//[WIDTH*12-1-x*12:WIDTH*12-13-x*12];
end
//for current y and frame, return the corresponding pixel strip
always @(y, frame) begin
casex({frame,y[LG_SCALE+3:LG_SCALE]})
5'b0_0000: horiz=120'h_000_222_222_222_000_000_222_222_222_000;
5'b0_0001: horiz=120'h_222_733_a23_b23_222_322_a23_b23_633_222;
5'b0_0010: horiz=120'h_122_923_b22_b22_221_311_b22_b22_823_122;
5'b0_0011: horiz=120'h_122_923_b22_b22_b22_b22_b22_b22_823_122;
5'b0_0100: horiz=120'h_122_923_b22_b22_b22_b22_b22_b22_823_212;
5'b0_0101: horiz=120'h_121_823_923_b22_b22_b22_b22_933_623_211;
5'b0_0110: horiz=120'h_000_222_221_c12_b22_c12_c12_221_222_000;
5'b0_0111: horiz=120'h_000_000_000_212_b23_a23_122_000_000_000;
5'b0_1000: horiz=120'h_000_000_000_ccc_411_412_ccc_000_000_000;
5'b0_1001: horiz=120'h_000_000_000_000_211_222_000_000_000_000;
5'b1_0000: horiz=120'h_000_112_222_222_000_000_222_222_555_000;
5'b1_0001: horiz=120'h_222_ccc_ccc_bbb_222_222_ccc_ccc_666_222;
5'b1_0010: horiz=120'h_222_999_000_000_222_222_000_000_999_222;
5'b1_0011: horiz=120'h_222_000_000_000_000_000_000_000_999_222;
5'b1_0100: horiz=120'h_222_000_000_000_000_000_000_000_999_222;
5'b1_0101: horiz=120'h_222_000_000_000_000_000_000_000_999_222;
5'b1_0110: horiz=120'h_000_222_222_000_000_000_000_222_555_000;
5'b1_0111: horiz=120'h_000_000_000_222_000_000_222_000_000_000;
5'b1_1000: horiz=120'h_000_000_000_222_000_000_222_000_000_000;
5'b1_1001: horiz=120'h_000_000_000_000_222_222_000_000_000_000;
default: horiz=0;
endcase
end
endmodule
module number_rom #(parameter WIDTH = 20,
parameter HEIGHT = 25,
LG_SCALE=1,
parameter LOG_FRAMES = 4)
(input [10:0] x,
input [9:0] y,
input [LOG_FRAMES-1:0] frame, //frame corresponds to digit
output reg [11:0] pixel);
reg[(WIDTH>>LG_SCALE)*12-1:0] horiz; //a horizontal strip of pixels with scaling
//selects the correct pixel from the horizontal strip
always @(x, horiz) begin
pixel = horiz >> (((WIDTH - x)>>LG_SCALE)*12 - 12);
//[WIDTH*12-1-x*12:WIDTH*12-13-x*12];
end
//for current y and frame, return the corresponding pixel strip
always @(y, frame) begin
casex({frame,y[LG_SCALE+3:LG_SCALE]})
9'b0000_0000: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0000_0001: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0000_0010: horiz=108'h_000_111_111_000_000_000_111_111_111;
9'b0000_0011: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0000_0100: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0000_0101: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0000_0110: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0000_0111: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0000_1000: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0000_1001: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0000_1010: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0000_1011: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0000_1100: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0001_0000: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0001_0001: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0001_0010: horiz=108'h_000_000_000_000_000_111_111_111_000;
9'b0001_0011: horiz=108'h_000_000_000_111_111_111_111_111_000;
9'b0001_0100: horiz=108'h_000_000_000_111_111_000_111_111_000;
9'b0001_0101: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0001_0110: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0001_0111: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0001_1000: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0001_1001: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0001_1010: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0001_1011: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0001_1100: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0010_0000: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0010_0001: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0010_0010: horiz=108'h_000_111_111_000_000_000_111_111_111;
9'b0010_0011: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0010_0100: horiz=108'h_000_000_000_000_000_000_000_111_111;
9'b0010_0101: horiz=108'h_000_000_000_000_000_111_111_000_000;
9'b0010_0110: horiz=108'h_000_000_000_000_111_111_111_000_000;
9'b0010_0111: horiz=108'h_000_000_000_000_111_000_000_000_000;
9'b0010_1000: horiz=108'h_000_000_111_111_000_000_000_000_000;
9'b0010_1001: horiz=108'h_000_111_111_111_000_000_000_000_000;
9'b0010_1010: horiz=108'h_000_111_000_000_000_000_000_000_000;
9'b0010_1011: horiz=108'h_000_111_111_111_111_111_111_111_111;
9'b0010_1100: horiz=108'h_000_111_111_111_111_111_111_111_000;
9'b0011_0000: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0011_0001: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0011_0010: horiz=108'h_000_111_111_000_000_000_111_111_111;
9'b0011_0011: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0011_0100: horiz=108'h_000_000_000_000_000_000_000_111_111;
9'b0011_0101: horiz=108'h_000_000_000_000_111_111_111_000_000;
9'b0011_0110: horiz=108'h_000_000_000_000_111_111_111_111_000;
9'b0011_0111: horiz=108'h_000_000_000_000_000_000_000_111_111;
9'b0011_1000: horiz=108'h_000_000_000_000_000_000_000_111_111;
9'b0011_1001: horiz=108'h_000_111_000_000_000_000_000_111_111;
9'b0011_1010: horiz=108'h_000_111_000_000_000_000_000_111_111;
9'b0011_1011: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0011_1100: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0100_0000: horiz=108'h_000_000_000_000_000_000_111_000_000;
9'b0100_0001: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0100_0010: horiz=108'h_000_000_000_000_111_111_111_111_000;
9'b0100_0011: horiz=108'h_000_000_000_111_111_111_111_111_000;
9'b0100_0100: horiz=108'h_000_000_000_111_111_000_111_111_000;
9'b0100_0101: horiz=108'h_000_111_111_000_000_000_111_111_000;
9'b0100_0110: horiz=108'h_111_111_111_000_000_000_111_111_000;
9'b0100_0111: horiz=108'h_111_000_000_000_000_000_111_000_000;
9'b0100_1000: horiz=108'h_111_111_111_111_111_111_111_111_111;
9'b0100_1001: horiz=108'h_111_111_111_111_111_111_111_111_111;
9'b0100_1010: horiz=108'h_000_000_000_000_000_000_111_000_000;
9'b0100_1011: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0100_1100: horiz=108'h_000_000_000_000_000_000_111_111_000;
9'b0101_0000: horiz=108'h_000_111_111_111_111_111_111_111_000;
9'b0101_0001: horiz=108'h_000_111_111_111_111_111_111_111_111;
9'b0101_0010: horiz=108'h_000_111_111_000_000_000_000_000_000;
9'b0101_0011: horiz=108'h_000_111_111_000_000_000_000_000_000;
9'b0101_0100: horiz=108'h_000_111_000_000_000_000_000_000_000;
9'b0101_0101: horiz=108'h_000_111_111_111_111_111_111_000_000;
9'b0101_0110: horiz=108'h_000_111_111_111_111_111_111_111_000;
9'b0101_0111: horiz=108'h_000_000_000_000_000_000_000_111_111;
9'b0101_1000: horiz=108'h_000_000_000_000_000_000_000_111_111;
9'b0101_1001: horiz=108'h_000_111_000_000_000_000_000_111_111;
9'b0101_1010: horiz=108'h_000_111_000_000_000_000_000_111_111;
9'b0101_1011: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0101_1100: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0110_0000: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0110_0001: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0110_0010: horiz=108'h_000_111_111_000_000_000_111_111_111;
9'b0110_0011: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0110_0100: horiz=108'h_000_111_111_000_000_000_000_000_000;
9'b0110_0101: horiz=108'h_000_111_111_000_111_111_111_000_000;
9'b0110_0110: horiz=108'h_000_111_111_111_111_111_111_111_000;
9'b0110_0111: horiz=108'h_000_111_111_111_000_000_000_111_111;
9'b0110_1000: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0110_1001: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b0110_1010: horiz=108'h_000_111_000_000_000_000_000_111_111;
9'b0110_1011: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0110_1100: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b0111_0000: horiz=108'h_000_111_111_111_111_111_111_111_000;
9'b0111_0001: horiz=108'h_000_111_111_111_111_111_111_111_111;
9'b0111_0010: horiz=108'h_000_000_000_000_000_000_111_111_111;
9'b0111_0011: horiz=108'h_000_000_000_000_000_000_000_111_111;
9'b0111_0100: horiz=108'h_000_000_000_000_000_000_000_111_111;
9'b0111_0101: horiz=108'h_000_000_000_000_000_111_111_000_000;
9'b0111_0110: horiz=108'h_000_000_000_000_000_111_111_000_000;
9'b0111_0111: horiz=108'h_000_000_000_000_000_111_111_000_000;
9'b0111_1000: horiz=108'h_000_000_000_000_111_111_000_000_000;
9'b0111_1001: horiz=108'h_000_000_000_000_111_111_000_000_000;
9'b0111_1010: horiz=108'h_000_000_000_000_111_111_000_000_000;
9'b0111_1011: horiz=108'h_000_000_000_000_111_111_000_000_000;
9'b0111_1100: horiz=108'h_000_000_000_000_111_111_000_000_000;
9'b1000_0000: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b1000_0001: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b1000_0010: horiz=108'h_000_111_111_000_000_000_111_111_111;
9'b1000_0011: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b1000_0100: horiz=108'h_000_111_000_000_000_000_000_111_111;
9'b1000_0101: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b1000_0110: horiz=108'h_000_111_111_111_111_111_111_111_000;
9'b1000_0111: horiz=108'h_000_111_000_000_000_000_000_111_111;
9'b1000_1000: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b1000_1001: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b1000_1010: horiz=108'h_000_111_000_000_000_000_000_111_111;
9'b1000_1011: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b1000_1100: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b1001_0000: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b1001_0001: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b1001_0010: horiz=108'h_000_111_111_000_000_000_111_111_111;
9'b1001_0011: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b1001_0100: horiz=108'h_000_111_111_000_000_000_000_111_111;
9'b1001_0101: horiz=108'h_000_111_111_000_000_111_111_111_111;
9'b1001_0110: horiz=108'h_000_111_111_111_111_111_111_111_111;
9'b1001_0111: horiz=108'h_000_000_111_111_111_000_000_111_111;
9'b1001_1000: horiz=108'h_000_000_000_000_000_000_000_111_111;
9'b1001_1001: horiz=108'h_000_111_000_000_000_000_000_111_111;
9'b1001_1010: horiz=108'h_000_111_000_000_000_000_000_111_111;
9'b1001_1011: horiz=108'h_000_000_111_111_111_111_111_000_000;
9'b1001_1100: horiz=108'h_000_000_111_111_111_111_111_000_000;
default: horiz=108'h_F00_F00_F00_F00_F00_F00_F00_F00_F00;
endcase
end
endmodule