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

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [lib/] [gaisler/] [leon3/] [core1.v.bak] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
`include "mips789_defs.v"
2
 
3
module mips_core (
4
        clk,rst,zz_ins_i,iack_o,qa,qb,wb_din_o,rdaddra_o,rdaddrb_o,wb_addr_o,wb_we_o,
5
       zz_pc_o,dmem_ctl_ur_o,alu_ur_o,dmem_data_ur_o,dout,size,branch
6
    );
7
 
8
    input clk;
9
    wire clk;
10
    input rst;
11
    wire rst;
12
    input [31:0] zz_ins_i;
13
    wire [31:0] zz_ins_i;
14
         wire [31:0] zz_ins_o;
15
    input [31:0] dout;
16
    wire [31:0] dout;
17
         input [31:0] qa;
18
         wire [31:0] qa;
19
         input [31:0] qb;
20
         wire [31:0] qb;
21
    output [31:0] zz_pc_o;
22
    wire [31:0] zz_pc_o;
23
    output iack_o;
24
    wire iack_o;
25
    wire [31:0] cop_addr_o;
26
    output [4:0] dmem_ctl_ur_o;
27
    output [31:0] alu_ur_o;
28
    output [31:0] dmem_data_ur_o;
29
    wire [4:0] dmem_ctl_ur_o;
30
    wire [31:0] alu_ur_o;
31
    wire [31:0] dmem_data_ur_o;
32
         output [31:0] wb_din_o;
33
         wire [31:0] wb_din_o;
34
         output [4:0] rdaddra_o;
35
         wire [4:0] rdaddra_o;
36
         output [4:0] rdaddrb_o;
37
         wire [4:0] rdaddrb_o;
38
         output [4:0] wb_addr_o;
39
         wire [4:0] wb_addr_o;
40
         output wb_we_o;
41
         wire wb_we_o;
42
         output [1:0] size;
43
         wire [1:0] size;
44
         output branch;
45
         wire branch;
46
 
47
         wire [31:0] pc_next;
48
    wire load;
49
         wire load_o;
50
         wire [4:0]rt_o;
51
    wire NET1375;
52
    wire NET1572;
53
    wire NET1606;
54
    wire NET1640;
55
    wire NET21531;
56
    wire NET457;
57
    wire NET767;
58
    wire [2:0] BUS109;
59
    wire [2:0] BUS1158;
60
    wire [2:0] BUS117;
61
    wire [2:0] BUS1196;
62
    wire [31:0] BUS15471;
63
    wire [4:0] BUS1724;
64
    wire [4:0] BUS1726;
65
    wire [4:0] BUS18211;
66
    wire [2:0] BUS197;
67
    wire [2:0] BUS2140;
68
    wire [2:0] BUS2156;
69
    wire [31:0] BUS22401;
70
    wire [31:0] BUS24839;
71
    wire [31:0] BUS27031;
72
    wire [2:0] BUS271;
73
    wire [31:0] BUS28013;
74
    wire [1:0] BUS371;
75
    wire [31:0] BUS422;
76
    wire [1:0] BUS5832;
77
    wire [1:0] BUS5840;
78
    wire [2:0] BUS5993;
79
    wire [4:0] BUS6275;
80
    wire [31:0] BUS7101;
81
    wire [31:0] BUS7117;
82
    wire [31:0] BUS7160;
83
    wire [31:0] BUS7219;
84
    wire [31:0] BUS7231;
85
    wire [4:0] BUS748;
86
    wire [4:0] BUS756;
87
    wire [4:0] BUS775;
88
    wire [31:0] BUS7772;
89
    wire [31:0] BUS7780;
90
    wire [31:0] BUS9884;
91
 
92
 
93
    assign NET21531 = NET1572 | iack_o;
94
 
95
    rf_stage iRF_stage
96
             (
97
                 .clk(clk),
98
                 .cmp_ctl_i(BUS109),
99
                 .ext_ctl_i(BUS117),
100
                 .ext_o(BUS7219),
101
                 .fw_alu_i(cop_addr_o),
102
                 .fw_cmp_rs(BUS2140),
103
                 .fw_cmp_rt(BUS2156),
104
                 .fw_mem_i(wb_din_o),
105
                 .iack_o(iack_o),
106
                 .id2ra_ctl_clr_o(NET1606),
107
                 .id2ra_ctl_cls_o(NET1572),
108
                 .id_cmd(BUS197),
109
                 .ins_i(zz_ins_o),
110
                 .pc_gen_ctl(BUS271),
111
                                          .branch(branch),
112
                 .pc_i(zz_pc_o),
113
                 .pc_next(pc_next),
114
                 .ra2ex_ctl_clr_o(NET1640),
115
                 .rd_index_o(BUS775),
116
                 .rd_sel_i(BUS371),
117
                 .rs_n_o(BUS748),
118
                 .rs_o(BUS24839),
119
                 .rst_i(rst),
120
                 .rt_n_o(BUS756),
121
                 .rt_o(BUS7160),
122
                 .wb_din_i(wb_din_o),
123
                 .zz_spc_i(BUS28013),
124
                                          .rdaddra_o(rdaddra_o),
125
                                          .rdaddrb_o(rdaddrb_o),
126
                                          .qa(qa),
127
                                          .qb(qb)
128
             );
129
 
130
 
131
 
132
    exec_stage iexec_stage
133
               (
134
                   .alu_func(BUS6275),
135
                   .alu_ur_o(alu_ur_o),
136
                   .clk(clk),
137
                   .dmem_data_ur_o(dmem_data_ur_o),
138
                   .dmem_fw_ctl(BUS5993),
139
                   .ext_i(BUS7231),
140
                   .fw_alu(cop_addr_o),
141
                   .fw_dmem(wb_din_o),
142
                   .muxa_ctl_i(BUS5832),
143
                   .muxa_fw_ctl(BUS1158),
144
                   .muxb_ctl_i(BUS5840),
145
                   .muxb_fw_ctl(BUS1196),
146
                   .pc_i(zz_pc_o),
147
                   .rs_i(BUS7101),
148
                   .rst(rst),
149
                   .rt_i(BUS7117),
150
                   .spc_cls_i(NET21531),
151
                   .zz_spc_o(BUS28013)
152
               );
153
 
154
 
155
 
156
    r32_reg alu_pass0
157
            (
158
                .clk(clk),
159
                .r32_i(alu_ur_o),
160
                .r32_o(cop_addr_o)
161
            );
162
 
163
 
164
 
165
    r32_reg alu_pass1
166
            (
167
                .clk(clk),
168
                .r32_i(cop_addr_o),
169
                .r32_o(BUS422)
170
            );
171
 
172
        r32_reg instruction
173
            (
174
                .clk(clk),
175
                .r32_i(zz_ins_i),
176
                .r32_o(zz_ins_o)
177
            );
178
 
179
 
180
 
181
//    or32 cop_data_or
182
//         (
183
//             .a(cop_dout),
184
//             .b(BUS7772),
185
//             .c(BUS7780)
186
//         );
187
 
188
 
189
 
190
//    r32_reg cop_data_reg
191
//            (
192
//                .clk(clk),
193
//                .r32_i(BUS9884),
194
//                .r32_o(cop_data_o)
195
//            );
196
 
197
 
198
 
199
    r32_reg cop_dout_reg
200
            (
201
                .clk(clk),
202
                .r32_i(dout),
203
                .r32_o(BUS7780)
204
            );
205
 
206
 
207
 
208
    decode_pipe decoder_pipe
209
                (
210
                                                  .rt1(rt_o),
211
                                                  .load(load_o),
212
                                                  .load_o(load),
213
                    .alu_func_o(BUS6275),
214
                                                  .size(size),
215
                    .alu_we_o(NET767),
216
                    .clk(clk),
217
                    .cmp_ctl_o(BUS109),
218
                    .dmem_ctl_ur_o(dmem_ctl_ur_o),
219
                    .ext_ctl_o(BUS117),
220
                    .fsm_dly(BUS197),
221
                    .id2ra_ctl_clr(NET1606),
222
                    .id2ra_ctl_cls(NET1572),
223
                    .ins_i(zz_ins_o),
224
                    .muxa_ctl_o(BUS5832),
225
                    .muxb_ctl_o(BUS5840),
226
                    .pc_gen_ctl_o(BUS271),
227
                    .ra2ex_ctl_clr(NET1640),
228
                    .rd_sel_o(BUS371),
229
                    .wb_mux_ctl_o(NET457),
230
                    .wb_we_o(wb_we_o)
231
                );
232
 
233
 
234
 
235
    r32_reg ext_reg
236
            (
237
                .clk(clk),
238
                .r32_i(BUS7219),
239
                .r32_o(BUS7231)
240
            );
241
 
242
 
243
 
244
    forward iforward
245
            (
246
                .alu_rs_fw(BUS1158),
247
                .alu_rt_fw(BUS1196),
248
                .alu_we(NET767),
249
                .clk(clk),
250
                .cmp_rs_fw(BUS2140),
251
                .cmp_rt_fw(BUS2156),
252
                .dmem_fw(BUS5993),
253
                .fw_alu_rn(BUS1724),
254
                .fw_mem_rn(wb_addr_o),
255
                .mem_We(wb_we_o),
256
                .rns_i(BUS748),
257
                .rnt_i(BUS756)
258
            );
259
 
260
 
261
 
262
    r32_reg pc
263
            (
264
                .clk(clk),
265
                .r32_i(pc_next),
266
                .r32_o(zz_pc_o)
267
            );
268
 
269
 
270
 
271
    r5_reg rnd_pass0
272
           (
273
               .clk(clk),
274
               .r5_i(BUS775),
275
               .r5_o(BUS1726)
276
           );
277
 
278
 
279
 
280
    r5_reg rnd_pass1
281
           (
282
               .clk(clk),
283
               .r5_i(BUS1726),
284
               .r5_o(BUS1724)
285
           );
286
 
287
 
288
 
289
    r5_reg rnd_pass2
290
           (
291
               .clk(clk),
292
               .r5_i(BUS1724),
293
               .r5_o(wb_addr_o)
294
           );
295
 
296
 
297
 
298
    r32_reg rs_reg
299
            (
300
                .clk(clk),
301
                .r32_i(BUS24839),
302
                .r32_o(BUS7101)
303
            );
304
 
305
 
306
 
307
    r32_reg rt_reg
308
            (
309
                .clk(clk),
310
                .r32_i(BUS7160),
311
                .r32_o(BUS7117)
312
            );
313
 
314
 
315
 
316
    wb_mux wb_mux
317
           (
318
               .alu_i(BUS422),
319
               .dmem_i(BUS7780),
320
               .sel(NET457),
321
               .wb_o(wb_din_o)
322
           );
323
 
324
         hazard_unit ihazard_unit
325
                        (
326
                                        .clk(clk),
327
                                        .rt(rdaddrb_o),
328
                                        .load(load),
329
                                        .load_o(load_o),
330
                                        .rt_o(rt_o)
331
                        );
332
 
333
endmodule

powered by: WebSVN 2.1.0

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