File: t_case_unique_many.v

package info (click to toggle)
verilator 5.038-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 162,552 kB
  • sloc: cpp: 139,204; python: 20,931; ansic: 10,222; yacc: 6,000; lex: 1,925; makefile: 1,260; sh: 494; perl: 282; fortran: 22
file content (329 lines) | stat: -rw-r--r-- 11,901 bytes parent folder | download | duplicates (2)
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
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2024 by Varun Koyyalagunta, Tenstorrent.
// SPDX-License-Identifier: CC0-1.0

module t (/*AUTOARG*/);

    localparam W = 23;

    localparam [W-1:0] R0 = W'('h200000 + 0);
    localparam [W-1:0] R1 = W'('h200000 + 1);
    localparam [W-1:0] R2 = W'('h200000 + 2);
    localparam [W-1:0] R3 = W'('h200000 + 3);
    localparam [W-1:0] R4 = W'('h200000 + 4);
    localparam [W-1:0] R5 = W'('h200000 + 5);
    localparam [W-1:0] R6 = W'('h200000 + 6);
    localparam [W-1:0] R7 = W'('h200000 + 7);
    localparam [W-1:0] R8 = W'('h200000 + 8);
    localparam [W-1:0] R9 = W'('h200000 + 9);
    localparam [W-1:0] R10 = W'('h200000 + 10);
    localparam [W-1:0] R11 = W'('h200000 + 11);
    localparam [W-1:0] R12 = W'('h200000 + 12);
    localparam [W-1:0] R13 = W'('h200000 + 13);
    localparam [W-1:0] R14 = W'('h200000 + 14);
    localparam [W-1:0] R15 = W'('h200000 + 15);
    localparam [W-1:0] R16 = W'('h200000 + 16);
    localparam [W-1:0] R17 = W'('h200000 + 17);
    localparam [W-1:0] R18 = W'('h200000 + 18);
    localparam [W-1:0] R19 = W'('h200000 + 19);
    localparam [W-1:0] R20 = W'('h200000 + 20);
    localparam [W-1:0] R21 = W'('h200000 + 21);
    localparam [W-1:0] R22 = W'('h200000 + 22);
    localparam [W-1:0] R23 = W'('h200000 + 23);
    localparam [W-1:0] R24 = W'('h200000 + 24);
    localparam [W-1:0] R25 = W'('h200000 + 25);
    localparam [W-1:0] R26 = W'('h200000 + 26);
    localparam [W-1:0] R27 = W'('h200000 + 27);
    localparam [W-1:0] R28 = W'('h200000 + 28);
    localparam [W-1:0] R29 = W'('h200000 + 29);
    localparam [W-1:0] R30 = W'('h200000 + 30);
    localparam [W-1:0] R31 = W'('h200000 + 31);
    localparam [W-1:0] R32 = W'('h200000 + 32);
    localparam [W-1:0] R33 = W'('h200000 + 33);
    localparam [W-1:0] R34 = W'('h200000 + 34);
    localparam [W-1:0] R35 = W'('h200000 + 35);
    localparam [W-1:0] R36 = W'('h200000 + 36);
    localparam [W-1:0] R37 = W'('h200000 + 37);
    localparam [W-1:0] R38 = W'('h200000 + 38);
    localparam [W-1:0] R39 = W'('h200000 + 39);
    localparam [W-1:0] R40 = W'('h200000 + 40);
    localparam [W-1:0] R41 = W'('h200000 + 41);
    localparam [W-1:0] R42 = W'('h200000 + 42);
    localparam [W-1:0] R43 = W'('h200000 + 43);
    localparam [W-1:0] R44 = W'('h200000 + 44);
    localparam [W-1:0] R45 = W'('h200000 + 45);
    localparam [W-1:0] R46 = W'('h200000 + 46);
    localparam [W-1:0] R47 = W'('h200000 + 47);
    localparam [W-1:0] R48 = W'('h200000 + 48);
    localparam [W-1:0] R49 = W'('h200000 + 49);
    localparam [W-1:0] R50 = W'('h200000 + 50);
    localparam [W-1:0] R51 = W'('h200000 + 51);
    localparam [W-1:0] R52 = W'('h200000 + 52);
    localparam [W-1:0] R53 = W'('h200000 + 53);
    localparam [W-1:0] R54 = W'('h200000 + 54);
    localparam [W-1:0] R55 = W'('h200000 + 55);
    localparam [W-1:0] R56 = W'('h200000 + 56);
    localparam [W-1:0] R57 = W'('h200000 + 57);
    localparam [W-1:0] R58 = W'('h200000 + 58);
    localparam [W-1:0] R59 = W'('h200000 + 59);
    localparam [W-1:0] R60 = W'('h200000 + 60);
    localparam [W-1:0] R61 = W'('h200000 + 61);
    localparam [W-1:0] R62 = W'('h200000 + 62);
    localparam [W-1:0] R63 = W'('h200000 + 63);
    localparam [W-1:0] R64 = W'('h200000 + 64);
    localparam [W-1:0] R65 = W'('h200000 + 65);
    localparam [W-1:0] R66 = W'('h200000 + 66);
    localparam [W-1:0] R67 = W'('h200000 + 67);
    localparam [W-1:0] R68 = W'('h200000 + 68);
    localparam [W-1:0] R69 = W'('h200000 + 69);
    localparam [W-1:0] R70 = W'('h200000 + 70);
    localparam [W-1:0] R71 = W'('h200000 + 71);
    localparam [W-1:0] R72 = W'('h200000 + 72);
    localparam [W-1:0] R73 = W'('h200000 + 73);
    localparam [W-1:0] R74 = W'('h200000 + 74);
    localparam [W-1:0] R75 = W'('h200000 + 75);
    localparam [W-1:0] R76 = W'('h200000 + 76);
    localparam [W-1:0] R77 = W'('h200000 + 77);
    localparam [W-1:0] R78 = W'('h200000 + 78);
    localparam [W-1:0] R79 = W'('h200000 + 79);
    localparam [W-1:0] R80 = W'('h200000 + 80);
    localparam [W-1:0] R81 = W'('h200000 + 81);
    localparam [W-1:0] R82 = W'('h200000 + 82);
    localparam [W-1:0] R83 = W'('h200000 + 83);
    localparam [W-1:0] R84 = W'('h200000 + 84);
    localparam [W-1:0] R85 = W'('h200000 + 85);
    localparam [W-1:0] R86 = W'('h200000 + 86);
    localparam [W-1:0] R87 = W'('h200000 + 87);
    localparam [W-1:0] R88 = W'('h200000 + 88);
    localparam [W-1:0] R89 = W'('h200000 + 89);
    localparam [W-1:0] R90 = W'('h200000 + 90);
    localparam [W-1:0] R91 = W'('h200000 + 91);
    localparam [W-1:0] R92 = W'('h200000 + 92);
    localparam [W-1:0] R93 = W'('h200000 + 93);
    localparam [W-1:0] R94 = W'('h200000 + 94);
    localparam [W-1:0] R95 = W'('h200000 + 95);
    localparam [W-1:0] R96 = W'('h200000 + 96);
    localparam [W-1:0] R97 = W'('h200000 + 97);
    localparam [W-1:0] R98 = W'('h200000 + 98);
    localparam [W-1:0] R99 = W'('h200000 + 99);
    typedef struct packed {
        logic  r0;
        logic  r1;
        logic  r2;
        logic  r3;
        logic  r4;
        logic  r5;
        logic  r6;
        logic  r7;
        logic  r8;
        logic  r9;
        logic  r10;
        logic  r11;
        logic  r12;
        logic  r13;
        logic  r14;
        logic  r15;
        logic  r16;
        logic  r17;
        logic  r18;
        logic  r19;
        logic  r20;
        logic  r21;
        logic  r22;
        logic  r23;
        logic  r24;
        logic  r25;
        logic  r26;
        logic  r27;
        logic  r28;
        logic  r29;
        logic  r30;
        logic  r31;
        logic  r32;
        logic  r33;
        logic  r34;
        logic  r35;
        logic  r36;
        logic  r37;
        logic  r38;
        logic  r39;
        logic  r40;
        logic  r41;
        logic  r42;
        logic  r43;
        logic  r44;
        logic  r45;
        logic  r46;
        logic  r47;
        logic  r48;
        logic  r49;
        logic  r50;
        logic  r51;
        logic  r52;
        logic  r53;
        logic  r54;
        logic  r55;
        logic  r56;
        logic  r57;
        logic  r58;
        logic  r59;
        logic  r60;
        logic  r61;
        logic  r62;
        logic  r63;
        logic  r64;
        logic  r65;
        logic  r66;
        logic  r67;
        logic  r68;
        logic  r69;
        logic  r70;
        logic  r71;
        logic  r72;
        logic  r73;
        logic  r74;
        logic  r75;
        logic  r76;
        logic  r77;
        logic  r78;
        logic  r79;
        logic  r80;
        logic  r81;
        logic  r82;
        logic  r83;
        logic  r84;
        logic  r85;
        logic  r86;
        logic  r87;
        logic  r88;
        logic  r89;
        logic  r90;
        logic  r91;
        logic  r92;
        logic  r93;
        logic  r94;
        logic  r95;
        logic  r96;
        logic  r97;
        logic  r98;
        logic  r99;
    } hit_t;
    function automatic hit_t get_hit(input logic [22:0] a);
        hit_t hit = '0;
        unique case (a)
            R0 : begin hit.r0 = 1'b1; end
            R1 : begin hit.r1 = 1'b1; end
            R2 : begin hit.r2 = 1'b1; end
            R3 : begin hit.r3 = 1'b1; end
            R4 : begin hit.r4 = 1'b1; end
            R5 : begin hit.r5 = 1'b1; end
            R6 : begin hit.r6 = 1'b1; end
            R7 : begin hit.r7 = 1'b1; end
            R8 : begin hit.r8 = 1'b1; end
            R9 : begin hit.r9 = 1'b1; end
            R10 : begin hit.r10 = 1'b1; end
            R11 : begin hit.r11 = 1'b1; end
            R12 : begin hit.r12 = 1'b1; end
            R13 : begin hit.r13 = 1'b1; end
            R14 : begin hit.r14 = 1'b1; end
            R15 : begin hit.r15 = 1'b1; end
            R16 : begin hit.r16 = 1'b1; end
            R17 : begin hit.r17 = 1'b1; end
            R18 : begin hit.r18 = 1'b1; end
            R19 : begin hit.r19 = 1'b1; end
            R20 : begin hit.r20 = 1'b1; end
            R21 : begin hit.r21 = 1'b1; end
            R22 : begin hit.r22 = 1'b1; end
            R23 : begin hit.r23 = 1'b1; end
            R24 : begin hit.r24 = 1'b1; end
            R25 : begin hit.r25 = 1'b1; end
            R26 : begin hit.r26 = 1'b1; end
            R27 : begin hit.r27 = 1'b1; end
            R28 : begin hit.r28 = 1'b1; end
            R29 : begin hit.r29 = 1'b1; end
            R30 : begin hit.r30 = 1'b1; end
            R31 : begin hit.r31 = 1'b1; end
            R32 : begin hit.r32 = 1'b1; end
            R33 : begin hit.r33 = 1'b1; end
            R34 : begin hit.r34 = 1'b1; end
            R35 : begin hit.r35 = 1'b1; end
            R36 : begin hit.r36 = 1'b1; end
            R37 : begin hit.r37 = 1'b1; end
            R38 : begin hit.r38 = 1'b1; end
            R39 : begin hit.r39 = 1'b1; end
            R40 : begin hit.r40 = 1'b1; end
            R41 : begin hit.r41 = 1'b1; end
            R42 : begin hit.r42 = 1'b1; end
            R43 : begin hit.r43 = 1'b1; end
            R44 : begin hit.r44 = 1'b1; end
            R45 : begin hit.r45 = 1'b1; end
            R46 : begin hit.r46 = 1'b1; end
            R47 : begin hit.r47 = 1'b1; end
            R48 : begin hit.r48 = 1'b1; end
            R49 : begin hit.r49 = 1'b1; end
            R50 : begin hit.r50 = 1'b1; end
            R51 : begin hit.r51 = 1'b1; end
            R52 : begin hit.r52 = 1'b1; end
            R53 : begin hit.r53 = 1'b1; end
            R54 : begin hit.r54 = 1'b1; end
            R55 : begin hit.r55 = 1'b1; end
            R56 : begin hit.r56 = 1'b1; end
            R57 : begin hit.r57 = 1'b1; end
            R58 : begin hit.r58 = 1'b1; end
            R59 : begin hit.r59 = 1'b1; end
            R60 : begin hit.r60 = 1'b1; end
            R61 : begin hit.r61 = 1'b1; end
            R62 : begin hit.r62 = 1'b1; end
            R63 : begin hit.r63 = 1'b1; end
            R64 : begin hit.r64 = 1'b1; end
            R65 : begin hit.r65 = 1'b1; end
            R66 : begin hit.r66 = 1'b1; end
            R67 : begin hit.r67 = 1'b1; end
            R68 : begin hit.r68 = 1'b1; end
            R69 : begin hit.r69 = 1'b1; end
            R70 : begin hit.r70 = 1'b1; end
            R71 : begin hit.r71 = 1'b1; end
            R72 : begin hit.r72 = 1'b1; end
            R73 : begin hit.r73 = 1'b1; end
            R74 : begin hit.r74 = 1'b1; end
            R75 : begin hit.r75 = 1'b1; end
            R76 : begin hit.r76 = 1'b1; end
            R77 : begin hit.r77 = 1'b1; end
            R78 : begin hit.r78 = 1'b1; end
            R79 : begin hit.r79 = 1'b1; end
            R80 : begin hit.r80 = 1'b1; end
            R81 : begin hit.r81 = 1'b1; end
            R82 : begin hit.r82 = 1'b1; end
            R83 : begin hit.r83 = 1'b1; end
            R84 : begin hit.r84 = 1'b1; end
            R85 : begin hit.r85 = 1'b1; end
            R86 : begin hit.r86 = 1'b1; end
            R87 : begin hit.r87 = 1'b1; end
            R88 : begin hit.r88 = 1'b1; end
            R89 : begin hit.r89 = 1'b1; end
            R90 : begin hit.r90 = 1'b1; end
            R91 : begin hit.r91 = 1'b1; end
            R92 : begin hit.r92 = 1'b1; end
            R93 : begin hit.r93 = 1'b1; end
            R94 : begin hit.r94 = 1'b1; end
            R95 : begin hit.r95 = 1'b1; end
            R96 : begin hit.r96 = 1'b1; end
            R97 : begin hit.r97 = 1'b1; end
            R98 : begin hit.r98 = 1'b1; end
            R99 : begin hit.r99 = 1'b1; end
           default: begin hit = '0; end
       endcase
       return hit;
    endfunction

   initial begin
      if (get_hit(R30) !== hit_t'{r30: 1'b1, default: '0}) $stop;
      if (get_hit('1) !== '0) $stop;
      if (get_hit('0) !== '0) $stop;
      $write("*-* All Finished *-*\n");
      $finish;
   end

endmodule