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

Subversion Repositories sparc64soc

[/] [sparc64soc/] [trunk/] [T1-CPU/] [spu/] [spu_ctl.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dmitryr
// ========== Copyright Header Begin ==========================================
2
// 
3
// OpenSPARC T1 Processor File: spu_ctl.v
4
// Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
5
// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
6
// 
7
// The above named program is free software; you can redistribute it and/or
8
// modify it under the terms of the GNU General Public
9
// License version 2 as published by the Free Software Foundation.
10
// 
11
// The above named program is distributed in the hope that it will be 
12
// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
// General Public License for more details.
15
// 
16
// You should have received a copy of the GNU General Public
17
// License along with this work; if not, write to the Free Software
18
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19
// 
20
// ========== Copyright Header End ============================================
21
////////////////////////////////////////////////////////////////////////
22
/*
23
//      Description:    Stream Processing Unit for Sparc Core
24
*/
25
////////////////////////////////////////////////////////////////////////
26
// Global header file includes
27
////////////////////////////////////////////////////////////////////////
28
 
29
 
30
module spu_ctl (
31
  //Inputs
32
   cpx_spu_data_cx,spu_wen_pckt_req,lsu_spu_ldst_ack,lsu_tlu_st_rs3_data_g,
33
   spu_lsurpt1_rsrv_data_e,  spu_madp_mpa_addr,
34
   ifu_spu_trap_ack,mul_data_out,spu_mul_mulres_lshft,
35
   //output
36
   spu_mamul_oprnd2_bypass,
37
   spu_mactl_ldop,
38
/*AUTOARG*/
39
   // Outputs
40
 
41
   spu_wen_ldst_pcx_vld,
42
 
43
   spu_wen_pcx_wen,
44
   spu_wen_pcx_7170_sel,
45
 
46
   spu_ifu_corr_err_w2,
47
   spu_ifu_unc_err_w,
48
   spu_lsu_unc_error_w,
49
 
50
   spu_ifu_mamem_err_w,
51
   spu_ifu_int_w2,
52
   spu_lsu_ldxa_illgl_va_w2,
53
   cpuid,
54
   ifu_spu_nceen,
55
 
56
   spu_tlu_rsrv_illgl_m,
57
   spu_mul_req_vld,
58
   spu_mul_areg_shf, spu_mul_areg_rst, spu_mul_acc,
59
   spu_mared_rdn_wen, spu_mared_data_sel_l,
60
   spu_mared_cin_oprnd_sub_mod, spu_mamul_oprnd2_wen,
61
   spu_mamul_oprnd1_mxsel_l,spu_mamul_oprnd1_wen, spu_maexp_shift_e,
62
   spu_maexp_e_data_wen, spu_mactl_mpa_sel,
63
   spu_mactl_memodd_wen, spu_mactl_memmxsel_l, spu_mactl_memeve_wen,
64
   spu_mactl_mamem_ren, spu_mactl_mamem_wen,
65
   spu_mactl_madp_parflop_wen, spu_mactl_force_perr,
66
   spu_maaddr_mpa_wen, spu_maaddr_mpa_incr_val,
67
   spu_maaddr_mpa_addrinc, spu_maaddr_memindx,  spu_maaddr_mamem_eveodd_sel_l,
68
   spu_lsu_stxa_ack_tid, spu_lsu_stxa_ack, spu_lsu_ldxa_tid_w2,
69
   spu_lsu_ldxa_data_vld_w2, spu_ifu_ttype_w2, spu_ifu_ttype_vld_w2,
70
   spu_ifu_ttype_tid_w,
71
   so,
72
 
73
   spu_mactl_mem_reset_l,
74
   mux_drive_disable,
75
   mem_bypass,
76
   sehold,
77
 
78
spu_mactl_ldxa_data_w_sel_l,
79
spu_mactl_ldxa_data_w_select,
80
spu_mactl_mpa_wen,
81
spu_mactl_maaddr_wen,
82
spu_mactl_manp_wen,
83
spu_wen_maln_wen,
84
spu_mactl_mactl_reg,
85
spu_madp_maaddr_reg,
86
 
87
   // Inputs
88
 
89
 
90
   lsu_spu_stb_empty,
91
 
92
   lsu_spu_strm_ack_cmplt,
93
   lsu_spu_early_flush_g,
94
   tlu_spu_flush_w,
95
   ifu_spu_flush_w,
96
   spu_madp_perr, spu_madp_m_lt_n, spu_madp_m_eq_n, spu_madp_e_eq_one,
97
   spu_madp_cout_oprnd_sub_mod, si, se, grst_l, arst_l, mul_spu_shf_ack,
98
   mul_spu_ack, lsu_spu_asi_state_e, ifu_tlu_thrid_e,
99
   ifu_spu_inst_vld_w, ifu_lsu_st_inst_e, ifu_lsu_ld_inst_e,
100
   ifu_lsu_alt_space_e, exu_lsu_ldst_va_e, rclk
101
   ) ;
102
 
103
input [3:0] lsu_spu_stb_empty;
104
 
105
input [134:128]         cpx_spu_data_cx;
106
input                   lsu_spu_ldst_ack;
107
input              ifu_spu_trap_ack;
108
input [13:0]            lsu_tlu_st_rs3_data_g;
109
input [2:0]            spu_lsurpt1_rsrv_data_e;
110
input [3:3]             spu_madp_mpa_addr;
111
input [0:0]             mul_data_out;
112
output                  spu_mul_mulres_lshft;
113
output                  spu_mamul_oprnd2_bypass;// From spu_mamul of spu_mamul.v
114
output                  spu_mactl_ldop;         // From spu_mactl of spu_mactl.v
115
 
116
output  spu_ifu_corr_err_w2;
117
output  spu_ifu_unc_err_w;
118
output  spu_lsu_unc_error_w;
119
 
120
output spu_ifu_mamem_err_w;
121
output spu_ifu_int_w2;
122
output spu_lsu_ldxa_illgl_va_w2;
123
 
124
 
125
output spu_mactl_mem_reset_l;
126
 
127
output spu_wen_pcx_7170_sel;
128
output spu_wen_pcx_wen;
129
 
130
output [122:104]         spu_wen_pckt_req;
131
// ------------------------------------------------------------------
132
/*AUTOINPUT*/
133
// Beginning of automatic inputs (from unused autoinst inputs)
134
 
135
 
136
input                   rclk;                   // To spu_wen of spu_wen.v, ...
137
input [7:0]              exu_lsu_ldst_va_e;      // To spu_mactl of spu_mactl.v
138
input                   ifu_lsu_alt_space_e;    // To spu_mactl of spu_mactl.v
139
input                   ifu_lsu_ld_inst_e;      // To spu_mactl of spu_mactl.v
140
input                   ifu_lsu_st_inst_e;      // To spu_mactl of spu_mactl.v
141
input                   ifu_spu_inst_vld_w;     // To spu_mactl of spu_mactl.v
142
input [1:0]              ifu_tlu_thrid_e;        // To spu_mactl of spu_mactl.v
143
input [7:0]              lsu_spu_asi_state_e;    // To spu_mactl of spu_mactl.v
144
input                   mul_spu_ack;            // To spu_mamul of spu_mamul.v, ...
145
input                   mul_spu_shf_ack;        // To spu_mamul of spu_mamul.v, ...
146
input                   grst_l;                 // To spu_wen of spu_wen.v, ...
147
input                   arst_l;                 // To spu_wen of spu_wen.v, ...
148
input                   se;                     // To spu_shactl of spu_shactl.v, ...
149
input                   si;                     // To spu_shactl of spu_shactl.v, ...
150
input                   spu_madp_cout_oprnd_sub_mod;// To spu_mared of spu_mared.v
151
input                   spu_madp_e_eq_one;      // To spu_maexp of spu_maexp.v
152
input                   spu_madp_m_eq_n;        // To spu_mared of spu_mared.v
153
input                   spu_madp_m_lt_n;        // To spu_mared of spu_mared.v
154
input                   spu_madp_perr;  // To spu_mactl of spu_mactl.v
155
input                   lsu_spu_early_flush_g;
156
input                   tlu_spu_flush_w;
157
input                   ifu_spu_flush_w;
158
input [2:0]              cpuid;
159
input [3:0]              ifu_spu_nceen;
160
 
161
 
162
input [1:0] lsu_spu_strm_ack_cmplt;
163
 
164
input mux_drive_disable;
165
input mem_bypass;
166
input sehold;
167
 
168
 
169
// End of automatics
170
 
171
// ------------------------------------------------------------------
172
/*AUTOOUTPUT*/
173
// Beginning of automatic outputs (from unused autoinst outputs)
174
output                  so;                     // From spu_shactl of spu_shactl.v, ...
175
output [1:0]             spu_ifu_ttype_tid_w;    // From spu_mactl of spu_mactl.v
176
output                  spu_ifu_ttype_vld_w2;   // From spu_mactl of spu_mactl.v
177
output                  spu_ifu_ttype_w2;       // From spu_mactl of spu_mactl.v
178
output                  spu_lsu_ldxa_data_vld_w2;// From spu_mactl of spu_mactl.v
179
output [1:0]             spu_lsu_ldxa_tid_w2;    // From spu_mactl of spu_mactl.v
180
output                  spu_lsu_stxa_ack;       // From spu_mactl of spu_mactl.v
181
output [1:0]             spu_lsu_stxa_ack_tid;   // From spu_mactl of spu_mactl.v
182
output [7:1]            spu_maaddr_memindx;     // From spu_maaddr of spu_maaddr.v
183
output [3:0]             spu_maaddr_mamem_eveodd_sel_l;  // From spu_maaddr of spu_maaddr.v
184
output                  spu_maaddr_mpa_addrinc; // From spu_maaddr of spu_maaddr.v
185
output [4:0]             spu_maaddr_mpa_incr_val;// From spu_maaddr of spu_maaddr.v
186
output                  spu_maaddr_mpa_wen;     // From spu_maaddr of spu_maaddr.v
187
output                  spu_mactl_force_perr;   // From spu_mactl of spu_mactl.v
188
output                  spu_mactl_madp_parflop_wen;// From spu_mactl of spu_mactl.v
189
output                  spu_mactl_mamem_ren;    // From spu_mactl of spu_mactl.v
190
output                  spu_mactl_mamem_wen;    // From spu_mactl of spu_mactl.v
191
output                  spu_mactl_memeve_wen;   // From spu_mactl of spu_mactl.v
192
output [2:0]             spu_mactl_memmxsel_l;   // From spu_mactl of spu_mactl.v
193
output                  spu_mactl_memodd_wen;   // From spu_mactl of spu_mactl.v
194
output                  spu_mactl_mpa_sel;      // From spu_mactl of spu_mactl.v
195
output                  spu_maexp_e_data_wen;   // From spu_maexp of spu_maexp.v
196
output                  spu_maexp_shift_e;      // From spu_maexp of spu_maexp.v
197
output [2:0]                     spu_mamul_oprnd1_mxsel_l;       // From spu_mamul of spu_mamul.v
198
output                  spu_mamul_oprnd1_wen;   // From spu_mamul of spu_mamul.v
199
output                  spu_mamul_oprnd2_wen;   // From spu_mamul of spu_mamul.v
200
output                  spu_mared_cin_oprnd_sub_mod;// From spu_mared of spu_mared.v
201
output [3:0]             spu_mared_data_sel_l;   // From spu_mared of spu_mared.v
202
output                  spu_mared_rdn_wen;      // From spu_mared of spu_mared.v
203
output                  spu_mul_acc;            // From spu_mamul of spu_mamul.v
204
output                  spu_mul_areg_rst;       // From spu_mamul of spu_mamul.v
205
output                  spu_mul_areg_shf;       // From spu_mamul of spu_mamul.v
206
output                  spu_mul_req_vld;        // From spu_mamul of spu_mamul.v
207
output                  spu_tlu_rsrv_illgl_m;   // From spu_mactl of spu_mactl.v
208
 
209
output spu_wen_ldst_pcx_vld;
210
 
211
output [3:0] spu_mactl_ldxa_data_w_sel_l;
212
output spu_mactl_ldxa_data_w_select;
213
output spu_mactl_mpa_wen;
214
output spu_mactl_maaddr_wen;
215
output spu_mactl_manp_wen;
216
output spu_wen_maln_wen;
217
output [13:0] spu_mactl_mactl_reg;
218
input [47:0] spu_madp_maaddr_reg;
219
 
220
// End of automatics
221
// ------------------------------------------------------------------
222
 
223
/*AUTOWIRE*/
224
// Beginning of automatic wires (for undeclared instantiated-module outputs)
225
wire [1:0]                       spu_maaeqb_oprnd1_mxsel;        // From spu_maaeqb of spu_maaeqb.v
226
wire [5:0] spu_maaddr_len_cntr;
227
wire [5:0]               spu_mactl_mactl_len;    // From spu_mactl of spu_mactl.v
228
 
229
// End of automatics
230
 
231
// ------------------------------------------------------------------
232
 
233
 
234
// ------------------------------------------------------------------
235
 
236
 
237
/****************************************************************************/
238
 
239
// -------------------------------------------------------------------------
240
spu_wen spu_wen (//in
241
                .spu_mald_done                  (spu_mald_ld_done),
242
 
243
                //.lsu_spu_vload_rtntyp         (cpx_spu_data_cx[138:135]),     //cpx_spc_data_cx[143:140]
244
                .lsu_spu_vload_rtntyp           (cpx_spu_data_cx[133:130]),     //cpx_spc_data_cx[143:140]
245
                //.lsu_spu_vload_asop           (cpx_spu_data_cx[129]),         //cpx_spc_data_cx[130]
246
                //.lsu_spu_vload_vld            (cpx_spu_data_cx[139]),         //cpx_spc_data_cx[144]
247
                .lsu_spu_vload_vld              (cpx_spu_data_cx[134]),         //cpx_spc_data_cx[144]
248
                //.lsu_spu_vload_data_tid       (cpx_spu_data_cx[131:130]),     //cpx_spc_data_cx[135:134]
249
                //.lsu_spu_vload_bid            (cpx_spu_data_cx[128]),         //cpx_spc_data_cx[129]
250
                //.l2_miss                      (cpx_spu_data_cx[134]),         //cpx_spc_data_cx[139]
251
                //.l2_err                       (cpx_spu_data_cx[133:132]),     //cpx_spc_data_cx[138:137]
252
                .l2_err                         (cpx_spu_data_cx[129:128]),     //cpx_spc_data_cx[138:137]
253
 
254
                .lsu_spu_st_ack_tid             (spu_wen_pckt_req[113:112]),
255
                .lsu_spu_st_asop                (spu_wen_pckt_req[108]),
256
                .lsu_spu_st_ackvld              (lsu_spu_ldst_ack),
257
                .lsu_spu_ld_ack_tid             (spu_wen_pckt_req[113:112]),
258
                .lsu_spu_ld_asop                (spu_wen_pckt_req[106]),
259
                .lsu_spu_ld_ackvld              (lsu_spu_ldst_ack),
260
 
261
                .cpuid          (cpuid[2:0]),
262
 
263
                 /*AUTOINST*/
264
                 // Outputs
265
                 .spu_wen_pckt_req      (spu_wen_pckt_req[122:104]),
266
 
267
                 .spu_wen_mast_ack      (spu_wen_mast_ack),
268
                 .spu_wen_maln_wen      (spu_wen_maln_wen),
269
                 .spu_wen_mald_ack      (spu_wen_mald_ack),
270
                 .spu_wen_vld_maln      (spu_wen_vld_maln),
271
 
272
                 .spu_wen_ldst_pcx_vld  (spu_wen_ldst_pcx_vld),
273
                .spu_mactl_streq                (spu_mactl_streq),
274
                .spu_mald_ldreq         (spu_mald_ldreq),
275
 
276
                .spu_wen_allma_stacks_ok                (spu_wen_allma_stacks_ok),
277
 
278
 
279
                .spu_wen_ma_unc_err_pulse             (spu_wen_ma_unc_err_pulse),
280
                .spu_wen_ma_unc_err             (spu_wen_ma_unc_err),
281
                .spu_wen_ma_cor_err             (spu_wen_ma_cor_err),
282
 
283
                 // Inputs
284
                .spu_mactl_uncerr_rst                   (spu_mactl_uncerr_rst),
285
 
286
 
287
                 .lsu_spu_strm_ack_cmplt                (lsu_spu_strm_ack_cmplt[1:0]),
288
                 .reset                 (spu_mactl_ctl_reset),
289
                 .rclk                  (rclk),
290
                 .se                    (se),
291
                 .spu_mald_rstln        (spu_mald_rstln));
292
 
293
 
294
// -------------------------------------------------------------------------
295
 
296
// -------------------------------------------------------------------------
297
 
298
// -------------------------------------------------------------------------
299
// -------------------------------------------------------------------------
300
// -------------------------------------------------------------------------
301
// ------------------------ MA STUFF ---------------------------------------
302
// -------------------------------------------------------------------------
303
// -------------------------------------------------------------------------
304
// -------------------------------------------------------------------------
305
spu_mast spu_mast (//in
306
                .mactl_stop                     (spu_mactl_stop),
307
                .streq_ack                      (spu_wen_mast_ack),
308
                .len_neqz                       (spu_maaddr_len_neqz),
309
 
310
                   /*AUTOINST*/
311
                   // Outputs
312
                   .spu_mast_maaddr_addrinc(spu_mast_maaddr_addrinc),
313
                   .spu_mast_memren     (spu_mast_memren),
314
                   .spu_mast_stbuf_wen  (spu_mast_stbuf_wen),
315
                   .spu_mast_mpa_addrinc(spu_mast_mpa_addrinc),
316
                   .spu_mast_streq      (spu_mast_streq),
317
                   .spu_mast_done_set   (spu_mast_done_set),
318
 
319
                        .spu_wen_allma_stacks_ok                (spu_wen_allma_stacks_ok),
320
                   // Inputs
321
 
322
                .spu_mactl_stxa_force_abort             (spu_mactl_stxa_force_abort),
323
                        .spu_mactl_perr_set             (spu_mactl_perr_set),
324
 
325
                   .reset               (spu_mactl_ctl_reset),
326
                   .rclk                        (rclk),
327
                 .se                    (se),
328
                   .spu_mactl_iss_pulse_dly(spu_mactl_iss_pulse_dly));
329
// -------------------------------------------------------------------------
330
spu_mald spu_mald (//in
331
                .ld_inprog                      (spu_mactl_ldop),
332
                .ldreq_ack                      (spu_wen_mald_ack),
333
                .ln_received                    (spu_wen_vld_maln),
334
                .len_neqz                       (spu_maaddr_len_neqz),
335
                .mactl_ldop                     (spu_mactl_ldop),
336
                   //out
337
                .spu_mald_done                  (spu_mald_ld_done),
338
                   /*AUTOINST*/
339
                   // Outputs
340
                   .spu_mald_rstln      (spu_mald_rstln),
341
                   .spu_mald_maaddr_addrinc(spu_mald_maaddr_addrinc),
342
                   .spu_mald_memwen     (spu_mald_memwen),
343
                   .spu_mald_mpa_addrinc(spu_mald_mpa_addrinc),
344
                   .spu_mald_ldreq      (spu_mald_ldreq),
345
                   .spu_mald_force_mpa_add16(spu_mald_force_mpa_add16),
346
                   .spu_mald_done_set   (spu_mald_done_set),
347
                   // Inputs
348
                .spu_mactl_stxa_force_abort             (spu_mactl_stxa_force_abort),
349
                .spu_wen_ma_unc_err_pulse             (spu_wen_ma_unc_err_pulse),
350
 
351
                   .reset               (spu_mactl_ctl_reset),
352
                   .rclk                        (rclk),
353
                 .se                    (se),
354
                   .spu_maaddr_mpa1maddr0(spu_maaddr_mpa1maddr0),
355
                   .spu_mactl_iss_pulse_dly(spu_mactl_iss_pulse_dly));
356
 
357
// -------------------------------------------------------------------------
358
spu_mactl spu_mactl (//in
359
                .spu_maaddr_maaddr_0            (spu_maaddr_wrindx_0),
360
                .spu_maaddr_mpa_3               (spu_madp_mpa_addr[3]),
361
                .ma_ctl_reg_data                (lsu_tlu_st_rs3_data_g[13:0]),
362
 
363
                .ifu_spu_trap_ack                       (ifu_spu_trap_ack),
364
                .spu_mactl_rsrv_data_e          (spu_lsurpt1_rsrv_data_e[2:0]),
365
 
366
                .spu_ifu_corr_err_w2                    (spu_ifu_corr_err_w2),
367
                .spu_ifu_unc_err_w                      (spu_ifu_unc_err_w),
368
                .spu_lsu_unc_error_w                    (spu_lsu_unc_error_w),
369
 
370
                .spu_ifu_mamem_err_w                    (spu_ifu_mamem_err_w),
371
                .spu_ifu_int_w2                         (spu_ifu_int_w2),
372
                .spu_lsu_ldxa_illgl_va_w2                       (spu_lsu_ldxa_illgl_va_w2),
373
 
374
                .spu_mactl_uncerr_rst                   (spu_mactl_uncerr_rst),
375
 
376
                .spu_mactl_pcx_wen              (spu_wen_pcx_wen),
377
                .spu_mactl_pcx_7170_sel         (spu_wen_pcx_7170_sel),
378
                        .spu_mactl_perr_set             (spu_mactl_perr_set),
379
                     /*AUTOINST*/
380
                     // Outputs
381
                     //.so              (so),
382
 
383
                     .spu_mactl_iss_pulse_pre(spu_mactl_iss_pulse_pre),
384
                     .spu_mactl_iss_pulse(spu_mactl_iss_pulse),
385
                     .spu_mactl_mpa_wen (spu_mactl_mpa_wen),
386
                     .spu_mactl_maaddr_wen(spu_mactl_maaddr_wen),
387
                     .spu_mactl_manp_wen(spu_mactl_manp_wen),
388
                     .spu_mactl_ldop    (spu_mactl_ldop),
389
                     .spu_mactl_stop    (spu_mactl_stop),
390
                     .spu_mactl_mulop   (spu_mactl_mulop),
391
                     .spu_mactl_redop   (spu_mactl_redop),
392
                     .spu_mactl_expop   (spu_mactl_expop),
393
                     .spu_mactl_memmxsel_l(spu_mactl_memmxsel_l[2:0]),
394
                     .spu_mactl_memeve_wen(spu_mactl_memeve_wen),
395
                     .spu_mactl_memodd_wen(spu_mactl_memodd_wen),
396
                     .spu_mactl_mamem_ren(spu_mactl_mamem_ren),
397
                     .spu_mactl_mamem_wen(spu_mactl_mamem_wen),
398
                     .spu_mactl_iss_pulse_dly(spu_mactl_iss_pulse_dly),
399
                     .spu_mactl_ldxa_data_w_sel_l(spu_mactl_ldxa_data_w_sel_l[3:0]),
400
                     .spu_mactl_ldxa_data_w_select(spu_mactl_ldxa_data_w_select),
401
                     .spu_mactl_mpa_sel (spu_mactl_mpa_sel),
402
                     .spu_mactl_madp_parflop_wen(spu_mactl_madp_parflop_wen),
403
                     .spu_lsu_ldxa_data_vld_w2(spu_lsu_ldxa_data_vld_w2),
404
                     .spu_lsu_ldxa_tid_w2(spu_lsu_ldxa_tid_w2[1:0]),
405
                     .spu_lsu_stxa_ack  (spu_lsu_stxa_ack),
406
                     .spu_lsu_stxa_ack_tid(spu_lsu_stxa_ack_tid[1:0]),
407
                     .spu_mactl_ldxa_mactl_reg(spu_mactl_mactl_reg[13:0]),
408
                     .spu_mactl_mactl_len(spu_mactl_mactl_len[5:0]),
409
                     .spu_mactl_force_perr(spu_mactl_force_perr),
410
                     .spu_ifu_ttype_w2  (spu_ifu_ttype_w2),
411
                     .spu_ifu_ttype_vld_w2(spu_ifu_ttype_vld_w2),
412
                     .spu_ifu_ttype_tid_w(spu_ifu_ttype_tid_w[1:0]),
413
                     .spu_tlu_rsrv_illgl_m(spu_tlu_rsrv_illgl_m),
414
 
415
                   .spu_mactl_streq     (spu_mactl_streq),
416
 
417
                   .spu_mactl_ctl_reset (spu_mactl_ctl_reset),
418
                   .spu_mactl_mem_reset_l       (spu_mactl_mem_reset_l),
419
 
420
                        .spu_mactl_ma_kill_op           (spu_mactl_ma_kill_op),
421
                     // Inputs
422
                .mux_drive_disable              (mux_drive_disable),
423
                .spu_mactl_stxa_force_abort             (spu_mactl_stxa_force_abort),
424
                .lsu_spu_ldst_ack               (lsu_spu_ldst_ack),
425
 
426
                .spu_wen_ma_unc_err             (spu_wen_ma_unc_err),
427
                .spu_wen_ma_cor_err             (spu_wen_ma_cor_err),
428
 
429
 
430
 
431
                     .spu_maaddr_len_cntr               (spu_maaddr_len_cntr[5:0]),
432
                     .ifu_spu_nceen             (ifu_spu_nceen[3:0]),
433
 
434
                   .spu_mast_streq      (spu_mast_streq),
435
 
436
                        .lsu_spu_stb_empty              (lsu_spu_stb_empty[3:0]),
437
 
438
                     .grst_l            (grst_l),
439
                     .arst_l            (arst_l),
440
                     .rclk              (rclk),
441
                 .se                    (se),
442
                     //.si              (si),
443
                     //.se              (se),
444
 
445
 
446
                     .spu_mald_memwen   (spu_mald_memwen),
447
                     .spu_mamul_memwen  (spu_mamul_memwen),
448
                     .spu_mamul_memren  (spu_mamul_memren),
449
                     .spu_maaeqb_memwen (spu_maaeqb_memwen),
450
                     .spu_maaeqb_memren (spu_maaeqb_memren),
451
                     .spu_mared_memren  (spu_mared_memren),
452
                     .spu_mared_memwen  (spu_mared_memwen),
453
                     .spu_mast_memren   (spu_mast_memren),
454
                     .lsu_spu_early_flush_g(lsu_spu_early_flush_g),
455
                     .tlu_spu_flush_w(tlu_spu_flush_w),
456
                     .ifu_spu_flush_w(ifu_spu_flush_w),
457
                     .ifu_spu_inst_vld_w(ifu_spu_inst_vld_w),
458
                     .lsu_spu_asi_state_e(lsu_spu_asi_state_e[7:0]),
459
                     .ifu_lsu_ld_inst_e (ifu_lsu_ld_inst_e),
460
                     .ifu_lsu_st_inst_e (ifu_lsu_st_inst_e),
461
                     .ifu_lsu_alt_space_e(ifu_lsu_alt_space_e),
462
                     .ifu_tlu_thrid_e   (ifu_tlu_thrid_e[1:0]),
463
                     .exu_lsu_ldst_va_e (exu_lsu_ldst_va_e[7:0]),
464
                     .spu_mald_done_set (spu_mald_done_set),
465
                     .spu_mast_done_set (spu_mast_done_set),
466
                     .spu_mared_done_set(spu_mared_done_set),
467
                     .spu_maexp_done_set(spu_maexp_done_set),
468
                     .spu_maexp_memren  (spu_maexp_memren),
469
                     .spu_maaddr_nooddwr_on_leneq1(spu_maaddr_nooddwr_on_leneq1),
470
                     .spu_mared_not_idle(spu_mared_not_idle),
471
                     .spu_mamul_oprnd2_bypass(spu_mamul_oprnd2_bypass),
472
                     .spu_madp_perr(spu_madp_perr));
473
 
474
// -------------------------------------------------------------------------
475
spu_maaddr spu_maaddr (//in
476
                //.lsu_spu_stxa_data            (lsu_tlu_st_rs3_data_g[5:0]),
477
                .spu_madp_mactl_reg             (spu_mactl_mactl_len[5:0]),
478
                .spu_madp_mpa_addr_3            (spu_madp_mpa_addr[3]),
479
 
480
 
481
                       /*AUTOINST*/
482
                       // Outputs
483
                       .spu_maaddr_len_neqz(spu_maaddr_len_neqz),
484
                       .spu_maaddr_mpa1maddr0(spu_maaddr_mpa1maddr0),
485
                       .spu_maaddr_memindx(spu_maaddr_memindx[7:1]),
486
                       .spu_maaddr_mamem_eveodd_sel_l(spu_maaddr_mamem_eveodd_sel_l[3:0]),
487
                       .spu_maaddr_iequtwolenplus2(spu_maaddr_iequtwolenplus2),
488
                       .spu_maaddr_iequtwolenplus1(spu_maaddr_iequtwolenplus1),
489
                       .spu_maaddr_jequiminus1(spu_maaddr_jequiminus1),
490
                       .spu_maaddr_jequlen(spu_maaddr_jequlen),
491
                       .spu_maaddr_halfpnt_set(spu_maaddr_halfpnt_set),
492
                       .spu_maaddr_len_eqmax(spu_maaddr_len_eqmax),
493
                       .spu_maaddr_esmod64(spu_maaddr_esmod64),
494
                       .spu_maaddr_esmax(spu_maaddr_esmax),
495
                       .spu_maaddr_nooddwr_on_leneq1(spu_maaddr_nooddwr_on_leneq1),
496
                       .spu_maaddr_mpa_addrinc(spu_maaddr_mpa_addrinc),
497
                       .spu_maaddr_mpa_wen(spu_maaddr_mpa_wen),
498
                       .spu_maaddr_mpa_incr_val(spu_maaddr_mpa_incr_val[4:0]),
499
                       .spu_maaddr_jequiminus1rshft(spu_maaddr_jequiminus1rshft),
500
                       .spu_maaddr_iequtwolen(spu_maaddr_iequtwolen),
501
                       .spu_maaddr_ieven(spu_maaddr_ieven),
502
                       .spu_maaddr_ieq0 (spu_maaddr_ieq0),
503
                       .spu_maaddr_aequb(spu_maaddr_aequb),
504
                        .spu_maaddr_jptr_eqz_mared              (spu_maaddr_jptr_eqz_mared),
505
                       // Inputs
506
 
507
                     .spu_mamul_rst     (spu_mamul_rst),
508
                     .mem_bypass(mem_bypass),
509
                     .sehold(sehold),
510
 
511
                     .spu_mamul_jjptr_sel(spu_mamul_jjptr_sel),
512
 
513
                     .spu_maaddr_len_cntr(spu_maaddr_len_cntr[5:0]),
514
 
515
                .spu_maaddr_wrindx_0            (spu_maaddr_wrindx_0),
516
 
517
                       .reset           (spu_mactl_ctl_reset),
518
                       .rclk            (rclk),
519
                 .se                    (se),
520
                       .spu_mald_force_mpa_add16(spu_mald_force_mpa_add16),
521
                       .spu_mactl_ldop  (spu_mactl_ldop),
522
                       .spu_madp_maaddr_reg_in(spu_madp_maaddr_reg[47:0]),
523
                       .spu_mald_maaddr_addrinc(spu_mald_maaddr_addrinc),
524
                       .spu_mald_mpa_addrinc(spu_mald_mpa_addrinc),
525
                       .spu_mast_maaddr_addrinc(spu_mast_maaddr_addrinc),
526
                       .spu_mast_mpa_addrinc(spu_mast_mpa_addrinc),
527
                       .spu_mamul_memwen(spu_mamul_memwen),
528
                       .spu_mamul_rst_iptr(spu_mamul_rst_iptr),
529
                       .spu_mamul_rst_jptr(spu_mamul_rst_jptr),
530
                       .spu_mamul_incr_iptr(spu_mamul_incr_iptr),
531
                       .spu_mamul_incr_jptr(spu_mamul_incr_jptr),
532
                       .spu_mamul_a_rd_oprnd_sel(spu_mamul_a_rd_oprnd_sel),
533
                       .spu_mamul_ax_rd_oprnd_sel(spu_mamul_ax_rd_oprnd_sel),
534
                       .spu_mamul_b_rd_oprnd_sel(spu_mamul_b_rd_oprnd_sel),
535
                       .spu_mamul_ba_rd_oprnd_sel(spu_mamul_ba_rd_oprnd_sel),
536
                       .spu_mamul_m_rd_oprnd_sel(spu_mamul_m_rd_oprnd_sel),
537
                       .spu_mamul_n_rd_oprnd_sel(spu_mamul_n_rd_oprnd_sel),
538
                       .spu_mamul_m_wr_oprnd_sel(spu_mamul_m_wr_oprnd_sel),
539
                       .spu_mared_me_rd_oprnd_sel(spu_mared_me_rd_oprnd_sel),
540
                       .spu_mared_xe_wr_oprnd_sel(spu_mared_xe_wr_oprnd_sel),
541
                       .spu_mamul_me_rd_oprnd_sel(spu_mamul_me_rd_oprnd_sel),
542
                       .spu_mamul_me_wr_oprnd_sel(spu_mamul_me_wr_oprnd_sel),
543
                       .spu_mamul_i_ptr_sel(spu_mamul_i_ptr_sel),
544
                       .spu_mamul_iminus1_ptr_sel(spu_mamul_iminus1_ptr_sel),
545
                       .spu_mamul_j_ptr_sel(spu_mamul_j_ptr_sel),
546
                       .spu_mamul_iminusj_ptr_sel(spu_mamul_iminusj_ptr_sel),
547
                       .spu_mamul_iminuslenminus1_sel(spu_mamul_iminuslenminus1_sel),
548
                       .spu_mamul_jjptr_wen(spu_mamul_jjptr_wen),
549
                       .spu_mactl_iss_pulse(spu_mactl_iss_pulse),
550
                     .spu_mactl_iss_pulse_pre(spu_mactl_iss_pulse_pre),
551
                       .spu_mared_m_rd_oprnd_sel(spu_mared_m_rd_oprnd_sel),
552
                       .spu_mared_nm_rd_oprnd_sel(spu_mared_nm_rd_oprnd_sel),
553
                       .spu_mared_x_wr_oprnd_sel(spu_mared_x_wr_oprnd_sel),
554
                       .spu_mared_a_rd_oprnd_sel(spu_mared_a_rd_oprnd_sel),
555
                       .spu_mared_nr_rd_oprnd_sel(spu_mared_nr_rd_oprnd_sel),
556
                       .spu_mared_r_wr_oprnd_sel(spu_mared_r_wr_oprnd_sel),
557
                       .spu_mared_memwen(spu_mared_memwen),
558
                       .spu_mared_j_ptr_sel(spu_mared_j_ptr_sel),
559
                       .spu_mared_update_jptr(spu_mared_update_jptr),
560
                       .spu_mared_rst_jptr(spu_mared_rst_jptr),
561
                       .spu_mared_maxlen_wen(spu_mared_maxlen_wen),
562
                       .spu_mared_cin_set_4sub(spu_mared_cin_set_4sub),
563
                       .spu_mast_memren (spu_mast_memren),
564
                       .spu_mared_start_wen(spu_mared_start_wen),
565
                       .spu_mared_start_sel(spu_mared_start_sel),
566
                       .spu_maexp_incr_es_ptr(spu_maexp_incr_es_ptr),
567
                       .spu_maexp_e_rd_oprnd_sel(spu_maexp_e_rd_oprnd_sel),
568
                       .spu_maexp_es_max_init(spu_maexp_es_max_init),
569
                       .spu_maexp_es_e_ptr_rst(spu_maexp_es_e_ptr_rst),
570
                       .spu_maaeqb_memwen(spu_maaeqb_memwen),
571
                       .spu_maaeqb_irshft_sel(spu_maaeqb_irshft_sel),
572
                       .spu_mared_update_redwr_jptr(spu_mared_update_redwr_jptr),
573
                       .spu_mared_jjptr_wen(spu_mared_jjptr_wen));
574
 
575
// -------------------------------------------------------------------------
576
//spu_mamem spu_mamem (/*AUTOINST*/);
577
 
578
// -------------------------------------------------------------------------
579
//spu_madp spu_madp (/*AUTOINST*/);
580
 
581
// -------------------------------------------------------------------------
582
 
583
spu_mamul spu_mamul (//in
584
 
585
                     /*AUTOINST*/
586
                     // Outputs
587
                     //.so              (so),
588
                     .spu_mamul_memwen  (spu_mamul_memwen),
589
                     .spu_mamul_memren  (spu_mamul_memren),
590
                     .spu_mamul_rst_iptr(spu_mamul_rst_iptr),
591
                     .spu_mamul_rst_jptr(spu_mamul_rst_jptr),
592
                     .spu_mamul_incr_iptr(spu_mamul_incr_iptr),
593
                     .spu_mamul_incr_jptr(spu_mamul_incr_jptr),
594
                     .spu_mamul_a_rd_oprnd_sel(spu_mamul_a_rd_oprnd_sel),
595
                     .spu_mamul_ax_rd_oprnd_sel(spu_mamul_ax_rd_oprnd_sel),
596
                     .spu_mamul_b_rd_oprnd_sel(spu_mamul_b_rd_oprnd_sel),
597
                     .spu_mamul_ba_rd_oprnd_sel(spu_mamul_ba_rd_oprnd_sel),
598
                     .spu_mamul_m_rd_oprnd_sel(spu_mamul_m_rd_oprnd_sel),
599
                     .spu_mamul_me_rd_oprnd_sel(spu_mamul_me_rd_oprnd_sel),
600
                     .spu_mamul_n_rd_oprnd_sel(spu_mamul_n_rd_oprnd_sel),
601
                     .spu_mamul_m_wr_oprnd_sel(spu_mamul_m_wr_oprnd_sel),
602
                     .spu_mamul_me_wr_oprnd_sel(spu_mamul_me_wr_oprnd_sel),
603
                     .spu_mamul_i_ptr_sel(spu_mamul_i_ptr_sel),
604
                     .spu_mamul_iminus1_ptr_sel(spu_mamul_iminus1_ptr_sel),
605
                     .spu_mamul_j_ptr_sel(spu_mamul_j_ptr_sel),
606
                     .spu_mamul_iminusj_ptr_sel(spu_mamul_iminusj_ptr_sel),
607
                     .spu_mamul_iminuslenminus1_sel(spu_mamul_iminuslenminus1_sel),
608
                     .spu_mamul_jjptr_wen(spu_mamul_jjptr_wen),
609
                     .spu_mamul_oprnd2_wen(spu_mamul_oprnd2_wen),
610
                     .spu_mamul_oprnd2_bypass(spu_mamul_oprnd2_bypass),
611
                     .spu_mamul_oprnd1_mxsel_l(spu_mamul_oprnd1_mxsel_l[2:0]),
612
                     .spu_mamul_oprnd1_wen      (spu_mamul_oprnd1_wen),
613
                     .spu_mul_req_vld   (spu_mul_req_vld),
614
                     .spu_mul_areg_shf  (spu_mul_areg_shf),
615
                     .spu_mul_acc       (spu_mul_acc),
616
                     .spu_mul_areg_rst  (spu_mul_areg_rst),
617
                     .spu_mamul_rst     (spu_mamul_rst),
618
                     .spu_mamul_mul_done(spu_mamul_mul_done),
619
 
620
                     .spu_mamul_jjptr_sel(spu_mamul_jjptr_sel),
621
                     // Inputs
622
 
623
                .spu_mactl_stxa_force_abort             (spu_mactl_stxa_force_abort),
624
                        .spu_mactl_kill_op              (spu_mactl_ma_kill_op),
625
 
626
                     .spu_maaeqb_jjptr_sel(spu_maaeqb_jjptr_sel),
627
 
628
                     .reset             (spu_mactl_ctl_reset),
629
                     .rclk              (rclk),
630
                 .se                    (se),
631
                     //.si              (si),
632
                     //.se              (se),
633
                     .spu_maaddr_iequtwolenplus2(spu_maaddr_iequtwolenplus2),
634
                     .spu_maaddr_iequtwolenplus1(spu_maaddr_iequtwolenplus1),
635
                     .spu_maaddr_jequiminus1(spu_maaddr_jequiminus1),
636
                     .spu_maaddr_jequlen(spu_maaddr_jequlen),
637
                     .spu_maaddr_halfpnt_set(spu_maaddr_halfpnt_set),
638
                     .mul_spu_ack       (mul_spu_ack),
639
                     .mul_spu_shf_ack   (mul_spu_shf_ack),
640
                     .spu_mactl_mulop   (spu_mactl_mulop),
641
                     .spu_mactl_iss_pulse_dly(spu_mactl_iss_pulse_dly),
642
                     .spu_mared_oprnd2_wen(spu_mared_oprnd2_wen),
643
                     .spu_maexp_start_mulred_anoteqb(spu_maexp_start_mulred_anoteqb),
644
                     .spu_mactl_expop   (spu_mactl_expop),
645
                     .spu_maaddr_aequb  (spu_maaddr_aequb),
646
                     .spu_maaeqb_rst_iptr(spu_maaeqb_rst_iptr),
647
                     .spu_maaeqb_rst_jptr(spu_maaeqb_rst_jptr),
648
                     .spu_maaeqb_incr_iptr(spu_maaeqb_incr_iptr),
649
                     .spu_maaeqb_incr_jptr(spu_maaeqb_incr_jptr),
650
                     .spu_maaeqb_a_rd_oprnd_sel(spu_maaeqb_a_rd_oprnd_sel),
651
                     .spu_maaeqb_ax_rd_oprnd_sel(spu_maaeqb_ax_rd_oprnd_sel),
652
                     .spu_maaeqb_m_rd_oprnd_sel(spu_maaeqb_m_rd_oprnd_sel),
653
                     .spu_maaeqb_me_rd_oprnd_sel(spu_maaeqb_me_rd_oprnd_sel),
654
                     .spu_maaeqb_n_rd_oprnd_sel(spu_maaeqb_n_rd_oprnd_sel),
655
                     .spu_maaeqb_m_wr_oprnd_sel(spu_maaeqb_m_wr_oprnd_sel),
656
                     .spu_maaeqb_me_wr_oprnd_sel(spu_maaeqb_me_wr_oprnd_sel),
657
                     .spu_maaeqb_iminus1_ptr_sel(spu_maaeqb_iminus1_ptr_sel),
658
                     .spu_maaeqb_j_ptr_sel(spu_maaeqb_j_ptr_sel),
659
                     .spu_maaeqb_iminusj_ptr_sel(spu_maaeqb_iminusj_ptr_sel),
660
                     .spu_maaeqb_iminuslenminus1_sel(spu_maaeqb_iminuslenminus1_sel),
661
                     .spu_maaeqb_jjptr_wen(spu_maaeqb_jjptr_wen),
662
                     .spu_maaeqb_oprnd2_wen(spu_maaeqb_oprnd2_wen),
663
                     .spu_maaeqb_oprnd2_bypass(spu_maaeqb_oprnd2_bypass),
664
                     .spu_maaeqb_oprnd1_mxsel(spu_maaeqb_oprnd1_mxsel[1:0]),
665
                     .spu_maaeqb_oprnd1_wen(spu_maaeqb_oprnd1_wen),
666
                     .spu_maaeqb_mul_req_vld(spu_maaeqb_mul_req_vld),
667
                     .spu_maaeqb_mul_areg_shf(spu_maaeqb_mul_areg_shf),
668
                     .spu_maaeqb_mul_acc(spu_maaeqb_mul_acc),
669
                     .spu_maaeqb_mul_areg_rst(spu_maaeqb_mul_areg_rst),
670
                     .spu_maaeqb_mul_done(spu_maaeqb_mul_done));
671
 
672
// -------------------------------------------------------------------------
673
 
674
spu_mared spu_mared (//in
675
                .mul_data_out_0                 (mul_data_out[0]),
676
 
677
                     /*AUTOINST*/
678
                     // Outputs
679
                     .spu_mared_data_sel_l(spu_mared_data_sel_l[3:0]),
680
                     .spu_mared_j_ptr_sel(spu_mared_j_ptr_sel),
681
                     .spu_mared_nm_rd_oprnd_sel(spu_mared_nm_rd_oprnd_sel),
682
                     .spu_mared_m_rd_oprnd_sel(spu_mared_m_rd_oprnd_sel),
683
                     .spu_mared_me_rd_oprnd_sel(spu_mared_me_rd_oprnd_sel),
684
                     .spu_mared_x_wr_oprnd_sel(spu_mared_x_wr_oprnd_sel),
685
                     .spu_mared_xe_wr_oprnd_sel(spu_mared_xe_wr_oprnd_sel),
686
                     .spu_mared_nr_rd_oprnd_sel(spu_mared_nr_rd_oprnd_sel),
687
                     .spu_mared_a_rd_oprnd_sel(spu_mared_a_rd_oprnd_sel),
688
                     .spu_mared_r_wr_oprnd_sel(spu_mared_r_wr_oprnd_sel),
689
                     .spu_mared_update_jptr(spu_mared_update_jptr),
690
                     .spu_mared_rst_jptr(spu_mared_rst_jptr),
691
                     .spu_mared_maxlen_wen(spu_mared_maxlen_wen),
692
                     .spu_mared_rdn_wen (spu_mared_rdn_wen),
693
                     .spu_mared_oprnd2_wen(spu_mared_oprnd2_wen),
694
                     .spu_mared_memren  (spu_mared_memren),
695
                     .spu_mared_memwen  (spu_mared_memwen),
696
                     .spu_mared_cin_set_4sub(spu_mared_cin_set_4sub),
697
                     .spu_mared_cin_oprnd_sub_mod(spu_mared_cin_oprnd_sub_mod),
698
                     .spu_mared_done_set(spu_mared_done_set),
699
                     .spu_mared_start_wen(spu_mared_start_wen),
700
                     .spu_mared_start_sel(spu_mared_start_sel),
701
                     .spu_mared_red_done(spu_mared_red_done),
702
                     .spu_mared_update_redwr_jptr(spu_mared_update_redwr_jptr),
703
                     .spu_mared_jjptr_wen(spu_mared_jjptr_wen),
704
                     .spu_mared_not_idle(spu_mared_not_idle),
705
                     // Inputs
706
 
707
                .spu_mactl_stxa_force_abort             (spu_mactl_stxa_force_abort),
708
                        .spu_mactl_kill_op              (spu_mactl_ma_kill_op),
709
 
710
                     .reset             (spu_mactl_ctl_reset),
711
                     .rclk              (rclk),
712
                 .se                    (se),
713
                     .spu_madp_m_eq_n   (spu_madp_m_eq_n),
714
                     .spu_madp_m_lt_n   (spu_madp_m_lt_n),
715
                     .spu_mactl_expop   (spu_mactl_expop),
716
                     .spu_mactl_mulop   (spu_mactl_mulop),
717
                     .spu_mactl_redop   (spu_mactl_redop),
718
                     .spu_mamul_mul_done(spu_mamul_mul_done),
719
                     .spu_mactl_iss_pulse_dly(spu_mactl_iss_pulse_dly),
720
                     .spu_maaddr_jptr_eqz(spu_maaddr_jptr_eqz_mared),
721
                     .spu_maaddr_len_eqmax(spu_maaddr_len_eqmax),
722
                     .spu_mast_stbuf_wen(spu_mast_stbuf_wen),
723
                     .spu_madp_cout_oprnd_sub_mod(spu_madp_cout_oprnd_sub_mod));
724
// -------------------------------------------------------------------------
725
 
726
spu_maexp spu_maexp (//in
727
 
728
                     /*AUTOINST*/
729
                     // Outputs
730
                     .spu_maexp_e_rd_oprnd_sel(spu_maexp_e_rd_oprnd_sel),
731
                     .spu_maexp_shift_e (spu_maexp_shift_e),
732
                     .spu_maexp_e_data_wen(spu_maexp_e_data_wen),
733
                     .spu_maexp_incr_es_ptr(spu_maexp_incr_es_ptr),
734
                     .spu_maexp_es_max_init(spu_maexp_es_max_init),
735
                     .spu_maexp_es_e_ptr_rst(spu_maexp_es_e_ptr_rst),
736
                     .spu_maexp_done_set(spu_maexp_done_set),
737
                     .spu_maexp_memren  (spu_maexp_memren),
738
                     .spu_maexp_start_mulred_aequb(spu_maexp_start_mulred_aequb),
739
                     .spu_maexp_start_mulred_anoteqb(spu_maexp_start_mulred_anoteqb),
740
                     // Inputs
741
 
742
                .spu_mactl_stxa_force_abort             (spu_mactl_stxa_force_abort),
743
                        .spu_mactl_kill_op              (spu_mactl_ma_kill_op),
744
 
745
                     .reset             (spu_mactl_ctl_reset),
746
                     .rclk              (rclk),
747
                 .se                    (se),
748
                     .spu_maaddr_esmax  (spu_maaddr_esmax),
749
                     .spu_maaddr_esmod64(spu_maaddr_esmod64),
750
                     .spu_madp_e_eq_one (spu_madp_e_eq_one),
751
                     .spu_mared_red_done(spu_mared_red_done),
752
                     .spu_mactl_iss_pulse_dly(spu_mactl_iss_pulse_dly),
753
                     .spu_mactl_expop   (spu_mactl_expop));
754
 
755
// -------------------------------------------------------------------------
756
 
757
 
758
spu_maaeqb spu_maaeqb (//out
759
                .spu_maaeqb_a_leftshft          (spu_mul_mulres_lshft),
760
 
761
                       /*AUTOINST*/
762
                       // Outputs
763
                       .spu_maaeqb_memwen(spu_maaeqb_memwen),
764
                       .spu_maaeqb_memren(spu_maaeqb_memren),
765
                       .spu_maaeqb_rst_iptr(spu_maaeqb_rst_iptr),
766
                       .spu_maaeqb_rst_jptr(spu_maaeqb_rst_jptr),
767
                       .spu_maaeqb_incr_iptr(spu_maaeqb_incr_iptr),
768
                       .spu_maaeqb_incr_jptr(spu_maaeqb_incr_jptr),
769
                       .spu_maaeqb_a_rd_oprnd_sel(spu_maaeqb_a_rd_oprnd_sel),
770
                       .spu_maaeqb_ax_rd_oprnd_sel(spu_maaeqb_ax_rd_oprnd_sel),
771
                       .spu_maaeqb_m_rd_oprnd_sel(spu_maaeqb_m_rd_oprnd_sel),
772
                       .spu_maaeqb_me_rd_oprnd_sel(spu_maaeqb_me_rd_oprnd_sel),
773
                       .spu_maaeqb_n_rd_oprnd_sel(spu_maaeqb_n_rd_oprnd_sel),
774
                       .spu_maaeqb_m_wr_oprnd_sel(spu_maaeqb_m_wr_oprnd_sel),
775
                       .spu_maaeqb_me_wr_oprnd_sel(spu_maaeqb_me_wr_oprnd_sel),
776
                       .spu_maaeqb_iminus1_ptr_sel(spu_maaeqb_iminus1_ptr_sel),
777
                       .spu_maaeqb_j_ptr_sel(spu_maaeqb_j_ptr_sel),
778
                       .spu_maaeqb_iminusj_ptr_sel(spu_maaeqb_iminusj_ptr_sel),
779
                       .spu_maaeqb_iminuslenminus1_sel(spu_maaeqb_iminuslenminus1_sel),
780
                       .spu_maaeqb_irshft_sel(spu_maaeqb_irshft_sel),
781
                       .spu_maaeqb_jjptr_wen(spu_maaeqb_jjptr_wen),
782
                       .spu_maaeqb_oprnd2_wen(spu_maaeqb_oprnd2_wen),
783
                       .spu_maaeqb_oprnd2_bypass(spu_maaeqb_oprnd2_bypass),
784
                     .spu_maaeqb_oprnd1_mxsel(spu_maaeqb_oprnd1_mxsel[1:0]),
785
                     .spu_maaeqb_oprnd1_wen(spu_maaeqb_oprnd1_wen),
786
                       .spu_maaeqb_mul_req_vld(spu_maaeqb_mul_req_vld),
787
                       .spu_maaeqb_mul_areg_shf(spu_maaeqb_mul_areg_shf),
788
                       .spu_maaeqb_mul_acc(spu_maaeqb_mul_acc),
789
                       .spu_maaeqb_mul_areg_rst(spu_maaeqb_mul_areg_rst),
790
                       .spu_maaeqb_mul_done(spu_maaeqb_mul_done),
791
 
792
                     .spu_maaeqb_jjptr_sel(spu_maaeqb_jjptr_sel),
793
 
794
                       // Inputs
795
 
796
                .spu_mactl_stxa_force_abort             (spu_mactl_stxa_force_abort),
797
                        .spu_mactl_kill_op              (spu_mactl_ma_kill_op),
798
 
799
                       .reset           (spu_mactl_ctl_reset),
800
                       .rclk            (rclk),
801
                 .se                    (se),
802
                       .spu_maaddr_iequtwolenplus2(spu_maaddr_iequtwolenplus2),
803
                       .spu_maaddr_iequtwolenplus1(spu_maaddr_iequtwolenplus1),
804
                       .spu_maaddr_jequiminus1(spu_maaddr_jequiminus1),
805
                       .spu_maaddr_jequlen(spu_maaddr_jequlen),
806
                       .spu_maaddr_halfpnt_set(spu_maaddr_halfpnt_set),
807
                       .mul_spu_ack     (mul_spu_ack),
808
                       .mul_spu_shf_ack (mul_spu_shf_ack),
809
                       .spu_mactl_mulop (spu_mactl_mulop),
810
                       .spu_mactl_iss_pulse_dly(spu_mactl_iss_pulse_dly),
811
                       .spu_maexp_start_mulred_aequb(spu_maexp_start_mulred_aequb),
812
                       .spu_mactl_expop (spu_mactl_expop),
813
                       .spu_maaddr_jequiminus1rshft(spu_maaddr_jequiminus1rshft),
814
                       .spu_maaddr_iequtwolen(spu_maaddr_iequtwolen),
815
                       .spu_maaddr_ieven(spu_maaddr_ieven),
816
                       .spu_maaddr_ieq0 (spu_maaddr_ieq0),
817
                       .spu_maaddr_aequb(spu_maaddr_aequb));
818
 
819
 
820
 
821
endmodule

powered by: WebSVN 2.1.0

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