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 42

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

powered by: WebSVN 2.1.0

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