OpenCores
URL https://opencores.org/ocsvn/wb_dma/wb_dma/trunk

Subversion Repositories wb_dma

[/] [wb_dma/] [trunk/] [rtl/] [verilog/] [wb_dma_ch_arb.v] - Blame information for rev 17

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 rudi
/////////////////////////////////////////////////////////////////////
2
////                                                             ////
3
////  WISHBONE DMA Channel Arbiter                               ////
4
////                                                             ////
5
////                                                             ////
6
////  Author: Rudolf Usselmann                                   ////
7
////          rudi@asics.ws                                      ////
8
////                                                             ////
9
////                                                             ////
10
////  Downloaded from: http://www.opencores.org/cores/wb_dma/    ////
11
////                                                             ////
12
/////////////////////////////////////////////////////////////////////
13
////                                                             ////
14 15 rudi
//// Copyright (C) 2000-2002 Rudolf Usselmann                    ////
15
////                         www.asics.ws                        ////
16
////                         rudi@asics.ws                       ////
17 5 rudi
////                                                             ////
18
//// This source file may be used and distributed without        ////
19
//// restriction provided that this copyright statement is not   ////
20
//// removed from the file and that any derivative work contains ////
21
//// the original copyright notice and the associated disclaimer.////
22
////                                                             ////
23
////     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
24
//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
25
//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
26
//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
27
//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
28
//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
29
//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
30
//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
31
//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
32
//// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
33
//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
34
//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
35
//// POSSIBILITY OF SUCH DAMAGE.                                 ////
36
////                                                             ////
37
/////////////////////////////////////////////////////////////////////
38
 
39
//  CVS Log
40
//
41 15 rudi
//  $Id: wb_dma_ch_arb.v,v 1.2 2002-02-01 01:54:44 rudi Exp $
42 5 rudi
//
43 15 rudi
//  $Date: 2002-02-01 01:54:44 $
44
//  $Revision: 1.2 $
45 5 rudi
//  $Author: rudi $
46
//  $Locker:  $
47
//  $State: Exp $
48
//
49
// Change History:
50
//               $Log: not supported by cvs2svn $
51 15 rudi
//               Revision 1.1  2001/07/29 08:57:02  rudi
52
//
53
//
54
//               1) Changed Directory Structure
55
//               2) Added restart signal (REST)
56
//
57 5 rudi
//               Revision 1.4  2001/06/14 08:51:25  rudi
58
//
59
//
60
//               Changed Module name to match file name.
61
//
62
//               Revision 1.3  2001/06/13 02:26:46  rudi
63
//
64
//
65
//               Small changes after running lint.
66
//
67
//               Revision 1.2  2001/06/05 10:22:34  rudi
68
//
69
//
70
//               - Added Support of up to 31 channels
71
//               - Added support for 2,4 and 8 priority levels
72
//               - Now can have up to 31 channels
73
//               - Added many configuration items
74
//               - Changed reset to async
75
//
76
//               Revision 1.1.1.1  2001/03/19 13:10:47  rudi
77
//               Initial Release
78
//
79
//
80
//                        
81
 
82
`include "wb_dma_defines.v"
83
 
84
// Arbiter
85
//
86
// Implements a simple round robin arbiter for DMA channels of
87
// same priority
88
 
89
module wb_dma_ch_arb(clk, rst, req, gnt, advance);
90
 
91
input           clk;
92
input           rst;
93
input   [30:0]   req;            // Req input
94
output  [4:0]    gnt;            // Grant output
95
input           advance;        // Next Target
96
 
97
///////////////////////////////////////////////////////////////////////
98
//
99
// Definitions
100
//
101
 
102
parameter       [4:0]
103
                grant0 = 5'h0,
104
                grant1 = 5'h1,
105
                grant2 = 5'h2,
106
                grant3 = 5'h3,
107
                grant4 = 5'h4,
108
                grant5 = 5'h5,
109
                grant6 = 5'h6,
110
                grant7 = 5'h7,
111
                grant8 = 5'h8,
112
                grant9 = 5'h9,
113
                grant10 = 5'ha,
114
                grant11 = 5'hb,
115
                grant12 = 5'hc,
116
                grant13 = 5'hd,
117
                grant14 = 5'he,
118
                grant15 = 5'hf,
119
                grant16 = 5'h10,
120
                grant17 = 5'h11,
121
                grant18 = 5'h12,
122
                grant19 = 5'h13,
123
                grant20 = 5'h14,
124
                grant21 = 5'h15,
125
                grant22 = 5'h16,
126
                grant23 = 5'h17,
127
                grant24 = 5'h18,
128
                grant25 = 5'h19,
129
                grant26 = 5'h1a,
130
                grant27 = 5'h1b,
131
                grant28 = 5'h1c,
132
                grant29 = 5'h1d,
133
                grant30 = 5'h1e;
134
 
135
///////////////////////////////////////////////////////////////////////
136
//
137
// Local Registers and Wires
138
//
139
 
140
reg [4:0]        state, next_state;
141
 
142
///////////////////////////////////////////////////////////////////////
143
//
144
//  Misc Logic 
145
//
146
 
147
assign  gnt = state;
148
 
149
always@(posedge clk or negedge rst)
150
        if(!rst)        state <= #1 grant0;
151
        else            state <= #1 next_state;
152
 
153
///////////////////////////////////////////////////////////////////////
154
//
155
// Next State Logic
156
//   - implements round robin arbitration algorithm
157
//   - switches grant if current req is dropped or next is asserted
158
//   - parks at last grant
159
//
160
 
161
always@(state or req or advance)
162
   begin
163
        next_state = state;     // Default Keep State
164
        case(state)             // synopsys parallel_case full_case
165
           grant0:
166
                // if this req is dropped or next is asserted, check for other req's
167
                if(!req[0] | advance)
168
                   begin
169
                        if(req[1])      next_state = grant1;
170
                        else
171
                        if(req[2])      next_state = grant2;
172
                        else
173
                        if(req[3])      next_state = grant3;
174
                        else
175
                        if(req[4])      next_state = grant4;
176
                        else
177
                        if(req[5])      next_state = grant5;
178
                        else
179
                        if(req[6])      next_state = grant6;
180
                        else
181
                        if(req[7])      next_state = grant7;
182
                        else
183
                        if(req[8])      next_state = grant8;
184
                        else
185
                        if(req[9])      next_state = grant9;
186
                        else
187
                        if(req[10])     next_state = grant10;
188
                        else
189
                        if(req[11])     next_state = grant11;
190
                        else
191
                        if(req[12])     next_state = grant12;
192
                        else
193
                        if(req[13])     next_state = grant13;
194
                        else
195
                        if(req[14])     next_state = grant14;
196
                        else
197
                        if(req[15])     next_state = grant15;
198
                        else
199
                        if(req[16])     next_state = grant16;
200
                        else
201
                        if(req[17])     next_state = grant17;
202
                        else
203
                        if(req[18])     next_state = grant18;
204
                        else
205
                        if(req[19])     next_state = grant19;
206
                        else
207
                        if(req[20])     next_state = grant20;
208
                        else
209
                        if(req[21])     next_state = grant21;
210
                        else
211
                        if(req[22])     next_state = grant22;
212
                        else
213
                        if(req[23])     next_state = grant23;
214
                        else
215
                        if(req[24])     next_state = grant24;
216
                        else
217
                        if(req[25])     next_state = grant25;
218
                        else
219
                        if(req[26])     next_state = grant26;
220
                        else
221
                        if(req[27])     next_state = grant27;
222
                        else
223
                        if(req[28])     next_state = grant28;
224
                        else
225
                        if(req[29])     next_state = grant29;
226
                        else
227
                        if(req[30])     next_state = grant30;
228
                   end
229
           grant1:
230
                // if this req is dropped or next is asserted, check for other req's
231
                if(!req[1] | advance)
232
                   begin
233
                        if(req[2])      next_state = grant2;
234
                        else
235
                        if(req[3])      next_state = grant3;
236
                        else
237
                        if(req[4])      next_state = grant4;
238
                        else
239
                        if(req[5])      next_state = grant5;
240
                        else
241
                        if(req[6])      next_state = grant6;
242
                        else
243
                        if(req[7])      next_state = grant7;
244
                        else
245
                        if(req[8])      next_state = grant8;
246
                        else
247
                        if(req[9])      next_state = grant9;
248
                        else
249
                        if(req[10])     next_state = grant10;
250
                        else
251
                        if(req[11])     next_state = grant11;
252
                        else
253
                        if(req[12])     next_state = grant12;
254
                        else
255
                        if(req[13])     next_state = grant13;
256
                        else
257
                        if(req[14])     next_state = grant14;
258
                        else
259
                        if(req[15])     next_state = grant15;
260
                        else
261
                        if(req[16])     next_state = grant16;
262
                        else
263
                        if(req[17])     next_state = grant17;
264
                        else
265
                        if(req[18])     next_state = grant18;
266
                        else
267
                        if(req[19])     next_state = grant19;
268
                        else
269
                        if(req[20])     next_state = grant20;
270
                        else
271
                        if(req[21])     next_state = grant21;
272
                        else
273
                        if(req[22])     next_state = grant22;
274
                        else
275
                        if(req[23])     next_state = grant23;
276
                        else
277
                        if(req[24])     next_state = grant24;
278
                        else
279
                        if(req[25])     next_state = grant25;
280
                        else
281
                        if(req[26])     next_state = grant26;
282
                        else
283
                        if(req[27])     next_state = grant27;
284
                        else
285
                        if(req[28])     next_state = grant28;
286
                        else
287
                        if(req[29])     next_state = grant29;
288
                        else
289
                        if(req[30])     next_state = grant30;
290
                        else
291
                        if(req[0])       next_state = grant0;
292
                   end
293
           grant2:
294
                // if this req is dropped or next is asserted, check for other req's
295
                if(!req[2] | advance)
296
                   begin
297
                        if(req[3])      next_state = grant3;
298
                        else
299
                        if(req[4])      next_state = grant4;
300
                        else
301
                        if(req[5])      next_state = grant5;
302
                        else
303
                        if(req[6])      next_state = grant6;
304
                        else
305
                        if(req[7])      next_state = grant7;
306
                        else
307
                        if(req[8])      next_state = grant8;
308
                        else
309
                        if(req[9])      next_state = grant9;
310
                        else
311
                        if(req[10])     next_state = grant10;
312
                        else
313
                        if(req[11])     next_state = grant11;
314
                        else
315
                        if(req[12])     next_state = grant12;
316
                        else
317
                        if(req[13])     next_state = grant13;
318
                        else
319
                        if(req[14])     next_state = grant14;
320
                        else
321
                        if(req[15])     next_state = grant15;
322
                        else
323
                        if(req[16])     next_state = grant16;
324
                        else
325
                        if(req[17])     next_state = grant17;
326
                        else
327
                        if(req[18])     next_state = grant18;
328
                        else
329
                        if(req[19])     next_state = grant19;
330
                        else
331
                        if(req[20])     next_state = grant20;
332
                        else
333
                        if(req[21])     next_state = grant21;
334
                        else
335
                        if(req[22])     next_state = grant22;
336
                        else
337
                        if(req[23])     next_state = grant23;
338
                        else
339
                        if(req[24])     next_state = grant24;
340
                        else
341
                        if(req[25])     next_state = grant25;
342
                        else
343
                        if(req[26])     next_state = grant26;
344
                        else
345
                        if(req[27])     next_state = grant27;
346
                        else
347
                        if(req[28])     next_state = grant28;
348
                        else
349
                        if(req[29])     next_state = grant29;
350
                        else
351
                        if(req[30])     next_state = grant30;
352
                        else
353
                        if(req[0])       next_state = grant0;
354
                        else
355
                        if(req[1])      next_state = grant1;
356
                   end
357
           grant3:
358
                // if this req is dropped or next is asserted, check for other req's
359
                if(!req[3] | advance)
360
                   begin
361
                        if(req[4])      next_state = grant4;
362
                        else
363
                        if(req[5])      next_state = grant5;
364
                        else
365
                        if(req[6])      next_state = grant6;
366
                        else
367
                        if(req[7])      next_state = grant7;
368
                        else
369
                        if(req[8])      next_state = grant8;
370
                        else
371
                        if(req[9])      next_state = grant9;
372
                        else
373
                        if(req[10])     next_state = grant10;
374
                        else
375
                        if(req[11])     next_state = grant11;
376
                        else
377
                        if(req[12])     next_state = grant12;
378
                        else
379
                        if(req[13])     next_state = grant13;
380
                        else
381
                        if(req[14])     next_state = grant14;
382
                        else
383
                        if(req[15])     next_state = grant15;
384
                        else
385
                        if(req[16])     next_state = grant16;
386
                        else
387
                        if(req[17])     next_state = grant17;
388
                        else
389
                        if(req[18])     next_state = grant18;
390
                        else
391
                        if(req[19])     next_state = grant19;
392
                        else
393
                        if(req[20])     next_state = grant20;
394
                        else
395
                        if(req[21])     next_state = grant21;
396
                        else
397
                        if(req[22])     next_state = grant22;
398
                        else
399
                        if(req[23])     next_state = grant23;
400
                        else
401
                        if(req[24])     next_state = grant24;
402
                        else
403
                        if(req[25])     next_state = grant25;
404
                        else
405
                        if(req[26])     next_state = grant26;
406
                        else
407
                        if(req[27])     next_state = grant27;
408
                        else
409
                        if(req[28])     next_state = grant28;
410
                        else
411
                        if(req[29])     next_state = grant29;
412
                        else
413
                        if(req[30])     next_state = grant30;
414
                        else
415
                        if(req[0])       next_state = grant0;
416
                        else
417
                        if(req[1])      next_state = grant1;
418
                        else
419
                        if(req[2])      next_state = grant2;
420
                   end
421
           grant4:
422
                // if this req is dropped or next is asserted, check for other req's
423
                if(!req[4] | advance)
424
                   begin
425
                        if(req[5])      next_state = grant5;
426
                        else
427
                        if(req[6])      next_state = grant6;
428
                        else
429
                        if(req[7])      next_state = grant7;
430
                        else
431
                        if(req[8])      next_state = grant8;
432
                        else
433
                        if(req[9])      next_state = grant9;
434
                        else
435
                        if(req[10])     next_state = grant10;
436
                        else
437
                        if(req[11])     next_state = grant11;
438
                        else
439
                        if(req[12])     next_state = grant12;
440
                        else
441
                        if(req[13])     next_state = grant13;
442
                        else
443
                        if(req[14])     next_state = grant14;
444
                        else
445
                        if(req[15])     next_state = grant15;
446
                        else
447
                        if(req[16])     next_state = grant16;
448
                        else
449
                        if(req[17])     next_state = grant17;
450
                        else
451
                        if(req[18])     next_state = grant18;
452
                        else
453
                        if(req[19])     next_state = grant19;
454
                        else
455
                        if(req[20])     next_state = grant20;
456
                        else
457
                        if(req[21])     next_state = grant21;
458
                        else
459
                        if(req[22])     next_state = grant22;
460
                        else
461
                        if(req[23])     next_state = grant23;
462
                        else
463
                        if(req[24])     next_state = grant24;
464
                        else
465
                        if(req[25])     next_state = grant25;
466
                        else
467
                        if(req[26])     next_state = grant26;
468
                        else
469
                        if(req[27])     next_state = grant27;
470
                        else
471
                        if(req[28])     next_state = grant28;
472
                        else
473
                        if(req[29])     next_state = grant29;
474
                        else
475
                        if(req[30])     next_state = grant30;
476
                        else
477
                        if(req[0])       next_state = grant0;
478
                        else
479
                        if(req[1])      next_state = grant1;
480
                        else
481
                        if(req[2])      next_state = grant2;
482
                        else
483
                        if(req[3])      next_state = grant3;
484
                   end
485
           grant5:
486
                // if this req is dropped or next is asserted, check for other req's
487
                if(!req[5] | advance)
488
                   begin
489
                        if(req[6])      next_state = grant6;
490
                        else
491
                        if(req[7])      next_state = grant7;
492
                        else
493
                        if(req[8])      next_state = grant8;
494
                        else
495
                        if(req[9])      next_state = grant9;
496
                        else
497
                        if(req[10])     next_state = grant10;
498
                        else
499
                        if(req[11])     next_state = grant11;
500
                        else
501
                        if(req[12])     next_state = grant12;
502
                        else
503
                        if(req[13])     next_state = grant13;
504
                        else
505
                        if(req[14])     next_state = grant14;
506
                        else
507
                        if(req[15])     next_state = grant15;
508
                        else
509
                        if(req[16])     next_state = grant16;
510
                        else
511
                        if(req[17])     next_state = grant17;
512
                        else
513
                        if(req[18])     next_state = grant18;
514
                        else
515
                        if(req[19])     next_state = grant19;
516
                        else
517
                        if(req[20])     next_state = grant20;
518
                        else
519
                        if(req[21])     next_state = grant21;
520
                        else
521
                        if(req[22])     next_state = grant22;
522
                        else
523
                        if(req[23])     next_state = grant23;
524
                        else
525
                        if(req[24])     next_state = grant24;
526
                        else
527
                        if(req[25])     next_state = grant25;
528
                        else
529
                        if(req[26])     next_state = grant26;
530
                        else
531
                        if(req[27])     next_state = grant27;
532
                        else
533
                        if(req[28])     next_state = grant28;
534
                        else
535
                        if(req[29])     next_state = grant29;
536
                        else
537
                        if(req[30])     next_state = grant30;
538
                        else
539
                        if(req[0])       next_state = grant0;
540
                        else
541
                        if(req[1])      next_state = grant1;
542
                        else
543
                        if(req[2])      next_state = grant2;
544
                        else
545
                        if(req[3])      next_state = grant3;
546
                        else
547
                        if(req[4])      next_state = grant4;
548
                   end
549
           grant6:
550
                // if this req is dropped or next is asserted, check for other req's
551
                if(!req[6] | advance)
552
                   begin
553
                        if(req[7])      next_state = grant7;
554
                        else
555
                        if(req[8])      next_state = grant8;
556
                        else
557
                        if(req[9])      next_state = grant9;
558
                        else
559
                        if(req[10])     next_state = grant10;
560
                        else
561
                        if(req[11])     next_state = grant11;
562
                        else
563
                        if(req[12])     next_state = grant12;
564
                        else
565
                        if(req[13])     next_state = grant13;
566
                        else
567
                        if(req[14])     next_state = grant14;
568
                        else
569
                        if(req[15])     next_state = grant15;
570
                        else
571
                        if(req[16])     next_state = grant16;
572
                        else
573
                        if(req[17])     next_state = grant17;
574
                        else
575
                        if(req[18])     next_state = grant18;
576
                        else
577
                        if(req[19])     next_state = grant19;
578
                        else
579
                        if(req[20])     next_state = grant20;
580
                        else
581
                        if(req[21])     next_state = grant21;
582
                        else
583
                        if(req[22])     next_state = grant22;
584
                        else
585
                        if(req[23])     next_state = grant23;
586
                        else
587
                        if(req[24])     next_state = grant24;
588
                        else
589
                        if(req[25])     next_state = grant25;
590
                        else
591
                        if(req[26])     next_state = grant26;
592
                        else
593
                        if(req[27])     next_state = grant27;
594
                        else
595
                        if(req[28])     next_state = grant28;
596
                        else
597
                        if(req[29])     next_state = grant29;
598
                        else
599
                        if(req[30])     next_state = grant30;
600
                        else
601
                        if(req[0])       next_state = grant0;
602
                        else
603
                        if(req[1])      next_state = grant1;
604
                        else
605
                        if(req[2])      next_state = grant2;
606
                        else
607
                        if(req[3])      next_state = grant3;
608
                        else
609
                        if(req[4])      next_state = grant4;
610
                        else
611
                        if(req[5])      next_state = grant5;
612
                   end
613
           grant7:
614
                // if this req is dropped or next is asserted, check for other req's
615
                if(!req[7] | advance)
616
                   begin
617
                        if(req[8])      next_state = grant8;
618
                        else
619
                        if(req[9])      next_state = grant9;
620
                        else
621
                        if(req[10])     next_state = grant10;
622
                        else
623
                        if(req[11])     next_state = grant11;
624
                        else
625
                        if(req[12])     next_state = grant12;
626
                        else
627
                        if(req[13])     next_state = grant13;
628
                        else
629
                        if(req[14])     next_state = grant14;
630
                        else
631
                        if(req[15])     next_state = grant15;
632
                        else
633
                        if(req[16])     next_state = grant16;
634
                        else
635
                        if(req[17])     next_state = grant17;
636
                        else
637
                        if(req[18])     next_state = grant18;
638
                        else
639
                        if(req[19])     next_state = grant19;
640
                        else
641
                        if(req[20])     next_state = grant20;
642
                        else
643
                        if(req[21])     next_state = grant21;
644
                        else
645
                        if(req[22])     next_state = grant22;
646
                        else
647
                        if(req[23])     next_state = grant23;
648
                        else
649
                        if(req[24])     next_state = grant24;
650
                        else
651
                        if(req[25])     next_state = grant25;
652
                        else
653
                        if(req[26])     next_state = grant26;
654
                        else
655
                        if(req[27])     next_state = grant27;
656
                        else
657
                        if(req[28])     next_state = grant28;
658
                        else
659
                        if(req[29])     next_state = grant29;
660
                        else
661
                        if(req[30])     next_state = grant30;
662
                        else
663
                        if(req[0])       next_state = grant0;
664
                        else
665
                        if(req[1])      next_state = grant1;
666
                        else
667
                        if(req[2])      next_state = grant2;
668
                        else
669
                        if(req[3])      next_state = grant3;
670
                        else
671
                        if(req[4])      next_state = grant4;
672
                        else
673
                        if(req[5])      next_state = grant5;
674
                        else
675
                        if(req[6])      next_state = grant6;
676
                   end
677
           grant8:
678
                // if this req is dropped or next is asserted, check for other req's
679
                if(!req[8] | advance)
680
                   begin
681
                        if(req[9])      next_state = grant9;
682
                        else
683
                        if(req[10])     next_state = grant10;
684
                        else
685
                        if(req[11])     next_state = grant11;
686
                        else
687
                        if(req[12])     next_state = grant12;
688
                        else
689
                        if(req[13])     next_state = grant13;
690
                        else
691
                        if(req[14])     next_state = grant14;
692
                        else
693
                        if(req[15])     next_state = grant15;
694
                        else
695
                        if(req[16])     next_state = grant16;
696
                        else
697
                        if(req[17])     next_state = grant17;
698
                        else
699
                        if(req[18])     next_state = grant18;
700
                        else
701
                        if(req[19])     next_state = grant19;
702
                        else
703
                        if(req[20])     next_state = grant20;
704
                        else
705
                        if(req[21])     next_state = grant21;
706
                        else
707
                        if(req[22])     next_state = grant22;
708
                        else
709
                        if(req[23])     next_state = grant23;
710
                        else
711
                        if(req[24])     next_state = grant24;
712
                        else
713
                        if(req[25])     next_state = grant25;
714
                        else
715
                        if(req[26])     next_state = grant26;
716
                        else
717
                        if(req[27])     next_state = grant27;
718
                        else
719
                        if(req[28])     next_state = grant28;
720
                        else
721
                        if(req[29])     next_state = grant29;
722
                        else
723
                        if(req[30])     next_state = grant30;
724
                        else
725
                        if(req[0])       next_state = grant0;
726
                        else
727
                        if(req[1])      next_state = grant1;
728
                        else
729
                        if(req[2])      next_state = grant2;
730
                        else
731
                        if(req[3])      next_state = grant3;
732
                        else
733
                        if(req[4])      next_state = grant4;
734
                        else
735
                        if(req[5])      next_state = grant5;
736
                        else
737
                        if(req[6])      next_state = grant6;
738
                        else
739
                        if(req[7])      next_state = grant7;
740
                   end
741
           grant9:
742
                // if this req is dropped or next is asserted, check for other req's
743
                if(!req[9] | advance)
744
                   begin
745
                        if(req[10])     next_state = grant10;
746
                        else
747
                        if(req[11])     next_state = grant11;
748
                        else
749
                        if(req[12])     next_state = grant12;
750
                        else
751
                        if(req[13])     next_state = grant13;
752
                        else
753
                        if(req[14])     next_state = grant14;
754
                        else
755
                        if(req[15])     next_state = grant15;
756
                        else
757
                        if(req[16])     next_state = grant16;
758
                        else
759
                        if(req[17])     next_state = grant17;
760
                        else
761
                        if(req[18])     next_state = grant18;
762
                        else
763
                        if(req[19])     next_state = grant19;
764
                        else
765
                        if(req[20])     next_state = grant20;
766
                        else
767
                        if(req[21])     next_state = grant21;
768
                        else
769
                        if(req[22])     next_state = grant22;
770
                        else
771
                        if(req[23])     next_state = grant23;
772
                        else
773
                        if(req[24])     next_state = grant24;
774
                        else
775
                        if(req[25])     next_state = grant25;
776
                        else
777
                        if(req[26])     next_state = grant26;
778
                        else
779
                        if(req[27])     next_state = grant27;
780
                        else
781
                        if(req[28])     next_state = grant28;
782
                        else
783
                        if(req[29])     next_state = grant29;
784
                        else
785
                        if(req[30])     next_state = grant30;
786
                        else
787
                        if(req[0])       next_state = grant0;
788
                        else
789
                        if(req[1])      next_state = grant1;
790
                        else
791
                        if(req[2])      next_state = grant2;
792
                        else
793
                        if(req[3])      next_state = grant3;
794
                        else
795
                        if(req[4])      next_state = grant4;
796
                        else
797
                        if(req[5])      next_state = grant5;
798
                        else
799
                        if(req[6])      next_state = grant6;
800
                        else
801
                        if(req[7])      next_state = grant7;
802
                        else
803
                        if(req[8])      next_state = grant8;
804
                   end
805
           grant10:
806
                // if this req is dropped or next is asserted, check for other req's
807
                if(!req[10] | advance)
808
                   begin
809
                        if(req[11])     next_state = grant11;
810
                        else
811
                        if(req[12])     next_state = grant12;
812
                        else
813
                        if(req[13])     next_state = grant13;
814
                        else
815
                        if(req[14])     next_state = grant14;
816
                        else
817
                        if(req[15])     next_state = grant15;
818
                        else
819
                        if(req[16])     next_state = grant16;
820
                        else
821
                        if(req[17])     next_state = grant17;
822
                        else
823
                        if(req[18])     next_state = grant18;
824
                        else
825
                        if(req[19])     next_state = grant19;
826
                        else
827
                        if(req[20])     next_state = grant20;
828
                        else
829
                        if(req[21])     next_state = grant21;
830
                        else
831
                        if(req[22])     next_state = grant22;
832
                        else
833
                        if(req[23])     next_state = grant23;
834
                        else
835
                        if(req[24])     next_state = grant24;
836
                        else
837
                        if(req[25])     next_state = grant25;
838
                        else
839
                        if(req[26])     next_state = grant26;
840
                        else
841
                        if(req[27])     next_state = grant27;
842
                        else
843
                        if(req[28])     next_state = grant28;
844
                        else
845
                        if(req[29])     next_state = grant29;
846
                        else
847
                        if(req[30])     next_state = grant30;
848
                        else
849
                        if(req[0])       next_state = grant0;
850
                        else
851
                        if(req[1])      next_state = grant1;
852
                        else
853
                        if(req[2])      next_state = grant2;
854
                        else
855
                        if(req[3])      next_state = grant3;
856
                        else
857
                        if(req[4])      next_state = grant4;
858
                        else
859
                        if(req[5])      next_state = grant5;
860
                        else
861
                        if(req[6])      next_state = grant6;
862
                        else
863
                        if(req[7])      next_state = grant7;
864
                        else
865
                        if(req[8])      next_state = grant8;
866
                        else
867
                        if(req[9])      next_state = grant9;
868
                   end
869
           grant11:
870
                // if this req is dropped or next is asserted, check for other req's
871
                if(!req[11] | advance)
872
                   begin
873
                        if(req[12])     next_state = grant12;
874
                        else
875
                        if(req[13])     next_state = grant13;
876
                        else
877
                        if(req[14])     next_state = grant14;
878
                        else
879
                        if(req[15])     next_state = grant15;
880
                        else
881
                        if(req[16])     next_state = grant16;
882
                        else
883
                        if(req[17])     next_state = grant17;
884
                        else
885
                        if(req[18])     next_state = grant18;
886
                        else
887
                        if(req[19])     next_state = grant19;
888
                        else
889
                        if(req[20])     next_state = grant20;
890
                        else
891
                        if(req[21])     next_state = grant21;
892
                        else
893
                        if(req[22])     next_state = grant22;
894
                        else
895
                        if(req[23])     next_state = grant23;
896
                        else
897
                        if(req[24])     next_state = grant24;
898
                        else
899
                        if(req[25])     next_state = grant25;
900
                        else
901
                        if(req[26])     next_state = grant26;
902
                        else
903
                        if(req[27])     next_state = grant27;
904
                        else
905
                        if(req[28])     next_state = grant28;
906
                        else
907
                        if(req[29])     next_state = grant29;
908
                        else
909
                        if(req[30])     next_state = grant30;
910
                        else
911
                        if(req[0])       next_state = grant0;
912
                        else
913
                        if(req[1])      next_state = grant1;
914
                        else
915
                        if(req[2])      next_state = grant2;
916
                        else
917
                        if(req[3])      next_state = grant3;
918
                        else
919
                        if(req[4])      next_state = grant4;
920
                        else
921
                        if(req[5])      next_state = grant5;
922
                        else
923
                        if(req[6])      next_state = grant6;
924
                        else
925
                        if(req[7])      next_state = grant7;
926
                        else
927
                        if(req[8])      next_state = grant8;
928
                        else
929
                        if(req[9])      next_state = grant9;
930
                        else
931
                        if(req[10])     next_state = grant10;
932
                   end
933
           grant12:
934
                // if this req is dropped or next is asserted, check for other req's
935
                if(!req[12] | advance)
936
                   begin
937
                        if(req[13])     next_state = grant13;
938
                        else
939
                        if(req[14])     next_state = grant14;
940
                        else
941
                        if(req[15])     next_state = grant15;
942
                        else
943
                        if(req[16])     next_state = grant16;
944
                        else
945
                        if(req[17])     next_state = grant17;
946
                        else
947
                        if(req[18])     next_state = grant18;
948
                        else
949
                        if(req[19])     next_state = grant19;
950
                        else
951
                        if(req[20])     next_state = grant20;
952
                        else
953
                        if(req[21])     next_state = grant21;
954
                        else
955
                        if(req[22])     next_state = grant22;
956
                        else
957
                        if(req[23])     next_state = grant23;
958
                        else
959
                        if(req[24])     next_state = grant24;
960
                        else
961
                        if(req[25])     next_state = grant25;
962
                        else
963
                        if(req[26])     next_state = grant26;
964
                        else
965
                        if(req[27])     next_state = grant27;
966
                        else
967
                        if(req[28])     next_state = grant28;
968
                        else
969
                        if(req[29])     next_state = grant29;
970
                        else
971
                        if(req[30])     next_state = grant30;
972
                        else
973
                        if(req[0])       next_state = grant0;
974
                        else
975
                        if(req[1])      next_state = grant1;
976
                        else
977
                        if(req[2])      next_state = grant2;
978
                        else
979
                        if(req[3])      next_state = grant3;
980
                        else
981
                        if(req[4])      next_state = grant4;
982
                        else
983
                        if(req[5])      next_state = grant5;
984
                        else
985
                        if(req[6])      next_state = grant6;
986
                        else
987
                        if(req[7])      next_state = grant7;
988
                        else
989
                        if(req[8])      next_state = grant8;
990
                        else
991
                        if(req[9])      next_state = grant9;
992
                        else
993
                        if(req[10])     next_state = grant10;
994
                        else
995
                        if(req[11])     next_state = grant11;
996
                   end
997
           grant13:
998
                // if this req is dropped or next is asserted, check for other req's
999
                if(!req[13] | advance)
1000
                   begin
1001
                        if(req[14])     next_state = grant14;
1002
                        else
1003
                        if(req[15])     next_state = grant15;
1004
                        else
1005
                        if(req[16])     next_state = grant16;
1006
                        else
1007
                        if(req[17])     next_state = grant17;
1008
                        else
1009
                        if(req[18])     next_state = grant18;
1010
                        else
1011
                        if(req[19])     next_state = grant19;
1012
                        else
1013
                        if(req[20])     next_state = grant20;
1014
                        else
1015
                        if(req[21])     next_state = grant21;
1016
                        else
1017
                        if(req[22])     next_state = grant22;
1018
                        else
1019
                        if(req[23])     next_state = grant23;
1020
                        else
1021
                        if(req[24])     next_state = grant24;
1022
                        else
1023
                        if(req[25])     next_state = grant25;
1024
                        else
1025
                        if(req[26])     next_state = grant26;
1026
                        else
1027
                        if(req[27])     next_state = grant27;
1028
                        else
1029
                        if(req[28])     next_state = grant28;
1030
                        else
1031
                        if(req[29])     next_state = grant29;
1032
                        else
1033
                        if(req[30])     next_state = grant30;
1034
                        else
1035
                        if(req[0])       next_state = grant0;
1036
                        else
1037
                        if(req[1])      next_state = grant1;
1038
                        else
1039
                        if(req[2])      next_state = grant2;
1040
                        else
1041
                        if(req[3])      next_state = grant3;
1042
                        else
1043
                        if(req[4])      next_state = grant4;
1044
                        else
1045
                        if(req[5])      next_state = grant5;
1046
                        else
1047
                        if(req[6])      next_state = grant6;
1048
                        else
1049
                        if(req[7])      next_state = grant7;
1050
                        else
1051
                        if(req[8])      next_state = grant8;
1052
                        else
1053
                        if(req[9])      next_state = grant9;
1054
                        else
1055
                        if(req[10])     next_state = grant10;
1056
                        else
1057
                        if(req[11])     next_state = grant11;
1058
                        else
1059
                        if(req[12])     next_state = grant12;
1060
                   end
1061
           grant14:
1062
                // if this req is dropped or next is asserted, check for other req's
1063
                if(!req[14] | advance)
1064
                   begin
1065
                        if(req[15])     next_state = grant15;
1066
                        else
1067
                        if(req[16])     next_state = grant16;
1068
                        else
1069
                        if(req[17])     next_state = grant17;
1070
                        else
1071
                        if(req[18])     next_state = grant18;
1072
                        else
1073
                        if(req[19])     next_state = grant19;
1074
                        else
1075
                        if(req[20])     next_state = grant20;
1076
                        else
1077
                        if(req[21])     next_state = grant21;
1078
                        else
1079
                        if(req[22])     next_state = grant22;
1080
                        else
1081
                        if(req[23])     next_state = grant23;
1082
                        else
1083
                        if(req[24])     next_state = grant24;
1084
                        else
1085
                        if(req[25])     next_state = grant25;
1086
                        else
1087
                        if(req[26])     next_state = grant26;
1088
                        else
1089
                        if(req[27])     next_state = grant27;
1090
                        else
1091
                        if(req[28])     next_state = grant28;
1092
                        else
1093
                        if(req[29])     next_state = grant29;
1094
                        else
1095
                        if(req[30])     next_state = grant30;
1096
                        else
1097
                        if(req[0])       next_state = grant0;
1098
                        else
1099
                        if(req[1])      next_state = grant1;
1100
                        else
1101
                        if(req[2])      next_state = grant2;
1102
                        else
1103
                        if(req[3])      next_state = grant3;
1104
                        else
1105
                        if(req[4])      next_state = grant4;
1106
                        else
1107
                        if(req[5])      next_state = grant5;
1108
                        else
1109
                        if(req[6])      next_state = grant6;
1110
                        else
1111
                        if(req[7])      next_state = grant7;
1112
                        else
1113
                        if(req[8])      next_state = grant8;
1114
                        else
1115
                        if(req[9])      next_state = grant9;
1116
                        else
1117
                        if(req[10])     next_state = grant10;
1118
                        else
1119
                        if(req[11])     next_state = grant11;
1120
                        else
1121
                        if(req[12])     next_state = grant12;
1122
                        else
1123
                        if(req[13])     next_state = grant13;
1124
                   end
1125
           grant15:
1126
                // if this req is dropped or next is asserted, check for other req's
1127
                if(!req[15] | advance)
1128
                   begin
1129
                        if(req[16])     next_state = grant16;
1130
                        else
1131
                        if(req[17])     next_state = grant17;
1132
                        else
1133
                        if(req[18])     next_state = grant18;
1134
                        else
1135
                        if(req[19])     next_state = grant19;
1136
                        else
1137
                        if(req[20])     next_state = grant20;
1138
                        else
1139
                        if(req[21])     next_state = grant21;
1140
                        else
1141
                        if(req[22])     next_state = grant22;
1142
                        else
1143
                        if(req[23])     next_state = grant23;
1144
                        else
1145
                        if(req[24])     next_state = grant24;
1146
                        else
1147
                        if(req[25])     next_state = grant25;
1148
                        else
1149
                        if(req[26])     next_state = grant26;
1150
                        else
1151
                        if(req[27])     next_state = grant27;
1152
                        else
1153
                        if(req[28])     next_state = grant28;
1154
                        else
1155
                        if(req[29])     next_state = grant29;
1156
                        else
1157
                        if(req[30])     next_state = grant30;
1158
                        else
1159
                        if(req[0])       next_state = grant0;
1160
                        else
1161
                        if(req[1])      next_state = grant1;
1162
                        else
1163
                        if(req[2])      next_state = grant2;
1164
                        else
1165
                        if(req[3])      next_state = grant3;
1166
                        else
1167
                        if(req[4])      next_state = grant4;
1168
                        else
1169
                        if(req[5])      next_state = grant5;
1170
                        else
1171
                        if(req[6])      next_state = grant6;
1172
                        else
1173
                        if(req[7])      next_state = grant7;
1174
                        else
1175
                        if(req[8])      next_state = grant8;
1176
                        else
1177
                        if(req[9])      next_state = grant9;
1178
                        else
1179
                        if(req[10])     next_state = grant10;
1180
                        else
1181
                        if(req[11])     next_state = grant11;
1182
                        else
1183
                        if(req[12])     next_state = grant12;
1184
                        else
1185
                        if(req[13])     next_state = grant13;
1186
                        else
1187
                        if(req[14])     next_state = grant14;
1188
                   end
1189
           grant16:
1190
                // if this req is dropped or next is asserted, check for other req's
1191
                if(!req[16] | advance)
1192
                   begin
1193
                        if(req[17])     next_state = grant17;
1194
                        else
1195
                        if(req[18])     next_state = grant18;
1196
                        else
1197
                        if(req[19])     next_state = grant19;
1198
                        else
1199
                        if(req[20])     next_state = grant20;
1200
                        else
1201
                        if(req[21])     next_state = grant21;
1202
                        else
1203
                        if(req[22])     next_state = grant22;
1204
                        else
1205
                        if(req[23])     next_state = grant23;
1206
                        else
1207
                        if(req[24])     next_state = grant24;
1208
                        else
1209
                        if(req[25])     next_state = grant25;
1210
                        else
1211
                        if(req[26])     next_state = grant26;
1212
                        else
1213
                        if(req[27])     next_state = grant27;
1214
                        else
1215
                        if(req[28])     next_state = grant28;
1216
                        else
1217
                        if(req[29])     next_state = grant29;
1218
                        else
1219
                        if(req[30])     next_state = grant30;
1220
                        else
1221
                        if(req[0])       next_state = grant0;
1222
                        else
1223
                        if(req[1])      next_state = grant1;
1224
                        else
1225
                        if(req[2])      next_state = grant2;
1226
                        else
1227
                        if(req[3])      next_state = grant3;
1228
                        else
1229
                        if(req[4])      next_state = grant4;
1230
                        else
1231
                        if(req[5])      next_state = grant5;
1232
                        else
1233
                        if(req[6])      next_state = grant6;
1234
                        else
1235
                        if(req[7])      next_state = grant7;
1236
                        else
1237
                        if(req[8])      next_state = grant8;
1238
                        else
1239
                        if(req[9])      next_state = grant9;
1240
                        else
1241
                        if(req[10])     next_state = grant10;
1242
                        else
1243
                        if(req[11])     next_state = grant11;
1244
                        else
1245
                        if(req[12])     next_state = grant12;
1246
                        else
1247
                        if(req[13])     next_state = grant13;
1248
                        else
1249
                        if(req[14])     next_state = grant14;
1250
                        else
1251
                        if(req[15])     next_state = grant15;
1252
                   end
1253
           grant17:
1254
                // if this req is dropped or next is asserted, check for other req's
1255
                if(!req[17] | advance)
1256
                   begin
1257
                        if(req[18])     next_state = grant18;
1258
                        else
1259
                        if(req[19])     next_state = grant19;
1260
                        else
1261
                        if(req[20])     next_state = grant20;
1262
                        else
1263
                        if(req[21])     next_state = grant21;
1264
                        else
1265
                        if(req[22])     next_state = grant22;
1266
                        else
1267
                        if(req[23])     next_state = grant23;
1268
                        else
1269
                        if(req[24])     next_state = grant24;
1270
                        else
1271
                        if(req[25])     next_state = grant25;
1272
                        else
1273
                        if(req[26])     next_state = grant26;
1274
                        else
1275
                        if(req[27])     next_state = grant27;
1276
                        else
1277
                        if(req[28])     next_state = grant28;
1278
                        else
1279
                        if(req[29])     next_state = grant29;
1280
                        else
1281
                        if(req[30])     next_state = grant30;
1282
                        else
1283
                        if(req[0])       next_state = grant0;
1284
                        else
1285
                        if(req[1])      next_state = grant1;
1286
                        else
1287
                        if(req[2])      next_state = grant2;
1288
                        else
1289
                        if(req[3])      next_state = grant3;
1290
                        else
1291
                        if(req[4])      next_state = grant4;
1292
                        else
1293
                        if(req[5])      next_state = grant5;
1294
                        else
1295
                        if(req[6])      next_state = grant6;
1296
                        else
1297
                        if(req[7])      next_state = grant7;
1298
                        else
1299
                        if(req[8])      next_state = grant8;
1300
                        else
1301
                        if(req[9])      next_state = grant9;
1302
                        else
1303
                        if(req[10])     next_state = grant10;
1304
                        else
1305
                        if(req[11])     next_state = grant11;
1306
                        else
1307
                        if(req[12])     next_state = grant12;
1308
                        else
1309
                        if(req[13])     next_state = grant13;
1310
                        else
1311
                        if(req[14])     next_state = grant14;
1312
                        else
1313
                        if(req[15])     next_state = grant15;
1314
                        else
1315
                        if(req[16])     next_state = grant16;
1316
                   end
1317
           grant18:
1318
                // if this req is dropped or next is asserted, check for other req's
1319
                if(!req[18] | advance)
1320
                   begin
1321
                        if(req[19])     next_state = grant19;
1322
                        else
1323
                        if(req[20])     next_state = grant20;
1324
                        else
1325
                        if(req[21])     next_state = grant21;
1326
                        else
1327
                        if(req[22])     next_state = grant22;
1328
                        else
1329
                        if(req[23])     next_state = grant23;
1330
                        else
1331
                        if(req[24])     next_state = grant24;
1332
                        else
1333
                        if(req[25])     next_state = grant25;
1334
                        else
1335
                        if(req[26])     next_state = grant26;
1336
                        else
1337
                        if(req[27])     next_state = grant27;
1338
                        else
1339
                        if(req[28])     next_state = grant28;
1340
                        else
1341
                        if(req[29])     next_state = grant29;
1342
                        else
1343
                        if(req[30])     next_state = grant30;
1344
                        else
1345
                        if(req[0])       next_state = grant0;
1346
                        else
1347
                        if(req[1])      next_state = grant1;
1348
                        else
1349
                        if(req[2])      next_state = grant2;
1350
                        else
1351
                        if(req[3])      next_state = grant3;
1352
                        else
1353
                        if(req[4])      next_state = grant4;
1354
                        else
1355
                        if(req[5])      next_state = grant5;
1356
                        else
1357
                        if(req[6])      next_state = grant6;
1358
                        else
1359
                        if(req[7])      next_state = grant7;
1360
                        else
1361
                        if(req[8])      next_state = grant8;
1362
                        else
1363
                        if(req[9])      next_state = grant9;
1364
                        else
1365
                        if(req[10])     next_state = grant10;
1366
                        else
1367
                        if(req[11])     next_state = grant11;
1368
                        else
1369
                        if(req[12])     next_state = grant12;
1370
                        else
1371
                        if(req[13])     next_state = grant13;
1372
                        else
1373
                        if(req[14])     next_state = grant14;
1374
                        else
1375
                        if(req[15])     next_state = grant15;
1376
                        else
1377
                        if(req[16])     next_state = grant16;
1378
                        else
1379
                        if(req[17])     next_state = grant17;
1380
                   end
1381
           grant19:
1382
                // if this req is dropped or next is asserted, check for other req's
1383
                if(!req[19] | advance)
1384
                   begin
1385
                        if(req[20])     next_state = grant20;
1386
                        else
1387
                        if(req[21])     next_state = grant21;
1388
                        else
1389
                        if(req[22])     next_state = grant22;
1390
                        else
1391
                        if(req[23])     next_state = grant23;
1392
                        else
1393
                        if(req[24])     next_state = grant24;
1394
                        else
1395
                        if(req[25])     next_state = grant25;
1396
                        else
1397
                        if(req[26])     next_state = grant26;
1398
                        else
1399
                        if(req[27])     next_state = grant27;
1400
                        else
1401
                        if(req[28])     next_state = grant28;
1402
                        else
1403
                        if(req[29])     next_state = grant29;
1404
                        else
1405
                        if(req[30])     next_state = grant30;
1406
                        else
1407
                        if(req[0])       next_state = grant0;
1408
                        else
1409
                        if(req[1])      next_state = grant1;
1410
                        else
1411
                        if(req[2])      next_state = grant2;
1412
                        else
1413
                        if(req[3])      next_state = grant3;
1414
                        else
1415
                        if(req[4])      next_state = grant4;
1416
                        else
1417
                        if(req[5])      next_state = grant5;
1418
                        else
1419
                        if(req[6])      next_state = grant6;
1420
                        else
1421
                        if(req[7])      next_state = grant7;
1422
                        else
1423
                        if(req[8])      next_state = grant8;
1424
                        else
1425
                        if(req[9])      next_state = grant9;
1426
                        else
1427
                        if(req[10])     next_state = grant10;
1428
                        else
1429
                        if(req[11])     next_state = grant11;
1430
                        else
1431
                        if(req[12])     next_state = grant12;
1432
                        else
1433
                        if(req[13])     next_state = grant13;
1434
                        else
1435
                        if(req[14])     next_state = grant14;
1436
                        else
1437
                        if(req[15])     next_state = grant15;
1438
                        else
1439
                        if(req[16])     next_state = grant16;
1440
                        else
1441
                        if(req[17])     next_state = grant17;
1442
                        else
1443
                        if(req[18])     next_state = grant18;
1444
                   end
1445
           grant20:
1446
                // if this req is dropped or next is asserted, check for other req's
1447
                if(!req[20] | advance)
1448
                   begin
1449
                        if(req[21])     next_state = grant21;
1450
                        else
1451
                        if(req[22])     next_state = grant22;
1452
                        else
1453
                        if(req[23])     next_state = grant23;
1454
                        else
1455
                        if(req[24])     next_state = grant24;
1456
                        else
1457
                        if(req[25])     next_state = grant25;
1458
                        else
1459
                        if(req[26])     next_state = grant26;
1460
                        else
1461
                        if(req[27])     next_state = grant27;
1462
                        else
1463
                        if(req[28])     next_state = grant28;
1464
                        else
1465
                        if(req[29])     next_state = grant29;
1466
                        else
1467
                        if(req[30])     next_state = grant30;
1468
                        else
1469
                        if(req[0])       next_state = grant0;
1470
                        else
1471
                        if(req[1])      next_state = grant1;
1472
                        else
1473
                        if(req[2])      next_state = grant2;
1474
                        else
1475
                        if(req[3])      next_state = grant3;
1476
                        else
1477
                        if(req[4])      next_state = grant4;
1478
                        else
1479
                        if(req[5])      next_state = grant5;
1480
                        else
1481
                        if(req[6])      next_state = grant6;
1482
                        else
1483
                        if(req[7])      next_state = grant7;
1484
                        else
1485
                        if(req[8])      next_state = grant8;
1486
                        else
1487
                        if(req[9])      next_state = grant9;
1488
                        else
1489
                        if(req[10])     next_state = grant10;
1490
                        else
1491
                        if(req[11])     next_state = grant11;
1492
                        else
1493
                        if(req[12])     next_state = grant12;
1494
                        else
1495
                        if(req[13])     next_state = grant13;
1496
                        else
1497
                        if(req[14])     next_state = grant14;
1498
                        else
1499
                        if(req[15])     next_state = grant15;
1500
                        else
1501
                        if(req[16])     next_state = grant16;
1502
                        else
1503
                        if(req[17])     next_state = grant17;
1504
                        else
1505
                        if(req[18])     next_state = grant18;
1506
                        else
1507
                        if(req[19])     next_state = grant19;
1508
                   end
1509
           grant21:
1510
                // if this req is dropped or next is asserted, check for other req's
1511
                if(!req[21] | advance)
1512
                   begin
1513
                        if(req[22])     next_state = grant22;
1514
                        else
1515
                        if(req[23])     next_state = grant23;
1516
                        else
1517
                        if(req[24])     next_state = grant24;
1518
                        else
1519
                        if(req[25])     next_state = grant25;
1520
                        else
1521
                        if(req[26])     next_state = grant26;
1522
                        else
1523
                        if(req[27])     next_state = grant27;
1524
                        else
1525
                        if(req[28])     next_state = grant28;
1526
                        else
1527
                        if(req[29])     next_state = grant29;
1528
                        else
1529
                        if(req[30])     next_state = grant30;
1530
                        else
1531
                        if(req[0])       next_state = grant0;
1532
                        else
1533
                        if(req[1])      next_state = grant1;
1534
                        else
1535
                        if(req[2])      next_state = grant2;
1536
                        else
1537
                        if(req[3])      next_state = grant3;
1538
                        else
1539
                        if(req[4])      next_state = grant4;
1540
                        else
1541
                        if(req[5])      next_state = grant5;
1542
                        else
1543
                        if(req[6])      next_state = grant6;
1544
                        else
1545
                        if(req[7])      next_state = grant7;
1546
                        else
1547
                        if(req[8])      next_state = grant8;
1548
                        else
1549
                        if(req[9])      next_state = grant9;
1550
                        else
1551
                        if(req[10])     next_state = grant10;
1552
                        else
1553
                        if(req[11])     next_state = grant11;
1554
                        else
1555
                        if(req[12])     next_state = grant12;
1556
                        else
1557
                        if(req[13])     next_state = grant13;
1558
                        else
1559
                        if(req[14])     next_state = grant14;
1560
                        else
1561
                        if(req[15])     next_state = grant15;
1562
                        else
1563
                        if(req[16])     next_state = grant16;
1564
                        else
1565
                        if(req[17])     next_state = grant17;
1566
                        else
1567
                        if(req[18])     next_state = grant18;
1568
                        else
1569
                        if(req[19])     next_state = grant19;
1570
                        else
1571
                        if(req[20])     next_state = grant20;
1572
                   end
1573
           grant22:
1574
                // if this req is dropped or next is asserted, check for other req's
1575
                if(!req[22] | advance)
1576
                   begin
1577
                        if(req[23])     next_state = grant23;
1578
                        else
1579
                        if(req[24])     next_state = grant24;
1580
                        else
1581
                        if(req[25])     next_state = grant25;
1582
                        else
1583
                        if(req[26])     next_state = grant26;
1584
                        else
1585
                        if(req[27])     next_state = grant27;
1586
                        else
1587
                        if(req[28])     next_state = grant28;
1588
                        else
1589
                        if(req[29])     next_state = grant29;
1590
                        else
1591
                        if(req[30])     next_state = grant30;
1592
                        else
1593
                        if(req[0])       next_state = grant0;
1594
                        else
1595
                        if(req[1])      next_state = grant1;
1596
                        else
1597
                        if(req[2])      next_state = grant2;
1598
                        else
1599
                        if(req[3])      next_state = grant3;
1600
                        else
1601
                        if(req[4])      next_state = grant4;
1602
                        else
1603
                        if(req[5])      next_state = grant5;
1604
                        else
1605
                        if(req[6])      next_state = grant6;
1606
                        else
1607
                        if(req[7])      next_state = grant7;
1608
                        else
1609
                        if(req[8])      next_state = grant8;
1610
                        else
1611
                        if(req[9])      next_state = grant9;
1612
                        else
1613
                        if(req[10])     next_state = grant10;
1614
                        else
1615
                        if(req[11])     next_state = grant11;
1616
                        else
1617
                        if(req[12])     next_state = grant12;
1618
                        else
1619
                        if(req[13])     next_state = grant13;
1620
                        else
1621
                        if(req[14])     next_state = grant14;
1622
                        else
1623
                        if(req[15])     next_state = grant15;
1624
                        else
1625
                        if(req[16])     next_state = grant16;
1626
                        else
1627
                        if(req[17])     next_state = grant17;
1628
                        else
1629
                        if(req[18])     next_state = grant18;
1630
                        else
1631
                        if(req[19])     next_state = grant19;
1632
                        else
1633
                        if(req[20])     next_state = grant20;
1634
                        else
1635
                        if(req[21])     next_state = grant21;
1636
                   end
1637
           grant23:
1638
                // if this req is dropped or next is asserted, check for other req's
1639
                if(!req[23] | advance)
1640
                   begin
1641
                        if(req[24])     next_state = grant24;
1642
                        else
1643
                        if(req[25])     next_state = grant25;
1644
                        else
1645
                        if(req[26])     next_state = grant26;
1646
                        else
1647
                        if(req[27])     next_state = grant27;
1648
                        else
1649
                        if(req[28])     next_state = grant28;
1650
                        else
1651
                        if(req[29])     next_state = grant29;
1652
                        else
1653
                        if(req[30])     next_state = grant30;
1654
                        else
1655
                        if(req[0])       next_state = grant0;
1656
                        else
1657
                        if(req[1])      next_state = grant1;
1658
                        else
1659
                        if(req[2])      next_state = grant2;
1660
                        else
1661
                        if(req[3])      next_state = grant3;
1662
                        else
1663
                        if(req[4])      next_state = grant4;
1664
                        else
1665
                        if(req[5])      next_state = grant5;
1666
                        else
1667
                        if(req[6])      next_state = grant6;
1668
                        else
1669
                        if(req[7])      next_state = grant7;
1670
                        else
1671
                        if(req[8])      next_state = grant8;
1672
                        else
1673
                        if(req[9])      next_state = grant9;
1674
                        else
1675
                        if(req[10])     next_state = grant10;
1676
                        else
1677
                        if(req[11])     next_state = grant11;
1678
                        else
1679
                        if(req[12])     next_state = grant12;
1680
                        else
1681
                        if(req[13])     next_state = grant13;
1682
                        else
1683
                        if(req[14])     next_state = grant14;
1684
                        else
1685
                        if(req[15])     next_state = grant15;
1686
                        else
1687
                        if(req[16])     next_state = grant16;
1688
                        else
1689
                        if(req[17])     next_state = grant17;
1690
                        else
1691
                        if(req[18])     next_state = grant18;
1692
                        else
1693
                        if(req[19])     next_state = grant19;
1694
                        else
1695
                        if(req[20])     next_state = grant20;
1696
                        else
1697
                        if(req[21])     next_state = grant21;
1698
                        else
1699
                        if(req[22])     next_state = grant22;
1700
                   end
1701
           grant24:
1702
                // if this req is dropped or next is asserted, check for other req's
1703
                if(!req[24] | advance)
1704
                   begin
1705
                        if(req[25])     next_state = grant25;
1706
                        else
1707
                        if(req[26])     next_state = grant26;
1708
                        else
1709
                        if(req[27])     next_state = grant27;
1710
                        else
1711
                        if(req[28])     next_state = grant28;
1712
                        else
1713
                        if(req[29])     next_state = grant29;
1714
                        else
1715
                        if(req[30])     next_state = grant30;
1716
                        else
1717
                        if(req[0])       next_state = grant0;
1718
                        else
1719
                        if(req[1])      next_state = grant1;
1720
                        else
1721
                        if(req[2])      next_state = grant2;
1722
                        else
1723
                        if(req[3])      next_state = grant3;
1724
                        else
1725
                        if(req[4])      next_state = grant4;
1726
                        else
1727
                        if(req[5])      next_state = grant5;
1728
                        else
1729
                        if(req[6])      next_state = grant6;
1730
                        else
1731
                        if(req[7])      next_state = grant7;
1732
                        else
1733
                        if(req[8])      next_state = grant8;
1734
                        else
1735
                        if(req[9])      next_state = grant9;
1736
                        else
1737
                        if(req[10])     next_state = grant10;
1738
                        else
1739
                        if(req[11])     next_state = grant11;
1740
                        else
1741
                        if(req[12])     next_state = grant12;
1742
                        else
1743
                        if(req[13])     next_state = grant13;
1744
                        else
1745
                        if(req[14])     next_state = grant14;
1746
                        else
1747
                        if(req[15])     next_state = grant15;
1748
                        else
1749
                        if(req[16])     next_state = grant16;
1750
                        else
1751
                        if(req[17])     next_state = grant17;
1752
                        else
1753
                        if(req[18])     next_state = grant18;
1754
                        else
1755
                        if(req[19])     next_state = grant19;
1756
                        else
1757
                        if(req[20])     next_state = grant20;
1758
                        else
1759
                        if(req[21])     next_state = grant21;
1760
                        else
1761
                        if(req[22])     next_state = grant22;
1762
                        else
1763
                        if(req[23])     next_state = grant23;
1764
                   end
1765
           grant25:
1766
                // if this req is dropped or next is asserted, check for other req's
1767
                if(!req[25] | advance)
1768
                   begin
1769
                        if(req[26])     next_state = grant26;
1770
                        else
1771
                        if(req[27])     next_state = grant27;
1772
                        else
1773
                        if(req[28])     next_state = grant28;
1774
                        else
1775
                        if(req[29])     next_state = grant29;
1776
                        else
1777
                        if(req[30])     next_state = grant30;
1778
                        else
1779
                        if(req[0])       next_state = grant0;
1780
                        else
1781
                        if(req[1])      next_state = grant1;
1782
                        else
1783
                        if(req[2])      next_state = grant2;
1784
                        else
1785
                        if(req[3])      next_state = grant3;
1786
                        else
1787
                        if(req[4])      next_state = grant4;
1788
                        else
1789
                        if(req[5])      next_state = grant5;
1790
                        else
1791
                        if(req[6])      next_state = grant6;
1792
                        else
1793
                        if(req[7])      next_state = grant7;
1794
                        else
1795
                        if(req[8])      next_state = grant8;
1796
                        else
1797
                        if(req[9])      next_state = grant9;
1798
                        else
1799
                        if(req[10])     next_state = grant10;
1800
                        else
1801
                        if(req[11])     next_state = grant11;
1802
                        else
1803
                        if(req[12])     next_state = grant12;
1804
                        else
1805
                        if(req[13])     next_state = grant13;
1806
                        else
1807
                        if(req[14])     next_state = grant14;
1808
                        else
1809
                        if(req[15])     next_state = grant15;
1810
                        else
1811
                        if(req[16])     next_state = grant16;
1812
                        else
1813
                        if(req[17])     next_state = grant17;
1814
                        else
1815
                        if(req[18])     next_state = grant18;
1816
                        else
1817
                        if(req[19])     next_state = grant19;
1818
                        else
1819
                        if(req[20])     next_state = grant20;
1820
                        else
1821
                        if(req[21])     next_state = grant21;
1822
                        else
1823
                        if(req[22])     next_state = grant22;
1824
                        else
1825
                        if(req[23])     next_state = grant23;
1826
                        else
1827
                        if(req[24])     next_state = grant24;
1828
                   end
1829
           grant26:
1830
                // if this req is dropped or next is asserted, check for other req's
1831
                if(!req[26] | advance)
1832
                   begin
1833
                        if(req[27])     next_state = grant27;
1834
                        else
1835
                        if(req[28])     next_state = grant28;
1836
                        else
1837
                        if(req[29])     next_state = grant29;
1838
                        else
1839
                        if(req[30])     next_state = grant30;
1840
                        else
1841
                        if(req[0])       next_state = grant0;
1842
                        else
1843
                        if(req[1])      next_state = grant1;
1844
                        else
1845
                        if(req[2])      next_state = grant2;
1846
                        else
1847
                        if(req[3])      next_state = grant3;
1848
                        else
1849
                        if(req[4])      next_state = grant4;
1850
                        else
1851
                        if(req[5])      next_state = grant5;
1852
                        else
1853
                        if(req[6])      next_state = grant6;
1854
                        else
1855
                        if(req[7])      next_state = grant7;
1856
                        else
1857
                        if(req[8])      next_state = grant8;
1858
                        else
1859
                        if(req[9])      next_state = grant9;
1860
                        else
1861
                        if(req[10])     next_state = grant10;
1862
                        else
1863
                        if(req[11])     next_state = grant11;
1864
                        else
1865
                        if(req[12])     next_state = grant12;
1866
                        else
1867
                        if(req[13])     next_state = grant13;
1868
                        else
1869
                        if(req[14])     next_state = grant14;
1870
                        else
1871
                        if(req[15])     next_state = grant15;
1872
                        else
1873
                        if(req[16])     next_state = grant16;
1874
                        else
1875
                        if(req[17])     next_state = grant17;
1876
                        else
1877
                        if(req[18])     next_state = grant18;
1878
                        else
1879
                        if(req[19])     next_state = grant19;
1880
                        else
1881
                        if(req[20])     next_state = grant20;
1882
                        else
1883
                        if(req[21])     next_state = grant21;
1884
                        else
1885
                        if(req[22])     next_state = grant22;
1886
                        else
1887
                        if(req[23])     next_state = grant23;
1888
                        else
1889
                        if(req[24])     next_state = grant24;
1890
                        else
1891
                        if(req[25])     next_state = grant25;
1892
                   end
1893
           grant27:
1894
                // if this req is dropped or next is asserted, check for other req's
1895
                if(!req[27] | advance)
1896
                   begin
1897
                        if(req[28])     next_state = grant28;
1898
                        else
1899
                        if(req[29])     next_state = grant29;
1900
                        else
1901
                        if(req[30])     next_state = grant30;
1902
                        else
1903
                        if(req[0])       next_state = grant0;
1904
                        else
1905
                        if(req[1])      next_state = grant1;
1906
                        else
1907
                        if(req[2])      next_state = grant2;
1908
                        else
1909
                        if(req[3])      next_state = grant3;
1910
                        else
1911
                        if(req[4])      next_state = grant4;
1912
                        else
1913
                        if(req[5])      next_state = grant5;
1914
                        else
1915
                        if(req[6])      next_state = grant6;
1916
                        else
1917
                        if(req[7])      next_state = grant7;
1918
                        else
1919
                        if(req[8])      next_state = grant8;
1920
                        else
1921
                        if(req[9])      next_state = grant9;
1922
                        else
1923
                        if(req[10])     next_state = grant10;
1924
                        else
1925
                        if(req[11])     next_state = grant11;
1926
                        else
1927
                        if(req[12])     next_state = grant12;
1928
                        else
1929
                        if(req[13])     next_state = grant13;
1930
                        else
1931
                        if(req[14])     next_state = grant14;
1932
                        else
1933
                        if(req[15])     next_state = grant15;
1934
                        else
1935
                        if(req[16])     next_state = grant16;
1936
                        else
1937
                        if(req[17])     next_state = grant17;
1938
                        else
1939
                        if(req[18])     next_state = grant18;
1940
                        else
1941
                        if(req[19])     next_state = grant19;
1942
                        else
1943
                        if(req[20])     next_state = grant20;
1944
                        else
1945
                        if(req[21])     next_state = grant21;
1946
                        else
1947
                        if(req[22])     next_state = grant22;
1948
                        else
1949
                        if(req[23])     next_state = grant23;
1950
                        else
1951
                        if(req[24])     next_state = grant24;
1952
                        else
1953
                        if(req[25])     next_state = grant25;
1954
                        else
1955
                        if(req[26])     next_state = grant26;
1956
                   end
1957
           grant28:
1958
                // if this req is dropped or next is asserted, check for other req's
1959
                if(!req[28] | advance)
1960
                   begin
1961
                        if(req[29])     next_state = grant29;
1962
                        else
1963
                        if(req[30])     next_state = grant30;
1964
                        else
1965
                        if(req[0])       next_state = grant0;
1966
                        else
1967
                        if(req[1])      next_state = grant1;
1968
                        else
1969
                        if(req[2])      next_state = grant2;
1970
                        else
1971
                        if(req[3])      next_state = grant3;
1972
                        else
1973
                        if(req[4])      next_state = grant4;
1974
                        else
1975
                        if(req[5])      next_state = grant5;
1976
                        else
1977
                        if(req[6])      next_state = grant6;
1978
                        else
1979
                        if(req[7])      next_state = grant7;
1980
                        else
1981
                        if(req[8])      next_state = grant8;
1982
                        else
1983
                        if(req[9])      next_state = grant9;
1984
                        else
1985
                        if(req[10])     next_state = grant10;
1986
                        else
1987
                        if(req[11])     next_state = grant11;
1988
                        else
1989
                        if(req[12])     next_state = grant12;
1990
                        else
1991
                        if(req[13])     next_state = grant13;
1992
                        else
1993
                        if(req[14])     next_state = grant14;
1994
                        else
1995
                        if(req[15])     next_state = grant15;
1996
                        else
1997
                        if(req[16])     next_state = grant16;
1998
                        else
1999
                        if(req[17])     next_state = grant17;
2000
                        else
2001
                        if(req[18])     next_state = grant18;
2002
                        else
2003
                        if(req[19])     next_state = grant19;
2004
                        else
2005
                        if(req[20])     next_state = grant20;
2006
                        else
2007
                        if(req[21])     next_state = grant21;
2008
                        else
2009
                        if(req[22])     next_state = grant22;
2010
                        else
2011
                        if(req[23])     next_state = grant23;
2012
                        else
2013
                        if(req[24])     next_state = grant24;
2014
                        else
2015
                        if(req[25])     next_state = grant25;
2016
                        else
2017
                        if(req[26])     next_state = grant26;
2018
                        else
2019
                        if(req[27])     next_state = grant27;
2020
                   end
2021
           grant29:
2022
                // if this req is dropped or next is asserted, check for other req's
2023
                if(!req[29] | advance)
2024
                   begin
2025
                        if(req[30])     next_state = grant30;
2026
                        else
2027
                        if(req[0])       next_state = grant0;
2028
                        else
2029
                        if(req[1])      next_state = grant1;
2030
                        else
2031
                        if(req[2])      next_state = grant2;
2032
                        else
2033
                        if(req[3])      next_state = grant3;
2034
                        else
2035
                        if(req[4])      next_state = grant4;
2036
                        else
2037
                        if(req[5])      next_state = grant5;
2038
                        else
2039
                        if(req[6])      next_state = grant6;
2040
                        else
2041
                        if(req[7])      next_state = grant7;
2042
                        else
2043
                        if(req[8])      next_state = grant8;
2044
                        else
2045
                        if(req[9])      next_state = grant9;
2046
                        else
2047
                        if(req[10])     next_state = grant10;
2048
                        else
2049
                        if(req[11])     next_state = grant11;
2050
                        else
2051
                        if(req[12])     next_state = grant12;
2052
                        else
2053
                        if(req[13])     next_state = grant13;
2054
                        else
2055
                        if(req[14])     next_state = grant14;
2056
                        else
2057
                        if(req[15])     next_state = grant15;
2058
                        else
2059
                        if(req[16])     next_state = grant16;
2060
                        else
2061
                        if(req[17])     next_state = grant17;
2062
                        else
2063
                        if(req[18])     next_state = grant18;
2064
                        else
2065
                        if(req[19])     next_state = grant19;
2066
                        else
2067
                        if(req[20])     next_state = grant20;
2068
                        else
2069
                        if(req[21])     next_state = grant21;
2070
                        else
2071
                        if(req[22])     next_state = grant22;
2072
                        else
2073
                        if(req[23])     next_state = grant23;
2074
                        else
2075
                        if(req[24])     next_state = grant24;
2076
                        else
2077
                        if(req[25])     next_state = grant25;
2078
                        else
2079
                        if(req[26])     next_state = grant26;
2080
                        else
2081
                        if(req[27])     next_state = grant27;
2082
                        else
2083
                        if(req[28])     next_state = grant28;
2084
                   end
2085
           grant30:
2086
                // if this req is dropped or next is asserted, check for other req's
2087
                if(!req[30] | advance)
2088
                   begin
2089
                        if(req[0])       next_state = grant0;
2090
                        else
2091
                        if(req[1])      next_state = grant1;
2092
                        else
2093
                        if(req[2])      next_state = grant2;
2094
                        else
2095
                        if(req[3])      next_state = grant3;
2096
                        else
2097
                        if(req[4])      next_state = grant4;
2098
                        else
2099
                        if(req[5])      next_state = grant5;
2100
                        else
2101
                        if(req[6])      next_state = grant6;
2102
                        else
2103
                        if(req[7])      next_state = grant7;
2104
                        else
2105
                        if(req[8])      next_state = grant8;
2106
                        else
2107
                        if(req[9])      next_state = grant9;
2108
                        else
2109
                        if(req[10])     next_state = grant10;
2110
                        else
2111
                        if(req[11])     next_state = grant11;
2112
                        else
2113
                        if(req[12])     next_state = grant12;
2114
                        else
2115
                        if(req[13])     next_state = grant13;
2116
                        else
2117
                        if(req[14])     next_state = grant14;
2118
                        else
2119
                        if(req[15])     next_state = grant15;
2120
                        else
2121
                        if(req[16])     next_state = grant16;
2122
                        else
2123
                        if(req[17])     next_state = grant17;
2124
                        else
2125
                        if(req[18])     next_state = grant18;
2126
                        else
2127
                        if(req[19])     next_state = grant19;
2128
                        else
2129
                        if(req[20])     next_state = grant20;
2130
                        else
2131
                        if(req[21])     next_state = grant21;
2132
                        else
2133
                        if(req[22])     next_state = grant22;
2134
                        else
2135
                        if(req[23])     next_state = grant23;
2136
                        else
2137
                        if(req[24])     next_state = grant24;
2138
                        else
2139
                        if(req[25])     next_state = grant25;
2140
                        else
2141
                        if(req[26])     next_state = grant26;
2142
                        else
2143
                        if(req[27])     next_state = grant27;
2144
                        else
2145
                        if(req[28])     next_state = grant28;
2146
                        else
2147
                        if(req[29])     next_state = grant29;
2148
                   end
2149
        endcase
2150
   end
2151
 
2152
endmodule
2153
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.