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/] [Processor/] [lm32_new.IP] - Blame information for rev 48

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 alirezamon
#######################################################################
2
##      File: lm32_new.IP
3
##
4
##      Copyright (C) 2014-2019  Alireza Monemi
5
##
6
##      This file is part of ProNoC 1.9.1
7
##
8
##      WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT
9
##      MAY CAUSE UNEXPECTED BEHAIVOR.
10
################################################################################
11
 
12
$ipgen = bless( {
13
                  'parameters_order' => [
14
                                          'INTR_NUM',
15
                                          'BARREL_SHIFT',
16
                                          'SIGN_EXTEND',
17
                                          'BARREL_SHIFT',
18
                                          'MULTIPLIER_TYPE',
19
                                          'DIVIDOR_TYPE',
20
                                          'INSTRUCTION_CACHE',
21
                                          'ICACHE_ASSOCIATIVITY',
22
                                          'ICACHE_SETS',
23
                                          'DATA_CACHE',
24
                                          'DCACHE_ASSOCIATIVITY',
25
                                          'DCACHE_SETS'
26
                                        ],
27
                  'sw_files' => [
28
                                  '/mpsoc/src_processor/lm32/sw/lm32',
29
                                  '/mpsoc/src_processor/lm32/sw/linker.ld',
30
                                  '/mpsoc/src_processor/lm32/sw/Makefile'
31
                                ],
32
                  'version' => 17,
33
                  'system_h' => '#include "lm32/lm32_system.h"
34
static inline void nop (void) {
35
        asm volatile ("nop");
36
}',
37
                  'sockets' => {
38
                                 'interrupt_peripheral' => {
39
                                                             'interrupt_peripheral' => {},
40
                                                             'value' => 'INTR_NUM',
41
                                                             'type' => 'param',
42
                                                             'connection_num' => 'single connection',
43
                                                             '0' => {
44
                                                                      'name' => 'interrupt_peripheral'
45
                                                                    }
46
                                                           }
47
                               },
48
                  'hdl_files' => [
49
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_top.v',
50
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_shifter.v',
51
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_ram.v',
52
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_multiplier.v',
53
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_mc_arithmetic.v',
54
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_logic_op.v',
55
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_load_store_unit.v',
56
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_jtag.v',
57
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_itlb.v',
58
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_interrupt.v',
59
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_instruction_unit.v',
60
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_include.v',
61
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_icache.v',
62
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_dtlb.v',
63
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_dp_ram.v',
64
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_decoder.v',
65
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_debug.v',
66
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_dcache.v',
67
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_cpu.v',
68
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_addsub.v',
69
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32_adder.v',
70
                                   '/mpsoc/src_processor/new_lm32/rtl/lm32.v',
71
                                   '/mpsoc/src_processor/new_lm32/rtl/jtag_tap_spartan6.v',
72
                                   '/mpsoc/src_processor/new_lm32/rtl/jtag_cores.v'
73
                                 ],
74
                  'file_name' => 'mpsoc/src_processor/lm32/verilog/src/lm32.v',
75
                  'module_name' => 'lm32',
76
                  'ip_name' => 'lm32_new',
77
                  'parameters' => {
78
                                    'INTR_NUM' => {
79
                                                    'type' => 'Fixed',
80
                                                    'redefine_param' => 1,
81
                                                    'default' => '32',
82
                                                    'content' => '',
83
                                                    'info' => undef,
84
                                                    'global_param' => 'Localparam'
85
                                                  },
86
                                    'DIVIDOR_TYPE' => {
87
                                                        'global_param' => 'Don\'t include',
88
                                                        'info' => ' Enable the multi-cycle divider. Stalls the pipe until the result
89
 is ready after 32 cycles. If disabled, the divide operation is not  supported.',
90
                                                        'content' => 'MULTI_CYCLE,NONE',
91
                                                        'default' => 'MULTI_CYCLE',
92
                                                        'redefine_param' => 1,
93
                                                        'type' => 'Combo-box'
94
                                                      },
95
                                    'BARREL_SHIFT' => {
96
                                                        'default' => 'PIPE_LINE',
97
                                                        'global_param' => 'Don\'t include',
98
                                                        'info' => 'Shifter
99
You may either enable the piplined or the multi-cycle barrel
100
shifter. The multi-cycle shifter will stall the pipeline until
101
the result is available after 32 cycles.
102
If both options are disabled, only "right shift by one bit" is
103
available.',
104
                                                        'content' => 'MULTI_CYCLE,PIPE_LINE,NONE',
105
                                                        'type' => 'Combo-box',
106
                                                        'redefine_param' => 1
107
                                                      },
108
                                    'DCACHE_SETS' => {
109
                                                       'redefine_param' => 1,
110
                                                       'type' => 'Combo-box',
111
                                                       'content' => '128,256,512,1024,2048,4096,8119,16384',
112
                                                       'info' => ' Number of sets',
113
                                                       'global_param' => 'Don\'t include',
114
                                                       'default' => '256'
115
                                                     },
116
                                    'DCACHE_ASSOCIATIVITY' => {
117
                                                                'redefine_param' => 1,
118
                                                                'type' => 'Combo-box',
119
                                                                'content' => '1,2,4,8',
120
                                                                'global_param' => 'Don\'t include',
121
                                                                'info' => 'Data cache assocativity number ',
122
                                                                'default' => '1'
123
                                                              },
124
                                    'INSTRUCTION_CACHE' => {
125
                                                             'type' => 'Combo-box',
126
                                                             'redefine_param' => 1,
127
                                                             'default' => 'ENABLED',
128
                                                             'global_param' => 'Don\'t include',
129
                                                             'info' => 'Enable/Disable Instruction cache',
130
                                                             'content' => 'ENABLED,DISABLED'
131
                                                           },
132
                                    'DATA_CACHE' => {
133
                                                      'content' => 'ENABLED,DISABLED',
134
                                                      'global_param' => 'Don\'t include',
135
                                                      'info' => 'Enable/Disable the data cache',
136
                                                      'default' => 'ENABLED',
137
                                                      'redefine_param' => 1,
138
                                                      'type' => 'Combo-box'
139
                                                    },
140
                                    'ICACHE_ASSOCIATIVITY' => {
141
                                                                'redefine_param' => 1,
142
                                                                'type' => 'Combo-box',
143
                                                                'global_param' => 'Don\'t include',
144
                                                                'content' => '1,2,4,8',
145
                                                                'info' => 'Istruction cache assocativity number ',
146
                                                                'default' => '1'
147
                                                              },
148
                                    'ICACHE_SETS' => {
149
                                                       'default' => '256',
150
                                                       'info' => ' Number of sets',
151
                                                       'global_param' => 'Don\'t include',
152
                                                       'content' => '128,256,512,1024,2048,4096,8119,16384',
153
                                                       'type' => 'Combo-box',
154
                                                       'redefine_param' => 1
155
                                                     },
156
                                    'MULTIPLIER_TYPE' => {
157
                                                           'content' => 'MULTI_CYCLE,PIPE_LINE,NONE',
158
                                                           'global_param' => 'Don\'t include',
159
                                                           'info' => '// Multiplier
160
 The multiplier is available either in a multi-cycle version or
161
 in a pipelined one. The multi-cycle multiplier stalls the pipe
162
 for 32 cycles. If both options are disabled, multiply operations
163
 are not supported.',
164
                                                           'default' => 'PIPE_LINE',
165
                                                           'redefine_param' => 1,
166
                                                           'type' => 'Combo-box'
167
                                                         },
168
                                    'SIGN_EXTEND' => {
169
                                                       'type' => 'Combo-box',
170
                                                       'redefine_param' => 1,
171
                                                       'default' => 'ENABLED',
172
                                                       'global_param' => 'Don\'t include',
173
                                                       'content' => 'ENABLED,DISABLED',
174
                                                       'info' => 'Enable sign-extension instructions'
175
                                                     }
176
                                  },
177
                  'gui_status' => {
178
                                    'timeout' => 0,
179
                                    'status' => 'ideal'
180
                                  },
181
                  'modules' => {
182
                                 'lm32' => {}
183
                               },
184
                  'ports' => {
185
                               'I_ERR_I' => {
186
                                              'intfc_name' => 'plug:wb_master[0]',
187
                                              'range' => '',
188
                                              'type' => 'input',
189
                                              'intfc_port' => 'err_i'
190
                                            },
191
                               'D_ERR_I' => {
192
                                              'intfc_port' => 'err_i',
193
                                              'intfc_name' => 'plug:wb_master[1]',
194
                                              'range' => '',
195
                                              'type' => 'input'
196
                                            },
197
                               'I_CTI_O' => {
198
                                              'type' => 'output',
199
                                              'intfc_name' => 'plug:wb_master[0]',
200
                                              'range' => '(3-1):0',
201
                                              'intfc_port' => 'cti_o'
202
                                            },
203
                               'D_SEL_O' => {
204
                                              'intfc_port' => 'sel_o',
205
                                              'range' => '(4-1):0',
206
                                              'intfc_name' => 'plug:wb_master[1]',
207
                                              'type' => 'output'
208
                                            },
209
                               'I_SEL_O' => {
210
                                              'range' => '(4-1):0',
211
                                              'type' => 'output',
212
                                              'intfc_name' => 'plug:wb_master[0]',
213
                                              'intfc_port' => 'sel_o'
214
                                            },
215
                               'en_i' => {
216
                                           'range' => '',
217
                                           'intfc_name' => 'plug:enable[0]',
218
                                           'type' => 'input',
219
                                           'intfc_port' => 'enable_i'
220
                                         },
221
                               'interrupt' => {
222
                                                'type' => 'input',
223
                                                'range' => '(32-1):0',
224
                                                'intfc_name' => 'socket:interrupt_peripheral[array]',
225
                                                'intfc_port' => 'int_i'
226
                                              },
227
                               'I_DAT_O' => {
228
                                              'type' => 'output',
229
                                              'range' => '(32-1):0',
230
                                              'intfc_name' => 'plug:wb_master[0]',
231
                                              'intfc_port' => 'dat_o'
232
                                            },
233
                               'D_ADR_O' => {
234
                                              'intfc_port' => 'adr_o',
235
                                              'range' => '(32-1):0',
236
                                              'type' => 'output',
237
                                              'intfc_name' => 'plug:wb_master[1]'
238
                                            },
239
                               'I_BTE_O' => {
240
                                              'type' => 'output',
241
                                              'range' => '(2-1):0',
242
                                              'intfc_name' => 'plug:wb_master[0]',
243
                                              'intfc_port' => 'bte_o'
244
                                            },
245
                               'D_STB_O' => {
246
                                              'range' => '',
247
                                              'type' => 'output',
248
                                              'intfc_name' => 'plug:wb_master[1]',
249
                                              'intfc_port' => 'stb_o'
250
                                            },
251
                               'I_ACK_I' => {
252
                                              'intfc_port' => 'ack_i',
253
                                              'type' => 'input',
254
                                              'range' => '',
255
                                              'intfc_name' => 'plug:wb_master[0]'
256
                                            },
257
                               'I_DAT_I' => {
258
                                              'intfc_port' => 'dat_i',
259
                                              'type' => 'input',
260
                                              'range' => '(32-1):0',
261
                                              'intfc_name' => 'plug:wb_master[0]'
262
                                            },
263
                               'D_CYC_O' => {
264
                                              'type' => 'output',
265
                                              'intfc_name' => 'plug:wb_master[1]',
266
                                              'range' => '',
267
                                              'intfc_port' => 'cyc_o'
268
                                            },
269
                               'clk_i' => {
270
                                            'intfc_port' => 'clk_i',
271
                                            'range' => '',
272
                                            'type' => 'input',
273
                                            'intfc_name' => 'plug:clk[0]'
274
                                          },
275
                               'I_ADR_O' => {
276
                                              'intfc_port' => 'adr_o',
277
                                              'type' => 'output',
278
                                              'range' => '(32-1):0',
279
                                              'intfc_name' => 'plug:wb_master[0]'
280
                                            },
281
                               'rst_i' => {
282
                                            'type' => 'input',
283
                                            'range' => '',
284
                                            'intfc_name' => 'plug:reset[0]',
285
                                            'intfc_port' => 'reset_i'
286
                                          },
287
                               'D_DAT_O' => {
288
                                              'intfc_name' => 'plug:wb_master[1]',
289
                                              'range' => '(32-1):0',
290
                                              'type' => 'output',
291
                                              'intfc_port' => 'dat_o'
292
                                            },
293
                               'I_STB_O' => {
294
                                              'range' => '',
295
                                              'intfc_name' => 'plug:wb_master[0]',
296
                                              'type' => 'output',
297
                                              'intfc_port' => 'stb_o'
298
                                            },
299
                               'D_RTY_I' => {
300
                                              'intfc_port' => 'rty_i',
301
                                              'intfc_name' => 'plug:wb_master[1]',
302
                                              'range' => '',
303
                                              'type' => 'input'
304
                                            },
305
                               'I_RTY_I' => {
306
                                              'intfc_port' => 'rty_i',
307
                                              'range' => '',
308
                                              'intfc_name' => 'plug:wb_master[0]',
309
                                              'type' => 'input'
310
                                            },
311
                               'I_CYC_O' => {
312
                                              'range' => '',
313
                                              'intfc_name' => 'plug:wb_master[0]',
314
                                              'type' => 'output',
315
                                              'intfc_port' => 'cyc_o'
316
                                            },
317
                               'D_CTI_O' => {
318
                                              'intfc_port' => 'cti_o',
319
                                              'range' => '(3-1):0',
320
                                              'intfc_name' => 'plug:wb_master[1]',
321
                                              'type' => 'output'
322
                                            },
323
                               'D_ACK_I' => {
324
                                              'intfc_port' => 'ack_i',
325
                                              'type' => 'input',
326
                                              'range' => '',
327
                                              'intfc_name' => 'plug:wb_master[1]'
328
                                            },
329
                               'I_WE_O' => {
330
                                             'intfc_name' => 'plug:wb_master[0]',
331
                                             'range' => '',
332
                                             'type' => 'output',
333
                                             'intfc_port' => 'we_o'
334
                                           },
335
                               'D_DAT_I' => {
336
                                              'intfc_port' => 'dat_i',
337
                                              'type' => 'input',
338
                                              'range' => '(32-1):0',
339
                                              'intfc_name' => 'plug:wb_master[1]'
340
                                            },
341
                               'D_BTE_O' => {
342
                                              'intfc_name' => 'plug:wb_master[1]',
343
                                              'range' => '(2-1):0',
344
                                              'type' => 'output',
345
                                              'intfc_port' => 'bte_o'
346
                                            },
347
                               'D_WE_O' => {
348
                                             'intfc_port' => 'we_o',
349
                                             'intfc_name' => 'plug:wb_master[1]',
350
                                             'type' => 'output',
351
                                             'range' => ''
352
                                           }
353
                             },
354
                  'unused' => {
355
                                'plug:wb_master[1]' => [
356
                                                         'tag_o'
357
                                                       ],
358
                                'plug:wb_master[0]' => [
359
                                                         'tag_o'
360
                                                       ]
361
                              },
362
                  'category' => 'Processor',
363
                  'gen_sw_files' => [
364
                                      '/mpsoc/src_processor/new_lm32/sw/cpu_flags_genfrename_sep_tcpu_flags'
365
                                    ],
366
                  'description' => 'A fork of the original  LatticeMico32 sources  that includes new features. The source code is adopted from:
367
        https://github.com/m-labs/lm32',
368
                  'plugs' => {
369
                               'enable' => {
370
                                             'enable' => {},
371
                                             'type' => 'num',
372
                                             '0' => {
373
                                                      'name' => 'enable'
374
                                                    },
375
                                             'value' => 1
376
                                           },
377
                               'clk' => {
378
                                          '0' => {
379
                                                   'name' => 'clk'
380
                                                 },
381
                                          'type' => 'num',
382
                                          'value' => 1,
383
                                          'clk' => {}
384
                                        },
385
                               'wb_master' => {
386
                                                'value' => 2,
387
                                                'type' => 'num',
388
                                                '0' => {
389
                                                         'name' => 'iwb'
390
                                                       },
391
                                                '1' => {
392
                                                         'name' => 'dwb'
393
                                                       },
394
                                                'wb_master' => {}
395
                                              },
396
                               'reset' => {
397
                                            'type' => 'num',
398
                                            '0' => {
399
                                                     'name' => 'reset'
400
                                                   },
401
                                            'value' => 1,
402
                                            '1' => {
403
                                                     'name' => 'reset_1'
404
                                                   },
405
                                            'reset' => {}
406
                                          }
407
                             },
408
                  'gen_hw_files' => [
409
                                      '/mpsoc/src_processor/new_lm32/config/lm32_config_gen.vfrename_sep_tlib/lm32_config.v'
410
                                    ],
411
                  'system_c' => '#include "lm32/lm32_system.c"',
412
                  'ports_order' => [
413
                                     'clk_i',
414
                                     'rst_i',
415
                                     'en_i',
416
                                     'interrupt',
417
                                     'I_DAT_I',
418
                                     'I_ACK_I',
419
                                     'I_ERR_I',
420
                                     'I_RTY_I',
421
                                     'I_DAT_O',
422
                                     'I_ADR_O',
423
                                     'I_CYC_O',
424
                                     'I_SEL_O',
425
                                     'I_STB_O',
426
                                     'I_WE_O',
427
                                     'I_CTI_O',
428
                                     'I_BTE_O',
429
                                     'D_DAT_I',
430
                                     'D_ACK_I',
431
                                     'D_ERR_I',
432
                                     'D_RTY_I',
433
                                     'D_DAT_O',
434
                                     'D_ADR_O',
435
                                     'D_CYC_O',
436
                                     'D_SEL_O',
437
                                     'D_STB_O',
438
                                     'D_WE_O',
439
                                     'D_CTI_O',
440
                                     'D_BTE_O'
441
                                   ]
442
                }, 'ip_gen' );

powered by: WebSVN 2.1.0

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