generated from chipsalliance/chisel-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CLOScell4.v
396 lines (396 loc) · 19.6 KB
/
CLOScell4.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
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
module CrossBarCell(
input [64:0] io_fw_left,
input [64:0] io_fw_top,
output [64:0] io_fw_bottom,
output [64:0] io_fw_right,
input io_sel
);
assign io_fw_bottom = io_sel ? io_fw_left : io_fw_top; // @[CrossBarSwitch.scala 15:17 CrossBarSwitch.scala 16:18 CrossBarSwitch.scala 18:18]
assign io_fw_right = io_fw_left; // @[CrossBarSwitch.scala 14:15]
endmodule
module CrossBarSwitch(
input clock,
input [64:0] io_fw_left_0,
input [64:0] io_fw_left_1,
input [64:0] io_fw_left_2,
input [64:0] io_fw_left_3,
output [64:0] io_fw_bottom_0,
output [64:0] io_fw_bottom_1,
output [64:0] io_fw_bottom_2,
output [64:0] io_fw_bottom_3,
input [1:0] io_select_0,
input [1:0] io_select_1,
input [1:0] io_select_2,
input [1:0] io_select_3
);
`ifdef RANDOMIZE_REG_INIT
reg [95:0] _RAND_0;
reg [95:0] _RAND_1;
reg [95:0] _RAND_2;
reg [95:0] _RAND_3;
`endif // RANDOMIZE_REG_INIT
wire [64:0] cells_2d_0_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_0_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_0_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_0_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_0_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_1_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_1_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_1_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_1_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_1_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_2_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_2_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_2_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_2_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_2_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_3_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_3_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_3_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_3_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_3_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_4_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_4_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_4_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_4_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_4_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_5_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_5_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_5_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_5_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_5_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_6_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_6_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_6_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_6_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_6_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_7_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_7_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_7_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_7_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_7_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_8_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_8_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_8_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_8_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_8_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_9_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_9_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_9_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_9_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_9_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_10_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_10_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_10_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_10_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_10_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_11_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_11_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_11_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_11_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_11_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_12_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_12_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_12_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_12_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_12_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_13_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_13_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_13_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_13_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_13_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_14_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_14_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_14_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_14_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_14_io_sel; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_15_io_fw_left; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_15_io_fw_top; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_15_io_fw_bottom; // @[CrossBarSwitch.scala 37:53]
wire [64:0] cells_2d_15_io_fw_right; // @[CrossBarSwitch.scala 37:53]
wire cells_2d_15_io_sel; // @[CrossBarSwitch.scala 37:53]
reg [64:0] fw_left_reg_0; // @[CrossBarSwitch.scala 33:28]
reg [64:0] fw_left_reg_1; // @[CrossBarSwitch.scala 33:28]
reg [64:0] fw_left_reg_2; // @[CrossBarSwitch.scala 33:28]
reg [64:0] fw_left_reg_3; // @[CrossBarSwitch.scala 33:28]
wire [3:0] select_onehot_0 = 4'h1 << io_select_0; // @[OneHot.scala 65:12]
wire [3:0] select_onehot_1 = 4'h1 << io_select_1; // @[OneHot.scala 65:12]
wire [3:0] select_onehot_2 = 4'h1 << io_select_2; // @[OneHot.scala 65:12]
wire [3:0] select_onehot_3 = 4'h1 << io_select_3; // @[OneHot.scala 65:12]
CrossBarCell cells_2d_0 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_0_io_fw_left),
.io_fw_top(cells_2d_0_io_fw_top),
.io_fw_bottom(cells_2d_0_io_fw_bottom),
.io_fw_right(cells_2d_0_io_fw_right),
.io_sel(cells_2d_0_io_sel)
);
CrossBarCell cells_2d_1 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_1_io_fw_left),
.io_fw_top(cells_2d_1_io_fw_top),
.io_fw_bottom(cells_2d_1_io_fw_bottom),
.io_fw_right(cells_2d_1_io_fw_right),
.io_sel(cells_2d_1_io_sel)
);
CrossBarCell cells_2d_2 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_2_io_fw_left),
.io_fw_top(cells_2d_2_io_fw_top),
.io_fw_bottom(cells_2d_2_io_fw_bottom),
.io_fw_right(cells_2d_2_io_fw_right),
.io_sel(cells_2d_2_io_sel)
);
CrossBarCell cells_2d_3 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_3_io_fw_left),
.io_fw_top(cells_2d_3_io_fw_top),
.io_fw_bottom(cells_2d_3_io_fw_bottom),
.io_fw_right(cells_2d_3_io_fw_right),
.io_sel(cells_2d_3_io_sel)
);
CrossBarCell cells_2d_4 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_4_io_fw_left),
.io_fw_top(cells_2d_4_io_fw_top),
.io_fw_bottom(cells_2d_4_io_fw_bottom),
.io_fw_right(cells_2d_4_io_fw_right),
.io_sel(cells_2d_4_io_sel)
);
CrossBarCell cells_2d_5 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_5_io_fw_left),
.io_fw_top(cells_2d_5_io_fw_top),
.io_fw_bottom(cells_2d_5_io_fw_bottom),
.io_fw_right(cells_2d_5_io_fw_right),
.io_sel(cells_2d_5_io_sel)
);
CrossBarCell cells_2d_6 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_6_io_fw_left),
.io_fw_top(cells_2d_6_io_fw_top),
.io_fw_bottom(cells_2d_6_io_fw_bottom),
.io_fw_right(cells_2d_6_io_fw_right),
.io_sel(cells_2d_6_io_sel)
);
CrossBarCell cells_2d_7 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_7_io_fw_left),
.io_fw_top(cells_2d_7_io_fw_top),
.io_fw_bottom(cells_2d_7_io_fw_bottom),
.io_fw_right(cells_2d_7_io_fw_right),
.io_sel(cells_2d_7_io_sel)
);
CrossBarCell cells_2d_8 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_8_io_fw_left),
.io_fw_top(cells_2d_8_io_fw_top),
.io_fw_bottom(cells_2d_8_io_fw_bottom),
.io_fw_right(cells_2d_8_io_fw_right),
.io_sel(cells_2d_8_io_sel)
);
CrossBarCell cells_2d_9 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_9_io_fw_left),
.io_fw_top(cells_2d_9_io_fw_top),
.io_fw_bottom(cells_2d_9_io_fw_bottom),
.io_fw_right(cells_2d_9_io_fw_right),
.io_sel(cells_2d_9_io_sel)
);
CrossBarCell cells_2d_10 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_10_io_fw_left),
.io_fw_top(cells_2d_10_io_fw_top),
.io_fw_bottom(cells_2d_10_io_fw_bottom),
.io_fw_right(cells_2d_10_io_fw_right),
.io_sel(cells_2d_10_io_sel)
);
CrossBarCell cells_2d_11 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_11_io_fw_left),
.io_fw_top(cells_2d_11_io_fw_top),
.io_fw_bottom(cells_2d_11_io_fw_bottom),
.io_fw_right(cells_2d_11_io_fw_right),
.io_sel(cells_2d_11_io_sel)
);
CrossBarCell cells_2d_12 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_12_io_fw_left),
.io_fw_top(cells_2d_12_io_fw_top),
.io_fw_bottom(cells_2d_12_io_fw_bottom),
.io_fw_right(cells_2d_12_io_fw_right),
.io_sel(cells_2d_12_io_sel)
);
CrossBarCell cells_2d_13 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_13_io_fw_left),
.io_fw_top(cells_2d_13_io_fw_top),
.io_fw_bottom(cells_2d_13_io_fw_bottom),
.io_fw_right(cells_2d_13_io_fw_right),
.io_sel(cells_2d_13_io_sel)
);
CrossBarCell cells_2d_14 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_14_io_fw_left),
.io_fw_top(cells_2d_14_io_fw_top),
.io_fw_bottom(cells_2d_14_io_fw_bottom),
.io_fw_right(cells_2d_14_io_fw_right),
.io_sel(cells_2d_14_io_sel)
);
CrossBarCell cells_2d_15 ( // @[CrossBarSwitch.scala 37:53]
.io_fw_left(cells_2d_15_io_fw_left),
.io_fw_top(cells_2d_15_io_fw_top),
.io_fw_bottom(cells_2d_15_io_fw_bottom),
.io_fw_right(cells_2d_15_io_fw_right),
.io_sel(cells_2d_15_io_sel)
);
assign io_fw_bottom_0 = cells_2d_12_io_fw_bottom; // @[CrossBarSwitch.scala 77:21]
assign io_fw_bottom_1 = cells_2d_13_io_fw_bottom; // @[CrossBarSwitch.scala 77:21]
assign io_fw_bottom_2 = cells_2d_14_io_fw_bottom; // @[CrossBarSwitch.scala 77:21]
assign io_fw_bottom_3 = cells_2d_15_io_fw_bottom; // @[CrossBarSwitch.scala 77:21]
assign cells_2d_0_io_fw_left = fw_left_reg_0; // @[CrossBarSwitch.scala 62:29]
assign cells_2d_0_io_fw_top = 65'h0; // @[CrossBarSwitch.scala 55:28]
assign cells_2d_0_io_sel = select_onehot_0[0]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_1_io_fw_left = cells_2d_0_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_1_io_fw_top = 65'h0; // @[CrossBarSwitch.scala 55:28]
assign cells_2d_1_io_sel = select_onehot_1[0]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_2_io_fw_left = cells_2d_1_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_2_io_fw_top = 65'h0; // @[CrossBarSwitch.scala 55:28]
assign cells_2d_2_io_sel = select_onehot_2[0]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_3_io_fw_left = cells_2d_2_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_3_io_fw_top = 65'h0; // @[CrossBarSwitch.scala 55:28]
assign cells_2d_3_io_sel = select_onehot_3[0]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_4_io_fw_left = fw_left_reg_1; // @[CrossBarSwitch.scala 62:29]
assign cells_2d_4_io_fw_top = cells_2d_0_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_4_io_sel = select_onehot_0[1]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_5_io_fw_left = cells_2d_4_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_5_io_fw_top = cells_2d_1_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_5_io_sel = select_onehot_1[1]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_6_io_fw_left = cells_2d_5_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_6_io_fw_top = cells_2d_2_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_6_io_sel = select_onehot_2[1]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_7_io_fw_left = cells_2d_6_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_7_io_fw_top = cells_2d_3_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_7_io_sel = select_onehot_3[1]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_8_io_fw_left = fw_left_reg_2; // @[CrossBarSwitch.scala 62:29]
assign cells_2d_8_io_fw_top = cells_2d_4_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_8_io_sel = select_onehot_0[2]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_9_io_fw_left = cells_2d_8_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_9_io_fw_top = cells_2d_5_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_9_io_sel = select_onehot_1[2]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_10_io_fw_left = cells_2d_9_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_10_io_fw_top = cells_2d_6_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_10_io_sel = select_onehot_2[2]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_11_io_fw_left = cells_2d_10_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_11_io_fw_top = cells_2d_7_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_11_io_sel = select_onehot_3[2]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_12_io_fw_left = fw_left_reg_3; // @[CrossBarSwitch.scala 62:29]
assign cells_2d_12_io_fw_top = cells_2d_8_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_12_io_sel = select_onehot_0[3]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_13_io_fw_left = cells_2d_12_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_13_io_fw_top = cells_2d_9_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_13_io_sel = select_onehot_1[3]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_14_io_fw_left = cells_2d_13_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_14_io_fw_top = cells_2d_10_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_14_io_sel = select_onehot_2[3]; // @[CrossBarSwitch.scala 70:44]
assign cells_2d_15_io_fw_left = cells_2d_14_io_fw_right; // @[CrossBarSwitch.scala 66:29]
assign cells_2d_15_io_fw_top = cells_2d_11_io_fw_bottom; // @[CrossBarSwitch.scala 58:28]
assign cells_2d_15_io_sel = select_onehot_3[3]; // @[CrossBarSwitch.scala 70:44]
always @(posedge clock) begin
fw_left_reg_0 <= io_fw_left_0; // @[CrossBarSwitch.scala 33:28]
fw_left_reg_1 <= io_fw_left_1; // @[CrossBarSwitch.scala 33:28]
fw_left_reg_2 <= io_fw_left_2; // @[CrossBarSwitch.scala 33:28]
fw_left_reg_3 <= io_fw_left_3; // @[CrossBarSwitch.scala 33:28]
end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
`ifdef RANDOMIZE
`ifdef INIT_RANDOM
`INIT_RANDOM
`endif
`ifndef VERILATOR
`ifdef RANDOMIZE_DELAY
#`RANDOMIZE_DELAY begin end
`else
#0.002 begin end
`endif
`endif
`ifdef RANDOMIZE_REG_INIT
_RAND_0 = {3{`RANDOM}};
fw_left_reg_0 = _RAND_0[64:0];
_RAND_1 = {3{`RANDOM}};
fw_left_reg_1 = _RAND_1[64:0];
_RAND_2 = {3{`RANDOM}};
fw_left_reg_2 = _RAND_2[64:0];
_RAND_3 = {3{`RANDOM}};
fw_left_reg_3 = _RAND_3[64:0];
`endif // RANDOMIZE_REG_INIT
`endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
module CLOScell4(
input clock,
input reset,
input [64:0] io_in4_0,
input [64:0] io_in4_1,
input [64:0] io_in4_2,
input [64:0] io_in4_3,
output [64:0] io_out4_0,
output [64:0] io_out4_1,
output [64:0] io_out4_2,
output [64:0] io_out4_3,
input [7:0] io_ctrl
);
wire CrossBarSwitch_clock; // @[BuildingBlock.scala 18:21]
wire [64:0] CrossBarSwitch_io_fw_left_0; // @[BuildingBlock.scala 18:21]
wire [64:0] CrossBarSwitch_io_fw_left_1; // @[BuildingBlock.scala 18:21]
wire [64:0] CrossBarSwitch_io_fw_left_2; // @[BuildingBlock.scala 18:21]
wire [64:0] CrossBarSwitch_io_fw_left_3; // @[BuildingBlock.scala 18:21]
wire [64:0] CrossBarSwitch_io_fw_bottom_0; // @[BuildingBlock.scala 18:21]
wire [64:0] CrossBarSwitch_io_fw_bottom_1; // @[BuildingBlock.scala 18:21]
wire [64:0] CrossBarSwitch_io_fw_bottom_2; // @[BuildingBlock.scala 18:21]
wire [64:0] CrossBarSwitch_io_fw_bottom_3; // @[BuildingBlock.scala 18:21]
wire [1:0] CrossBarSwitch_io_select_0; // @[BuildingBlock.scala 18:21]
wire [1:0] CrossBarSwitch_io_select_1; // @[BuildingBlock.scala 18:21]
wire [1:0] CrossBarSwitch_io_select_2; // @[BuildingBlock.scala 18:21]
wire [1:0] CrossBarSwitch_io_select_3; // @[BuildingBlock.scala 18:21]
CrossBarSwitch CrossBarSwitch ( // @[BuildingBlock.scala 18:21]
.clock(CrossBarSwitch_clock),
.io_fw_left_0(CrossBarSwitch_io_fw_left_0),
.io_fw_left_1(CrossBarSwitch_io_fw_left_1),
.io_fw_left_2(CrossBarSwitch_io_fw_left_2),
.io_fw_left_3(CrossBarSwitch_io_fw_left_3),
.io_fw_bottom_0(CrossBarSwitch_io_fw_bottom_0),
.io_fw_bottom_1(CrossBarSwitch_io_fw_bottom_1),
.io_fw_bottom_2(CrossBarSwitch_io_fw_bottom_2),
.io_fw_bottom_3(CrossBarSwitch_io_fw_bottom_3),
.io_select_0(CrossBarSwitch_io_select_0),
.io_select_1(CrossBarSwitch_io_select_1),
.io_select_2(CrossBarSwitch_io_select_2),
.io_select_3(CrossBarSwitch_io_select_3)
);
assign io_out4_0 = CrossBarSwitch_io_fw_bottom_0; // @[BuildingBlock.scala 23:11]
assign io_out4_1 = CrossBarSwitch_io_fw_bottom_1; // @[BuildingBlock.scala 23:11]
assign io_out4_2 = CrossBarSwitch_io_fw_bottom_2; // @[BuildingBlock.scala 23:11]
assign io_out4_3 = CrossBarSwitch_io_fw_bottom_3; // @[BuildingBlock.scala 23:11]
assign CrossBarSwitch_clock = clock;
assign CrossBarSwitch_io_fw_left_0 = io_in4_0; // @[BuildingBlock.scala 22:17]
assign CrossBarSwitch_io_fw_left_1 = io_in4_1; // @[BuildingBlock.scala 22:17]
assign CrossBarSwitch_io_fw_left_2 = io_in4_2; // @[BuildingBlock.scala 22:17]
assign CrossBarSwitch_io_fw_left_3 = io_in4_3; // @[BuildingBlock.scala 22:17]
assign CrossBarSwitch_io_select_0 = io_ctrl[7:6]; // @[BuildingBlock.scala 20:31]
assign CrossBarSwitch_io_select_1 = io_ctrl[5:4]; // @[BuildingBlock.scala 20:31]
assign CrossBarSwitch_io_select_2 = io_ctrl[3:2]; // @[BuildingBlock.scala 20:31]
assign CrossBarSwitch_io_select_3 = io_ctrl[1:0]; // @[BuildingBlock.scala 20:31]
endmodule