OpenCores
URL https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk

Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc

[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [perl_gui/] [lib/] [ip/] [NoC/] [ni_slave.IP] - Blame information for rev 38

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 38 alirezamon
#######################################################################
2
##      File: ni_slave.IP
3
##
4
##      Copyright (C) 2014-2016  Alireza Monemi
5
##
6
##      This file is part of ProNoC 1.8.0
7
##
8
##      WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT
9
##      MAY CAUSE UNEXPECTED BEHAIVOR.
10
################################################################################
11
 
12
$ipgen = bless( {
13
                  'category' => 'NoC',
14
                  'plugs' => {
15
                               'wb_slave' => {
16
                                               '0' => {
17
                                                        'width' => 10,
18
                                                        'addr' => '0xb800_0000  0xbfff_ffff             custom devices',
19
                                                        'name' => 'wb_ctrl'
20
                                                      },
21
                                               'type' => 'num',
22
                                               '1' => {
23
                                                        'width' => 'IN_MEM_BYTEw',
24
                                                        'addr' => '0xb800_0000  0xbfff_ffff             custom devices',
25
                                                        'name' => 'wb_in'
26
                                                      },
27
                                               'wb_slave' => {},
28
                                               'value' => 3,
29
                                               '2' => {
30
                                                        'name' => 'wb_out',
31
                                                        'addr' => '0xb800_0000  0xbfff_ffff             custom devices',
32
                                                        'width' => 'OUT_MEM_BYTEw'
33
                                                      }
34
                                             },
35
                               'reset' => {
36
                                            'reset' => {},
37
                                            'type' => 'num',
38
                                            '0' => {
39
                                                     'name' => 'reset'
40
                                                   },
41
                                            'value' => 1
42
                                          },
43
                               'interrupt_peripheral' => {
44
                                                           '0' => {
45
                                                                    'name' => 'interrupt'
46
                                                                  },
47
                                                           'type' => 'num',
48
                                                           'interrupt_peripheral' => {},
49
                                                           'value' => 1
50
                                                         },
51
                               'clk' => {
52
                                          '0' => {
53
                                                   'name' => 'clk'
54
                                                 },
55
                                          'type' => 'num',
56
                                          'clk' => {},
57
                                          'value' => 1
58
                                        }
59
                             },
60
                  'parameters_order' => [
61
                                          'INPUT_MEM_Aw',
62
                                          'OUTPUT_MEM_Aw',
63
                                          'MAX_TRANSACTION_WIDTH',
64
                                          'MAX_BURST_SIZE',
65
                                          'DEBUG_EN',
66
                                          'CLASS_HDR_WIDTH',
67
                                          'ROUTING_HDR_WIDTH',
68
                                          'DST_ADR_HDR_WIDTH',
69
                                          'SRC_ADR_HDR_WIDTH',
70
                                          'TOPOLOGY',
71
                                          'ROUTE_NAME',
72
                                          'NX',
73
                                          'NY',
74
                                          'C',
75
                                          'V',
76
                                          'B',
77
                                          'Fpay',
78
                                          'CRC_EN',
79
                                          'SWA_ARBITER_TYPE',
80
                                          'WEIGHTw',
81
                                          'Dw',
82
                                          'S_Aw',
83
                                          'M_Aw',
84
                                          'TAGw',
85
                                          'SELw',
86
                                          'IN_MEM_BYTEw',
87
                                          'OUT_MEM_BYTEw'
88
                                        ],
89
                  'description_pdf' => '/mpsoc/src_peripheral/ni/NI.pdf',
90
                  'ports' => {
91
                               'ctrl_cti_i' => {
92
                                                 'range' => 'TAGw-1     :   0',
93
                                                 'intfc_port' => 'cti_i',
94
                                                 'type' => 'input',
95
                                                 'intfc_name' => 'plug:wb_slave[0]'
96
                                               },
97
                               'ctrl_dat_o' => {
98
                                                 'intfc_name' => 'plug:wb_slave[0]',
99
                                                 'type' => 'output',
100
                                                 'intfc_port' => 'dat_o',
101
                                                 'range' => 'Dw-1       :   0'
102
                                               },
103
                               'ctrl_addr_i' => {
104
                                                  'intfc_port' => 'adr_i',
105
                                                  'range' => 'S_Aw-1     :   0',
106
                                                  'type' => 'input',
107
                                                  'intfc_name' => 'plug:wb_slave[0]'
108
                                                },
109
                               'current_x' => {
110
                                                'type' => 'input',
111
                                                'intfc_port' => 'current_x',
112
                                                'range' => 'Xw-1   :   0',
113
                                                'intfc_name' => 'socket:ni[0]'
114
                                              },
115
                               'out_cyc_i' => {
116
                                                'intfc_port' => 'cyc_i',
117
                                                'range' => '',
118
                                                'type' => 'input',
119
                                                'intfc_name' => 'plug:wb_slave[2]'
120
                                              },
121
                               'in_sel_i' => {
122
                                               'intfc_name' => 'plug:wb_slave[1]',
123
                                               'intfc_port' => 'sel_i',
124
                                               'range' => 'SELw-1     :   0',
125
                                               'type' => 'input'
126
                                             },
127
                               'in_cti_i' => {
128
                                               'intfc_port' => 'cti_i',
129
                                               'range' => 'TAGw-1     :   0',
130
                                               'type' => 'input',
131
                                               'intfc_name' => 'plug:wb_slave[1]'
132
                                             },
133
                               'flit_in_wr' => {
134
                                                 'intfc_name' => 'socket:ni[0]',
135
                                                 'range' => '',
136
                                                 'intfc_port' => 'flit_in_wr',
137
                                                 'type' => 'input'
138
                                               },
139
                               'in_dat_i' => {
140
                                               'intfc_name' => 'plug:wb_slave[1]',
141
                                               'type' => 'input',
142
                                               'range' => 'Dw-1       :   0',
143
                                               'intfc_port' => 'dat_i'
144
                                             },
145
                               'out_we_i' => {
146
                                               'type' => 'input',
147
                                               'intfc_port' => 'we_i',
148
                                               'range' => '',
149
                                               'intfc_name' => 'plug:wb_slave[2]'
150
                                             },
151
                               'clk' => {
152
                                          'intfc_name' => 'plug:clk[0]',
153
                                          'range' => '',
154
                                          'intfc_port' => 'clk_i',
155
                                          'type' => 'input'
156
                                        },
157
                               'in_dat_o' => {
158
                                               'type' => 'output',
159
                                               'range' => 'Dw-1       :   0',
160
                                               'intfc_port' => 'dat_o',
161
                                               'intfc_name' => 'plug:wb_slave[1]'
162
                                             },
163
                               'out_sel_i' => {
164
                                                'intfc_port' => 'sel_i',
165
                                                'range' => 'SELw-1     :   0',
166
                                                'type' => 'input',
167
                                                'intfc_name' => 'plug:wb_slave[2]'
168
                                              },
169
                               'out_dat_i' => {
170
                                                'intfc_name' => 'plug:wb_slave[2]',
171
                                                'type' => 'input',
172
                                                'range' => 'Dw-1       :   0',
173
                                                'intfc_port' => 'dat_i'
174
                                              },
175
                               'flit_out_wr' => {
176
                                                  'intfc_name' => 'socket:ni[0]',
177
                                                  'range' => '',
178
                                                  'intfc_port' => 'flit_out_wr',
179
                                                  'type' => 'output'
180
                                                },
181
                               'ctrl_ack_o' => {
182
                                                 'intfc_name' => 'plug:wb_slave[0]',
183
                                                 'range' => '',
184
                                                 'intfc_port' => 'ack_o',
185
                                                 'type' => 'output'
186
                                               },
187
                               'ctrl_dat_i' => {
188
                                                 'intfc_name' => 'plug:wb_slave[0]',
189
                                                 'type' => 'input',
190
                                                 'intfc_port' => 'dat_i',
191
                                                 'range' => 'Dw-1       :   0'
192
                                               },
193
                               'ctrl_sel_i' => {
194
                                                 'intfc_name' => 'plug:wb_slave[0]',
195
                                                 'intfc_port' => 'sel_i',
196
                                                 'range' => 'SELw-1     :   0',
197
                                                 'type' => 'input'
198
                                               },
199
                               'out_cti_i' => {
200
                                                'intfc_name' => 'plug:wb_slave[2]',
201
                                                'range' => 'TAGw-1     :   0',
202
                                                'intfc_port' => 'cti_i',
203
                                                'type' => 'input'
204
                                              },
205
                               'credit_out' => {
206
                                                 'intfc_name' => 'socket:ni[0]',
207
                                                 'range' => 'V-1    :   0',
208
                                                 'intfc_port' => 'credit_out',
209
                                                 'type' => 'output'
210
                                               },
211
                               'out_stb_i' => {
212
                                                'intfc_name' => 'plug:wb_slave[2]',
213
                                                'type' => 'input',
214
                                                'intfc_port' => 'stb_i',
215
                                                'range' => ''
216
                                              },
217
                               'in_addr_i' => {
218
                                                'intfc_port' => 'adr_i',
219
                                                'range' => 'S_Aw-1     :   0',
220
                                                'type' => 'input',
221
                                                'intfc_name' => 'plug:wb_slave[1]'
222
                                              },
223
                               'in_cyc_i' => {
224
                                               'intfc_name' => 'plug:wb_slave[1]',
225
                                               'type' => 'input',
226
                                               'intfc_port' => 'cyc_i',
227
                                               'range' => ''
228
                                             },
229
                               'flit_out' => {
230
                                               'range' => 'Fw-1   :   0',
231
                                               'intfc_port' => 'flit_out',
232
                                               'type' => 'output',
233
                                               'intfc_name' => 'socket:ni[0]'
234
                                             },
235
                               'ctrl_cyc_i' => {
236
                                                 'intfc_name' => 'plug:wb_slave[0]',
237
                                                 'intfc_port' => 'cyc_i',
238
                                                 'range' => '',
239
                                                 'type' => 'input'
240
                                               },
241
                               'in_ack_o' => {
242
                                               'intfc_name' => 'plug:wb_slave[1]',
243
                                               'type' => 'output',
244
                                               'intfc_port' => 'ack_o',
245
                                               'range' => ''
246
                                             },
247
                               'out_dat_o' => {
248
                                                'intfc_name' => 'plug:wb_slave[2]',
249
                                                'type' => 'output',
250
                                                'range' => 'Dw-1       :   0',
251
                                                'intfc_port' => 'dat_o'
252
                                              },
253
                               'in_stb_i' => {
254
                                               'intfc_name' => 'plug:wb_slave[1]',
255
                                               'range' => '',
256
                                               'intfc_port' => 'stb_i',
257
                                               'type' => 'input'
258
                                             },
259
                               'out_addr_i' => {
260
                                                 'type' => 'input',
261
                                                 'range' => 'S_Aw-1     :   0',
262
                                                 'intfc_port' => 'adr_i',
263
                                                 'intfc_name' => 'plug:wb_slave[2]'
264
                                               },
265
                               'in_we_i' => {
266
                                              'intfc_name' => 'plug:wb_slave[1]',
267
                                              'range' => '',
268
                                              'intfc_port' => 'we_i',
269
                                              'type' => 'input'
270
                                            },
271
                               'flit_in' => {
272
                                              'intfc_name' => 'socket:ni[0]',
273
                                              'type' => 'input',
274
                                              'range' => 'Fw-1   :   0',
275
                                              'intfc_port' => 'flit_in'
276
                                            },
277
                               'credit_in' => {
278
                                                'intfc_name' => 'socket:ni[0]',
279
                                                'intfc_port' => 'credit_in',
280
                                                'range' => 'V-1    :   0',
281
                                                'type' => 'input'
282
                                              },
283
                               'current_y' => {
284
                                                'intfc_name' => 'socket:ni[0]',
285
                                                'range' => 'Yw-1   :   0',
286
                                                'intfc_port' => 'current_y',
287
                                                'type' => 'input'
288
                                              },
289
                               'ctrl_we_i' => {
290
                                                'type' => 'input',
291
                                                'intfc_port' => 'we_i',
292
                                                'range' => '',
293
                                                'intfc_name' => 'plug:wb_slave[0]'
294
                                              },
295
                               'reset' => {
296
                                            'type' => 'input',
297
                                            'intfc_port' => 'reset_i',
298
                                            'range' => '',
299
                                            'intfc_name' => 'plug:reset[0]'
300
                                          },
301
                               'out_ack_o' => {
302
                                                'intfc_name' => 'plug:wb_slave[2]',
303
                                                'type' => 'output',
304
                                                'intfc_port' => 'ack_o',
305
                                                'range' => ''
306
                                              },
307
                               'ctrl_stb_i' => {
308
                                                 'range' => '',
309
                                                 'intfc_port' => 'stb_i',
310
                                                 'type' => 'input',
311
                                                 'intfc_name' => 'plug:wb_slave[0]'
312
                                               },
313
                               'irq' => {
314
                                          'intfc_name' => 'plug:interrupt_peripheral[0]',
315
                                          'intfc_port' => 'int_o',
316
                                          'range' => '',
317
                                          'type' => 'output'
318
                                        }
319
                             },
320
                  'module_name' => 'ni_slave',
321
                  'file_name' => '/home/alireza/mywork/mpsoc/src_peripheral/ni/ni_slave.v',
322
                  'system_h' => ' /*        NI wb registers addresses
323
 
324
            1   :   STATUS2_WB_ADDR           // status2:
325
            2   :   BURST_SIZE_WB_ADDR       // The busrt size in words
326
 
327
            3   :   SEND_DATA_SIZE_WB_ADDR,  // The size of data to be sent in byte
328
            4   :   SEND_STRT_WB_ADDR,       // The address of data to be sent   in byte
329
            5   :   SEND_DEST_WB_ADDR        // The destination router address
330
            6   :   SEND_CTRL_WB_ADDR
331
 
332
            7   :   RECEIVE_DATA_SIZE_WB_ADDR // The size of recieved data in byte
333
            8   :   RECEIVE_STRT_WB_ADDR      // The address pointer of reciever memory in byte
334
            9   :   RECEIVE_SRC_WB_ADDR       // The source router (the router which is sent this packet).
335
            10  :   RECEIVE_CTRL_WB_ADDR      // The NI reciever control register
336
            11  :   RECEIVE_MAX_BUFF_SIZ      // The receiver\'s  allocated buffer size in words. If the packet size is bigger tha the buffer size the rest of will be discarred
337
 
338
*/
339
 
340
 
341
 
342
#define ${IP}_STATUS1_REG   (*((volatile unsigned int *) ($BASE)))   //0
343
#define ${IP}_STATUS2_REG   (*((volatile unsigned int *) ($BASE+4)))   //1
344
#define ${IP}_BURST_SIZE_REG  (*((volatile unsigned int *) ($BASE+8))) //2
345
 
346
 
347
#define ${IP}_NUM_VCs   ${V}
348
 
349
#define ${IP}_SEND_DATA_SIZE_REG(v)  (*((volatile unsigned int *) ($BASE+12+(v<<6))))  //3
350
#define ${IP}_SEND_START_ADDR_REG(v)   (*((volatile unsigned int *) ($BASE+16+(v<<6))))  //4
351
#define ${IP}_SEND_DEST_REG(v)   (*((volatile unsigned int *) ($BASE+20+(v<<6)))) //5
352
#define ${IP}_SEND_CTRL_REG(v)    (*((volatile unsigned int *) ($BASE+24+(v<<6)))) //6
353
 
354
#define ${IP}_RECEIVE_DATA_SIZE_REG(v)  (*((volatile unsigned int *) ($BASE+28+(v<<6)))) //7
355
#define ${IP}_RECEIVE_STRT_ADDR_REG(v)   (*((volatile unsigned int *) ($BASE+32+(v<<6)))) //8
356
#define ${IP}_RECEIVE_CTRL_REG(v)    (*((volatile unsigned int *) ($BASE+36+(v<<6))))  //9
357
#define ${IP}_RECEIVE_MAX_BUFF_SIZ_REG(v)    (*((volatile unsigned int *) ($BASE+40+(v<<6)))) //10
358
#define ${IP}_RECEIVE_CRC_MATCH_REG(v)    (*((volatile unsigned int *) ($BASE+44+(v<<6)))) //11
359
 
360
 
361
 
362
// assign status1= {send_vc_is_busy,receive_vc_is_busy,receive_vc_packet_is_saved,receive_vc_got_packet};
363
// assign status2= {send_enable_binarry,receive_enable_binarry,crc_miss_match,got_pck_isr, save_done_isr,send_done_isr,got_pck_int_en, save_done_int_en,send_done_int_en};
364
 
365
 
366
#define ${IP}_got_packet(v)     ((${IP}_STATUS1_REG >> (v)) & 0x1)
367
#define ${IP}_packet_is_saved(v) ((${IP}_STATUS1_REG >> (${V}+v)) & 0x1)
368
#define ${IP}_receive_is_busy(v)        ((${IP}_STATUS1_REG >> (2*${V}+v)) & 0x1)
369
#define ${IP}_send_is_busy(v)   ((${IP}_STATUS1_REG >> (3*${V}+v)) & 0x1)
370
 
371
 
372
 
373
void ${IP}_initial (unsigned int burst_size) {
374
         ${IP}_BURST_SIZE_REG  =  burst_size;
375
}
376
 
377
 
378
void ${IP}_transfer (unsigned int v, unsigned int class_num, unsigned int data_start_addr,  unsigned int data_size, unsigned int dest_x,unsigned int dest_y){
379
         while (${IP}_send_is_busy(v)); // wait until VC is busy sending previous packet
380
 
381
        ${IP}_SEND_DATA_SIZE_REG(v)  = data_size;
382
        ${IP}_SEND_START_ADDR_REG(v)  = data_start_addr;
383
        ${IP}_SEND_DEST_REG(v)   = dest_x | (dest_y<<4)| (class_num<<8) ;
384
 
385
}
386
 
387
void ${IP}_receive (unsigned int v, unsigned int data_start_addr,  unsigned int max_buffer_size){
388
         while (${IP}_receive_is_busy(v)); // wait until VC is busy saving previous packet
389
 
390
        ${IP}_RECEIVE_STRT_ADDR_REG(v)  = data_start_addr;
391
        ${IP}_RECEIVE_MAX_BUFF_SIZ_REG(v) = max_buffer_size;
392
        ${IP}_RECEIVE_CTRL_REG(v)   = 1;
393
 
394
 
395
}',
396
                  'ip_name' => 'ni_slave',
397
                  'description' => '',
398
                  'sockets' => {
399
                                 'ni' => {
400
                                           'connection_num' => 'single connection',
401
                                           'ni' => {},
402
                                           'value' => 1,
403
                                           'type' => 'num',
404
                                           '0' => {
405
                                                    'name' => 'ni'
406
                                                  }
407
                                         }
408
                               },
409
                  'gui_status' => {
410
                                    'status' => 'ideal',
411
                                    'timeout' => 0
412
                                  },
413
                  'version' => 45,
414
                  'ports_order' => [
415
                                     'reset',
416
                                     'clk',
417
                                     'current_x',
418
                                     'current_y',
419
                                     'flit_out',
420
                                     'flit_out_wr',
421
                                     'credit_in',
422
                                     'flit_in',
423
                                     'flit_in_wr',
424
                                     'credit_out',
425
                                     'ctrl_dat_i',
426
                                     'ctrl_sel_i',
427
                                     'ctrl_addr_i',
428
                                     'ctrl_cti_i',
429
                                     'ctrl_stb_i',
430
                                     'ctrl_cyc_i',
431
                                     'ctrl_we_i',
432
                                     'ctrl_dat_o',
433
                                     'ctrl_ack_o',
434
                                     'in_dat_i',
435
                                     'in_sel_i',
436
                                     'in_addr_i',
437
                                     'in_cti_i',
438
                                     'in_stb_i',
439
                                     'in_cyc_i',
440
                                     'in_we_i',
441
                                     'in_dat_o',
442
                                     'in_ack_o',
443
                                     'out_dat_i',
444
                                     'out_sel_i',
445
                                     'out_addr_i',
446
                                     'out_cti_i',
447
                                     'out_stb_i',
448
                                     'out_cyc_i',
449
                                     'out_we_i',
450
                                     'out_dat_o',
451
                                     'out_ack_o',
452
                                     'irq'
453
                                   ],
454
                  'hdl_files' => [
455
                                   '/mpsoc/src_noc/arbiter.v',
456
                                   '/mpsoc/src_noc/flit_buffer.v',
457
                                   '/mpsoc/src_noc/input_ports.v',
458
                                   '/mpsoc/src_noc/main_comp.v',
459
                                   '/mpsoc/src_noc/route_mesh.v',
460
                                   '/mpsoc/src_noc/route_torus.v',
461
                                   '/mpsoc/src_noc/routing.v',
462
                                   '/mpsoc/src_peripheral/ni/ni_vc_dma.v',
463
                                   '/mpsoc/src_peripheral/ni/ni_vc_wb_slave_regs.v',
464
                                   '/mpsoc/src_peripheral/ni/ni_slave.v',
465
                                   '/mpsoc/src_peripheral/ni/ni_crc32.v',
466
                                   '/mpsoc/src_peripheral/ram/byte_enabled_generic_ram.sv',
467
                                   '/mpsoc/src_peripheral/ram/generic_ram.v',
468
                                   '/mpsoc/src_peripheral/ram/wb_bram_ctrl.v',
469
                                   '/mpsoc/src_peripheral/ram/wb_dual_port_ram.v',
470
                                   '/mpsoc/src_peripheral/ram/wb_single_port_ram.v'
471
                                 ],
472
                  'unused' => {
473
                                'plug:wb_slave[0]' => [
474
                                                        'rty_o',
475
                                                        'tag_i',
476
                                                        'bte_i',
477
                                                        'err_o'
478
                                                      ],
479
                                'plug:wb_slave[1]' => [
480
                                                        'rty_o',
481
                                                        'tag_i',
482
                                                        'bte_i',
483
                                                        'err_o'
484
                                                      ],
485
                                'plug:wb_slave[2]' => [
486
                                                        'rty_o',
487
                                                        'tag_i',
488
                                                        'bte_i',
489
                                                        'err_o'
490
                                                      ]
491
                              },
492
                  'parameters' => {
493
                                    'S_Aw' => {
494
                                                'type' => 'Fixed',
495
                                                'global_param' => 'Localparam',
496
                                                'content' => '',
497
                                                'default' => '8',
498
                                                'info' => 'Parameter',
499
                                                'redefine_param' => 1
500
                                              },
501
                                    'SELw' => {
502
                                                'type' => 'Fixed',
503
                                                'default' => '4',
504
                                                'content' => '',
505
                                                'global_param' => 'Localparam',
506
                                                'redefine_param' => 1,
507
                                                'info' => 'Parameter'
508
                                              },
509
                                    'Fw' => {
510
                                              'info' => undef,
511
                                              'redefine_param' => 0,
512
                                              'global_param' => 'Localparam',
513
                                              'content' => '',
514
                                              'default' => '2+V+Fpay',
515
                                              'type' => 'Fixed'
516
                                            },
517
                                    'V' => {
518
                                             'info' => 'Parameter',
519
                                             'redefine_param' => 1,
520
                                             'global_param' => 'Parameter',
521
                                             'content' => '',
522
                                             'default' => '4',
523
                                             'type' => 'Fixed'
524
                                           },
525
                                    'INPUT_MEM_Aw' => {
526
                                                        'redefine_param' => 1,
527
                                                        'info' => 'Parameter',
528
                                                        'default' => ' 10',
529
                                                        'content' => '4,32,1',
530
                                                        'global_param' => 'Parameter',
531
                                                        'type' => 'Spin-button'
532
                                                      },
533
                                    'B' => {
534
                                             'global_param' => 'Parameter',
535
                                             'content' => '',
536
                                             'default' => ' 4',
537
                                             'type' => 'Fixed',
538
                                             'info' => 'Parameter',
539
                                             'redefine_param' => 1
540
                                           },
541
                                    'MAX_TRANSACTION_WIDTH' => {
542
                                                                 'type' => 'Spin-button',
543
                                                                 'content' => '4,32,1',
544
                                                                 'global_param' => 'Localparam',
545
                                                                 'default' => '13',
546
                                                                 'info' => 'maximum packet size width  in words.
547
The maximum data that can be sent via one packet will be 2 power of MAX_DMA_TRANSACTION_WIDTH in words.',
548
                                                                 'redefine_param' => 1
549
                                                               },
550
                                    'Xw' => {
551
                                              'redefine_param' => 0,
552
                                              'info' => undef,
553
                                              'default' => 'log2(NX)',
554
                                              'content' => '',
555
                                              'global_param' => 'Localparam',
556
                                              'type' => 'Fixed'
557
                                            },
558
                                    'ROUTE_NAME' => {
559
                                                      'type' => 'Fixed',
560
                                                      'default' => '"XY"   ',
561
                                                      'global_param' => 'Parameter',
562
                                                      'content' => '',
563
                                                      'redefine_param' => 1,
564
                                                      'info' => 'Parameter'
565
                                                    },
566
                                    'OUT_MEM_BYTEw' => {
567
                                                         'type' => 'Fixed',
568
                                                         'default' => 'OUTPUT_MEM_Aw+(Dw/8)',
569
                                                         'content' => '',
570
                                                         'global_param' => 'Don\'t include',
571
                                                         'redefine_param' => 1,
572
                                                         'info' => undef
573
                                                       },
574
                                    'Dw' => {
575
                                              'global_param' => 'Localparam',
576
                                              'content' => '32,256,8',
577
                                              'default' => '32',
578
                                              'type' => 'Spin-button',
579
                                              'info' => 'wishbone_bus data width in bits.',
580
                                              'redefine_param' => 1
581
                                            },
582
                                    'SRC_ADR_HDR_WIDTH' => {
583
                                                             'redefine_param' => 1,
584
                                                             'info' => 'Parameter',
585
                                                             'type' => 'Fixed',
586
                                                             'default' => '8',
587
                                                             'content' => '',
588
                                                             'global_param' => 'Localparam'
589
                                                           },
590
                                    'M_Aw' => {
591
                                                'global_param' => 'Localparam',
592
                                                'content' => 'Dw',
593
                                                'default' => '32',
594
                                                'type' => 'Fixed',
595
                                                'info' => 'Parameter',
596
                                                'redefine_param' => 1
597
                                              },
598
                                    'C' => {
599
                                             'info' => 'Parameter',
600
                                             'redefine_param' => 1,
601
                                             'type' => 'Fixed',
602
                                             'content' => '',
603
                                             'global_param' => 'Parameter',
604
                                             'default' => ' 4'
605
                                           },
606
                                    'CRC_EN' => {
607
                                                  'info' => 'The parameter can be selected as "YES" or "NO".
608
If CRC is enabled, then two CRC32 generator modules will be added to the NI. One CRC generator for calculating CRC of sending packets and another for receiving packets.   The CRC32 value of each packet is send via tail flit and at destination NI, is will be compared with received packet generated CRC32. The matching results can be used for error-detection and can be read via NI slave interface. ',
609
                                                  'redefine_param' => 1,
610
                                                  'type' => 'Combo-box',
611
                                                  'content' => '"YES","NO"',
612
                                                  'global_param' => 'Localparam',
613
                                                  'default' => '"NO"'
614
                                                },
615
                                    'NX' => {
616
                                              'info' => 'Parameter',
617
                                              'redefine_param' => 1,
618
                                              'global_param' => 'Parameter',
619
                                              'content' => '',
620
                                              'default' => ' 4',
621
                                              'type' => 'Fixed'
622
                                            },
623
                                    'MAX_BURST_SIZE' => {
624
                                                          'type' => 'Combo-box',
625
                                                          'content' => '2,4,8,16,32,64,128,256,512,1024,2048',
626
                                                          'global_param' => 'Localparam',
627
                                                          'default' => '16',
628
                                                          'info' => 'Maximum burst size in words.
629
The NI release wishbone bus  each time one burst is completed or when the VC\'s internal FIFO becomes full.  The bus will be released for one clock cycle. Then in case, there are other active VCs, another active VC will get access to the bus using round robin arbiter.  This process will be continued until all desired data is transferred. ',
630
                                                          'redefine_param' => 1
631
                                                        },
632
                                    'CLASS_HDR_WIDTH' => {
633
                                                           'default' => '8',
634
                                                           'content' => '',
635
                                                           'global_param' => 'Localparam',
636
                                                           'type' => 'Fixed',
637
                                                           'redefine_param' => 1,
638
                                                           'info' => 'Parameter'
639
                                                         },
640
                                    'Fpay' => {
641
                                                'default' => ' 32',
642
                                                'global_param' => 'Parameter',
643
                                                'content' => '',
644
                                                'type' => 'Fixed',
645
                                                'redefine_param' => 1,
646
                                                'info' => 'Parameter'
647
                                              },
648
                                    'ROUTE_TYPE' => {
649
                                                      'type' => 'Fixed',
650
                                                      'default' => '   ',
651
                                                      'content' => '',
652
                                                      'global_param' => 'Parameter',
653
                                                      'redefine_param' => 1,
654
                                                      'info' => 'Parameter'
655
                                                    },
656
                                    'IN_MEM_BYTEw' => {
657
                                                        'redefine_param' => 1,
658
                                                        'info' => undef,
659
                                                        'type' => 'Fixed',
660
                                                        'default' => 'INPUT_MEM_Aw+(Dw/8)',
661
                                                        'global_param' => 'Don\'t include',
662
                                                        'content' => ''
663
                                                      },
664
                                    'SWA_ARBITER_TYPE' => {
665
                                                            'redefine_param' => 1,
666
                                                            'info' => undef,
667
                                                            'type' => 'Fixed',
668
                                                            'default' => '"RRA"',
669
                                                            'content' => '',
670
                                                            'global_param' => 'Parameter'
671
                                                          },
672
                                    'WEIGHTw' => {
673
                                                   'default' => '4',
674
                                                   'global_param' => 'Parameter',
675
                                                   'content' => '',
676
                                                   'type' => 'Fixed',
677
                                                   'redefine_param' => 1,
678
                                                   'info' => undef
679
                                                 },
680
                                    'OUTPUT_MEM_Aw' => {
681
                                                         'type' => 'Spin-button',
682
                                                         'default' => ' 10',
683
                                                         'content' => '4,32,1',
684
                                                         'global_param' => 'Parameter',
685
                                                         'redefine_param' => 1,
686
                                                         'info' => 'Parameter'
687
                                                       },
688
                                    'DEBUG_EN' => {
689
                                                    'redefine_param' => 1,
690
                                                    'info' => 'Parameter',
691
                                                    'default' => ' 1',
692
                                                    'content' => '',
693
                                                    'global_param' => 'Parameter',
694
                                                    'type' => 'Fixed'
695
                                                  },
696
                                    'TOPOLOGY' => {
697
                                                    'info' => 'Parameter',
698
                                                    'redefine_param' => 1,
699
                                                    'type' => 'Fixed',
700
                                                    'global_param' => 'Parameter',
701
                                                    'content' => '',
702
                                                    'default' => '"MESH"'
703
                                                  },
704
                                    'DST_ADR_HDR_WIDTH' => {
705
                                                             'type' => 'Fixed',
706
                                                             'default' => '8',
707
                                                             'content' => '',
708
                                                             'global_param' => 'Localparam',
709
                                                             'redefine_param' => 1,
710
                                                             'info' => 'Parameter'
711
                                                           },
712
                                    'ROUTING_HDR_WIDTH' => {
713
                                                             'redefine_param' => 1,
714
                                                             'info' => 'Parameter',
715
                                                             'default' => '8',
716
                                                             'global_param' => 'Localparam',
717
                                                             'content' => '',
718
                                                             'type' => 'Fixed'
719
                                                           },
720
                                    'P' => {
721
                                             'default' => '5',
722
                                             'content' => '',
723
                                             'global_param' => 'Parameter',
724
                                             'type' => 'Fixed',
725
                                             'redefine_param' => 1,
726
                                             'info' => 'Parameter'
727
                                           },
728
                                    'TAGw' => {
729
                                                'default' => '3',
730
                                                'global_param' => 'Localparam',
731
                                                'content' => '',
732
                                                'type' => 'Fixed',
733
                                                'redefine_param' => 1,
734
                                                'info' => 'Parameter'
735
                                              },
736
                                    'Yw' => {
737
                                              'content' => '',
738
                                              'global_param' => 'Localparam',
739
                                              'default' => 'log2(NY)',
740
                                              'type' => 'Fixed',
741
                                              'info' => undef,
742
                                              'redefine_param' => 0
743
                                            },
744
                                    'NY' => {
745
                                              'type' => 'Fixed',
746
                                              'content' => '',
747
                                              'global_param' => 'Parameter',
748
                                              'default' => ' 4',
749
                                              'info' => 'Parameter',
750
                                              'redefine_param' => 1
751
                                            }
752
                                  },
753
                  'modules' => {
754
                                 'ni_slave' => {}
755
                               }
756
                }, 'ip_gen' );

powered by: WebSVN 2.1.0

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