| [6] | 1 | // ========== 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 |
|---|