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

Subversion Repositories mips789

[/] [mips789/] [trunk/] [core/] [mips_core.v] - Blame information for rev 64

Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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