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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 48 alirezamon
#######################################################################
2
##      File: mor1kx5.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 BEHAVIOR.
10
################################################################################
11
 
12
$ipgen = bless( {
13
                  'version' => 29,
14
                  'parameters_order' => [
15
                                          'OPTION_OPERAND_WIDTH',
16
                                          'IRQ_NUM',
17
                                          'OPTION_DCACHE_SNOOP',
18
                                          'FEATURE_INSTRUCTIONCACHE',
19
                                          'FEATURE_DATACACHE',
20
                                          'FEATURE_IMMU',
21
                                          'FEATURE_DMMU',
22
                                          'FEATURE_MULTIPLIER',
23
                                          'FEATURE_DIVIDER',
24
                                          'OPTION_SHIFTER',
25
                                          'FEATURE_FPU'
26
                                        ],
27
                  'modules' => {
28
                                 'mor1k' => {}
29
                               },
30
                  'module_name' => 'mor1k',
31
                  'parameters' => {
32
                                    'FEATURE_IMMU' => {
33
                                                        'default' => '"ENABLED"',
34
                                                        'redefine_param' => 1,
35
                                                        'type' => 'Combo-box',
36
                                                        'info' => '',
37
                                                        'global_param' => 'Localparam',
38
                                                        'content' => '"NONE","ENABLED"'
39
                                                      },
40
                                    'FEATURE_FPU' => {
41
                                                       'content' => '"ENABLED","NONE"',
42
                                                       'global_param' => 'Localparam',
43
                                                       'info' => 'Enable the FPU, for cappuccino pipeline only',
44
                                                       'type' => 'Combo-box',
45
                                                       'redefine_param' => 1,
46
                                                       'default' => '"NONE"'
47
                                                     },
48
                                    'OPTION_SHIFTER' => {
49
                                                          'type' => 'Combo-box',
50
                                                          'redefine_param' => 1,
51
                                                          'default' => '"BARREL"',
52
                                                          'global_param' => 'Localparam',
53
                                                          'content' => '"BARREL","SERIAL"',
54
                                                          'info' => 'Specify the shifter implementation'
55
                                                        },
56
                                    'FEATURE_DATACACHE' => {
57
                                                             'content' => '"NONE","ENABLED"',
58
                                                             'global_param' => 'Localparam',
59
                                                             'info' => '',
60
                                                             'redefine_param' => 1,
61
                                                             'type' => 'Combo-box',
62
                                                             'default' => '"ENABLED"'
63
                                                           },
64
                                    'OPTION_OPERAND_WIDTH' => {
65
                                                                'info' => 'Parameter',
66
                                                                'global_param' => 'Localparam',
67
                                                                'content' => '',
68
                                                                'default' => '32',
69
                                                                'redefine_param' => 1,
70
                                                                'type' => 'Fixed'
71
                                                              },
72
                                    'FEATURE_INSTRUCTIONCACHE' => {
73
                                                                    'info' => '',
74
                                                                    'content' => '"NONE","ENABLED"',
75
                                                                    'global_param' => 'Localparam',
76
                                                                    'default' => '"ENABLED"',
77
                                                                    'type' => 'Combo-box',
78
                                                                    'redefine_param' => 1
79
                                                                  },
80
                                    'FEATURE_DIVIDER' => {
81
                                                           'default' => '"SERIAL"',
82
                                                           'redefine_param' => 1,
83
                                                           'type' => 'Combo-box',
84
                                                           'info' => 'Specify the divider implementation',
85
                                                           'content' => '"SERIAL","NONE"',
86
                                                           'global_param' => 'Localparam'
87
                                                         },
88
                                    'IRQ_NUM' => {
89
                                                   'type' => 'Fixed',
90
                                                   'redefine_param' => 1,
91
                                                   'default' => '32',
92
                                                   'global_param' => 'Localparam',
93
                                                   'content' => '',
94
                                                   'info' => undef
95
                                                 },
96
                                    'OPTION_DCACHE_SNOOP' => {
97
                                                               'type' => 'Combo-box',
98
                                                               'redefine_param' => 1,
99
                                                               'default' => '"ENABLED"',
100
                                                               'content' => '"NONE","ENABLED"',
101
                                                               'global_param' => 'Localparam',
102
                                                               'info' => ''
103
                                                             },
104
                                    'FEATURE_MULTIPLIER' => {
105
                                                              'global_param' => 'Localparam',
106
                                                              'content' => '"THREESTAGE","PIPELINED","SERIAL","NONE"',
107
                                                              'info' => 'Specify the multiplier implementation',
108
                                                              'type' => 'Combo-box',
109
                                                              'redefine_param' => 1,
110
                                                              'default' => '"THREESTAGE"'
111
                                                            },
112
                                    'FEATURE_DMMU' => {
113
                                                        'global_param' => 'Localparam',
114
                                                        'content' => '"NONE","ENABLED"',
115
                                                        'info' => '',
116
                                                        'redefine_param' => 1,
117
                                                        'type' => 'Combo-box',
118
                                                        'default' => '"ENABLED"'
119
                                                      }
120
                                  },
121
                  'ip_name' => 'mor1kx5',
122
                  'unused' => {
123
                                'plug:wb_master[1]' => [
124
                                                         'tag_o'
125
                                                       ],
126
                                'plug:wb_master[0]' => [
127
                                                         'tag_o'
128
                                                       ]
129
                              },
130
                  'category' => 'Processor',
131
                  'file_name' => 'mpsoc/src_processor/mor1kx-5.0/rtl/mor1k.v',
132
                  'ports' => {
133
                               'snoop_en_i' => {
134
                                                 'range' => '',
135
                                                 'type' => 'input',
136
                                                 'intfc_port' => 'snoop_en_i',
137
                                                 'intfc_name' => 'plug:snoop[0]'
138
                                               },
139
                               'iwbm_stb_o' => {
140
                                                 'type' => 'output',
141
                                                 'intfc_name' => 'plug:wb_master[0]',
142
                                                 'intfc_port' => 'stb_o',
143
                                                 'range' => ''
144
                                               },
145
                               'dwbm_dat_o' => {
146
                                                 'type' => 'output',
147
                                                 'intfc_name' => 'plug:wb_master[1]',
148
                                                 'intfc_port' => 'dat_o',
149
                                                 'range' => '31:0'
150
                                               },
151
                               'iwbm_ack_i' => {
152
                                                 'intfc_name' => 'plug:wb_master[0]',
153
                                                 'intfc_port' => 'ack_i',
154
                                                 'type' => 'input',
155
                                                 'range' => ''
156
                                               },
157
                               'iwbm_dat_o' => {
158
                                                 'intfc_port' => 'dat_o',
159
                                                 'intfc_name' => 'plug:wb_master[0]',
160
                                                 'type' => 'output',
161
                                                 'range' => '31:0'
162
                                               },
163
                               'dwbm_rty_i' => {
164
                                                 'range' => '',
165
                                                 'type' => 'input',
166
                                                 'intfc_name' => 'plug:wb_master[1]',
167
                                                 'intfc_port' => 'rty_i'
168
                                               },
169
                               'cpu_en' => {
170
                                             'range' => '',
171
                                             'type' => 'input',
172
                                             'intfc_name' => 'plug:enable[0]',
173
                                             'intfc_port' => 'enable_i'
174
                                           },
175
                               'snoop_adr_i' => {
176
                                                  'intfc_name' => 'plug:snoop[0]',
177
                                                  'type' => 'input',
178
                                                  'intfc_port' => 'snoop_adr_i',
179
                                                  'range' => '31:0'
180
                                                },
181
                               'irq_i' => {
182
                                            'range' => '31:0',
183
                                            'intfc_port' => 'int_i',
184
                                            'type' => 'input',
185
                                            'intfc_name' => 'socket:interrupt_peripheral[array]'
186
                                          },
187
                               'dwbm_sel_o' => {
188
                                                 'intfc_name' => 'plug:wb_master[1]',
189
                                                 'type' => 'output',
190
                                                 'intfc_port' => 'sel_o',
191
                                                 'range' => '3:0'
192
                                               },
193
                               'iwbm_dat_i' => {
194
                                                 'intfc_port' => 'dat_i',
195
                                                 'type' => 'input',
196
                                                 'intfc_name' => 'plug:wb_master[0]',
197
                                                 'range' => '31:0'
198
                                               },
199
                               'dwbm_dat_i' => {
200
                                                 'intfc_name' => 'plug:wb_master[1]',
201
                                                 'intfc_port' => 'dat_i',
202
                                                 'type' => 'input',
203
                                                 'range' => '31:0'
204
                                               },
205
                               'dwbm_bte_o' => {
206
                                                 'range' => '1:0',
207
                                                 'intfc_port' => 'bte_o',
208
                                                 'type' => 'output',
209
                                                 'intfc_name' => 'plug:wb_master[1]'
210
                                               },
211
                               'dwbm_err_i' => {
212
                                                 'range' => '',
213
                                                 'intfc_port' => 'err_i',
214
                                                 'type' => 'input',
215
                                                 'intfc_name' => 'plug:wb_master[1]'
216
                                               },
217
                               'iwbm_err_i' => {
218
                                                 'type' => 'input',
219
                                                 'intfc_port' => 'err_i',
220
                                                 'intfc_name' => 'plug:wb_master[0]',
221
                                                 'range' => ''
222
                                               },
223
                               'iwbm_sel_o' => {
224
                                                 'intfc_port' => 'sel_o',
225
                                                 'intfc_name' => 'plug:wb_master[0]',
226
                                                 'type' => 'output',
227
                                                 'range' => '3:0'
228
                                               },
229
                               'dwbm_we_o' => {
230
                                                'intfc_name' => 'plug:wb_master[1]',
231
                                                'type' => 'output',
232
                                                'intfc_port' => 'we_o',
233
                                                'range' => ''
234
                                              },
235
                               'dwbm_cyc_o' => {
236
                                                 'type' => 'output',
237
                                                 'intfc_port' => 'cyc_o',
238
                                                 'intfc_name' => 'plug:wb_master[1]',
239
                                                 'range' => ''
240
                                               },
241
                               'dwbm_ack_i' => {
242
                                                 'range' => '',
243
                                                 'type' => 'input',
244
                                                 'intfc_name' => 'plug:wb_master[1]',
245
                                                 'intfc_port' => 'ack_i'
246
                                               },
247
                               'iwbm_cyc_o' => {
248
                                                 'range' => '',
249
                                                 'intfc_name' => 'plug:wb_master[0]',
250
                                                 'type' => 'output',
251
                                                 'intfc_port' => 'cyc_o'
252
                                               },
253
                               'dwbm_stb_o' => {
254
                                                 'type' => 'output',
255
                                                 'intfc_port' => 'stb_o',
256
                                                 'intfc_name' => 'plug:wb_master[1]',
257
                                                 'range' => ''
258
                                               },
259
                               'iwbm_adr_o' => {
260
                                                 'intfc_port' => 'adr_o',
261
                                                 'type' => 'output',
262
                                                 'intfc_name' => 'plug:wb_master[0]',
263
                                                 'range' => '31:0'
264
                                               },
265
                               'dwbm_cti_o' => {
266
                                                 'intfc_name' => 'plug:wb_master[1]',
267
                                                 'type' => 'output',
268
                                                 'intfc_port' => 'cti_o',
269
                                                 'range' => '2:0'
270
                                               },
271
                               'rst' => {
272
                                          'range' => '',
273
                                          'type' => 'input',
274
                                          'intfc_port' => 'reset_i',
275
                                          'intfc_name' => 'plug:reset[0]'
276
                                        },
277
                               'clk' => {
278
                                          'intfc_port' => 'clk_i',
279
                                          'type' => 'input',
280
                                          'intfc_name' => 'plug:clk[0]',
281
                                          'range' => ''
282
                                        },
283
                               'iwbm_cti_o' => {
284
                                                 'range' => '2:0',
285
                                                 'intfc_port' => 'cti_o',
286
                                                 'intfc_name' => 'plug:wb_master[0]',
287
                                                 'type' => 'output'
288
                                               },
289
                               'dwbm_adr_o' => {
290
                                                 'range' => '31:0',
291
                                                 'intfc_port' => 'adr_o',
292
                                                 'type' => 'output',
293
                                                 'intfc_name' => 'plug:wb_master[1]'
294
                                               },
295
                               'iwbm_bte_o' => {
296
                                                 'type' => 'output',
297
                                                 'intfc_name' => 'plug:wb_master[0]',
298
                                                 'intfc_port' => 'bte_o',
299
                                                 'range' => '1:0'
300
                                               },
301
                               'iwbm_we_o' => {
302
                                                'range' => '',
303
                                                'intfc_name' => 'plug:wb_master[0]',
304
                                                'type' => 'output',
305
                                                'intfc_port' => 'we_o'
306
                                              },
307
                               'iwbm_rty_i' => {
308
                                                 'range' => '',
309
                                                 'intfc_port' => 'rty_i',
310
                                                 'type' => 'input',
311
                                                 'intfc_name' => 'plug:wb_master[0]'
312
                                               }
313
                             },
314
                  'ports_order' => [
315
                                     'clk',
316
                                     'rst',
317
                                     'cpu_en',
318
                                     'snoop_adr_i',
319
                                     'snoop_en_i',
320
                                     'iwbm_adr_o',
321
                                     'iwbm_stb_o',
322
                                     'iwbm_cyc_o',
323
                                     'iwbm_sel_o',
324
                                     'iwbm_we_o',
325
                                     'iwbm_cti_o',
326
                                     'iwbm_bte_o',
327
                                     'iwbm_dat_o',
328
                                     'iwbm_err_i',
329
                                     'iwbm_ack_i',
330
                                     'iwbm_dat_i',
331
                                     'iwbm_rty_i',
332
                                     'dwbm_adr_o',
333
                                     'dwbm_stb_o',
334
                                     'dwbm_cyc_o',
335
                                     'dwbm_sel_o',
336
                                     'dwbm_we_o',
337
                                     'dwbm_cti_o',
338
                                     'dwbm_bte_o',
339
                                     'dwbm_dat_o',
340
                                     'dwbm_err_i',
341
                                     'dwbm_ack_i',
342
                                     'dwbm_dat_i',
343
                                     'dwbm_rty_i',
344
                                     'irq_i'
345
                                   ],
346
                  'hdl_files' => [
347
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/mor1k.v',
348
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_wb_mux_espresso.v',
349
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_wb_mux_cappuccino.v',
350
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_utils.vh',
351
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_true_dpram_sclk.v',
352
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_ticktimer.v',
353
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_store_buffer.v',
354
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx-sprs.v',
355
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_simple_dpram_sclk.v',
356
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_rf_espresso.v',
357
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_rf_cappuccino.v',
358
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_pic.v',
359
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_pcu.v',
360
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_lsu_espresso.v',
361
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_lsu_cappuccino.v',
362
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_immu.v',
363
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_icache.v',
364
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_fetch_tcm_prontoespresso.v',
365
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_fetch_prontoespresso.v',
366
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_fetch_espresso.v',
367
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_fetch_cappuccino.v',
368
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_execute_ctrl_cappuccino.v',
369
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_execute_alu.v',
370
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_dmmu.v',
371
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx-defines.v',
372
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_decode_execute_cappuccino.v',
373
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_decode.v',
374
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_dcache.v',
375
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_ctrl_prontoespresso.v',
376
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_ctrl_espresso.v',
377
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_ctrl_cappuccino.v',
378
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_cpu_prontoespresso.v',
379
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_cpu_espresso.v',
380
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_cpu_cappuccino.v',
381
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_cpu.v',
382
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_cfgrs.v',
383
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_cache_lru.v',
384
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_bus_if_wb32.v',
385
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_branch_predictor_simple.v',
386
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_branch_predictor_saturation_counter.v',
387
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_branch_predictor_gshare.v',
388
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx_branch_prediction.v',
389
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/mor1kx.v',
390
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/pfpu32/pfpu32_top.v',
391
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/pfpu32/pfpu32_rnd.v',
392
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/pfpu32/pfpu32_muldiv.v',
393
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/pfpu32/pfpu32_i2f.v',
394
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/pfpu32/pfpu32_f2i.v',
395
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/pfpu32/pfpu32_cmp.v',
396
                                   '/mpsoc/src_processor/mor1kx-5.0/rtl/verilog/pfpu32/pfpu32_addsub.v'
397
                                 ],
398
                  'sockets' => {
399
                                 'interrupt_peripheral' => {
400
                                                             'connection_num' => 'single connection',
401
                                                             'value' => 'IRQ_NUM',
402
                                                             '0' => {
403
                                                                      'name' => 'interrupt_peripheral'
404
                                                                    },
405
                                                             'type' => 'param'
406
                                                           }
407
                               },
408
                  'hdl_files_ticked' => [],
409
                  'plugs' => {
410
                               'wb_master' => {
411
                                                'value' => 2,
412
                                                '1' => {
413
                                                         'name' => 'dwb'
414
                                                       },
415
                                                '0' => {
416
                                                         'name' => 'iwb'
417
                                                       },
418
                                                'type' => 'num'
419
                                              },
420
                               'enable' => {
421
                                             'value' => 1,
422
                                             '0' => {
423
                                                      'name' => 'enable'
424
                                                    },
425
                                             'type' => 'num'
426
                                           },
427
                               'snoop' => {
428
                                            '0' => {
429
                                                     'name' => 'snoop'
430
                                                   },
431
                                            'type' => 'num',
432
                                            'value' => 1
433
                                          },
434
                               'reset' => {
435
                                            'type' => 'num',
436
                                            '0' => {
437
                                                     'name' => 'reset'
438
                                                   },
439
                                            'value' => 1
440
                                          },
441
                               'clk' => {
442
                                          'type' => 'num',
443
                                          '0' => {
444
                                                   'name' => 'clk'
445
                                                 },
446
                                          'value' => 1
447
                                        }
448
                             },
449
                  'system_c' => '',
450
                  'system_h' => ' #include "mor1kx/system.h"
451
 
452
 static inline void nop (){
453
        __asm__("l.nop 1");
454
 }
455
/*********************
456
//Interrupt template: check mor1kx/int.c for more information
457
// interrupt function
458
void hw_isr(void){
459
        //place your interrupt code here
460
 
461
 
462
        HW_ISR=HW_ISR; //ack the interrupt at the end of isr function
463
        return;
464
}
465
 
466
int main(){
467
 
468
        int_init();
469
        //assume hw interrupt pin is connected to 10th cpu intrrupt pin
470
        int_add(10, hw_isr, 0);
471
        // Enable this interrupt
472
        int_enable(10);
473
        cpu_enable_user_interrupts();
474
        hw_init ( ); // hw interrupt enable function
475
        while(1){
476
        //place rest of the code
477
 
478
        }
479
}
480
*******************************/',
481
                  'sw_files' => [
482
                                  '/mpsoc/src_processor/mor1kx-5.0/sw/link.ld',
483
                                  '/mpsoc/src_processor/mor1kx-5.0/sw/Makefile',
484
                                  '/mpsoc/src_processor/mor1kx-5.0/sw/mor1kx'
485
                                ],
486
                  'gui_status' => {
487
                                    'timeout' => 0,
488
                                    'status' => 'ideal'
489
                                  },
490
                  'gen_sw_files' => [
491
                                      '/mpsoc/src_processor/mor1kx-5.0/sw/march_flags.makfrename_sep_tmarch_flags.mak'
492
                                    ]
493
                }, 'ip_gen' );

powered by: WebSVN 2.1.0

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