1 | // ========== Copyright Header Begin ========================================== |
---|
2 | // |
---|
3 | // OpenSPARC T1 Processor File: tlu.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 | // Module Name: |
---|
24 | // Description: Trap Logic and Memory Management Unit (TLU) : |
---|
25 | // - Contains : |
---|
26 | // - Trap Stack Array (TSA) |
---|
27 | // - Trap Control Logic (TCL) |
---|
28 | // - Mmu internal Register Array (MRA) |
---|
29 | // - Mmu Control Logic (MCL) |
---|
30 | // |
---|
31 | */ |
---|
32 | //////////////////////////////////////////////////////////////////////// |
---|
33 | // Global header file includes |
---|
34 | //////////////////////////////////////////////////////////////////////// |
---|
35 | `include "sys.h" // system level definition file which contains the |
---|
36 | // time scale definition |
---|
37 | |
---|
38 | `include "tlu.h" |
---|
39 | //////////////////////////////////////////////////////////////////////// |
---|
40 | // Local header file includes / local defines |
---|
41 | //////////////////////////////////////////////////////////////////////// |
---|
42 | |
---|
43 | module tlu (/*AUTOARG*/ |
---|
44 | short_si0,short_si1,short_so0,short_so1,si0,si1,so0,so1, |
---|
45 | tlu_sftint_vld, tlu_hintp_vld, tlu_rerr_vld, tlu_lsu_tl_zero, |
---|
46 | tlu_lsu_stxa_ack, tlu_lsu_redmode_rst_d1, // tlu_lsu_async_ack_w2, |
---|
47 | tlu_lsu_pstate_priv, tlu_lsu_pstate_cle, tlu_lsu_pstate_am, tlu_lsu_tid_m, |
---|
48 | tlu_lsu_pcxpkt, tlu_lsu_ldxa_tid_w2, tlu_lsu_stxa_ack_tid, tlu_lsu_redmode, |
---|
49 | tlu_lsu_asi_update_m, tlu_lsu_asi_m, |
---|
50 | tlu_itlb_wr_vld_g, tlu_itlb_tte_tag_w2, tlu_itlb_tte_data_w2, |
---|
51 | tlu_itlb_tag_rd_g, tlu_itlb_rw_index_vld_g, tlu_itlb_rw_index_g, |
---|
52 | tlu_itlb_dmp_actxt_g, tlu_itlb_invalidate_all_g, tlu_itlb_dmp_vld_g, |
---|
53 | tlu_itlb_dmp_all_g, tlu_itlb_dmp_nctxt_g, tlu_ifu_trapnpc_w2, |
---|
54 | tlu_sscan_test_data, // tlu_sscan_pc, |
---|
55 | tlu_itlb_data_rd_g, tlu_ifu_trappc_vld_w1, tlu_ifu_trappc_w2, |
---|
56 | tlu_ifu_trapnpc_vld_w1, tlu_ifu_trap_tid_w1, tlu_ifu_rstthr_i2, |
---|
57 | tlu_ifu_rstint_i2, tlu_ifu_resumint_i2, tlu_ifu_pstate_pef, |
---|
58 | tlu_ifu_pstate_ie, tlu_ifu_nukeint_i2, // tlu_ifu_int_activate_i3, |
---|
59 | tlu_ifu_hwint_i3, tlu_idtlb_dmp_thrid_g, tlu_idtlb_dmp_key_g, |
---|
60 | tlu_exu_cwpccr_update_m, tlu_exu_cwp_retry_m, |
---|
61 | tlu_exu_cwp_m, tlu_exu_ccr_m, tlu_exu_agp_swap, tlu_exu_agp, |
---|
62 | tlu_dtlb_tte_tag_w2, tlu_dtlb_tte_data_w2, |
---|
63 | tlu_dtlb_tag_rd_g, tlu_dtlb_rw_index_vld_g, tlu_dtlb_rw_index_g, |
---|
64 | tlu_dtlb_invalidate_all_g, tlu_dtlb_dmp_vld_g, tlu_exu_rsr_data_m, |
---|
65 | tlu_dtlb_dmp_sctxt_g, tlu_dtlb_dmp_pctxt_g, tlu_dtlb_dmp_nctxt_g, |
---|
66 | tlu_dtlb_dmp_all_g, tlu_dtlb_dmp_actxt_g, tlu_dtlb_data_rd_g, |
---|
67 | tlu_lsu_int_ldxa_vld_w2, tlu_lsu_ldxa_async_data_vld, // tlu_ifu_flush_pipe_w, |
---|
68 | ifu_lsu_error_inj, tlu_exu_agp_tid, tlu_hpstate_priv, tlu_hpstate_ibe, |
---|
69 | tlu_hpstate_enb, tlu_early_flush_pipe_w, tlu_exu_early_flush_pipe_w, |
---|
70 | tlu_early_flush_pipe2_w, tlu_lsu_int_ldxa_data_w2, tlu_lsu_int_ld_ill_va_w2, |
---|
71 | tlu_exu_priv_trap_m, tlu_exu_pic_onebelow_m, tlu_exu_pic_twobelow_m, |
---|
72 | lsu_exu_ldxa_m, lsu_exu_ldxa_data_g, tlu_dsfsr_flt_vld, tlu_lsu_priv_trap_m, |
---|
73 | // tlu_lsu_priv_trap_w, |
---|
74 | // Inputs |
---|
75 | se, arst_l, grst_l, sehold, mem_write_disable, // rst_tri_en, |
---|
76 | mux_drive_disable, lsu_tlu_wtchpt_trp_g, ifu_tlu_flush_fd3_w, |
---|
77 | lsu_tlu_ttype_vld_m2, ifu_tlu_flush_fd_w, ifu_tlu_flush_fd2_w, |
---|
78 | lsu_tlu_ttype_m2, lsu_tlu_tlb_st_inst_m, // lsu_tlu_tte_ebit_g, |
---|
79 | lsu_tlu_tlb_ldst_va_m, lsu_tlu_tlb_ld_inst_m, lsu_tlu_tlb_dmp_va_m, |
---|
80 | lsu_tlu_tlb_asi_state_m, lsu_tlu_tlb_access_tid_m, ifu_tlu_flush_m, |
---|
81 | lsu_tlu_st_rs3_data_g, lsu_tlu_early_flush_w, lsu_tlu_early_flush2_w, |
---|
82 | lsu_tlu_priv_action_g, lsu_tlu_pcxpkt_ack, // lsu_tlu_priv_violtn_g, |
---|
83 | lsu_tlu_pctxt_m, lsu_tlu_async_ttype_vld_g, // lsu_tlu_nonalt_ldst_m, |
---|
84 | lsu_tlu_misalign_addr_ldst_atm_m, ctu_sscan_tid, lsu_tlu_intpkt, |
---|
85 | lsu_tlu_async_ttype_g, lsu_tlu_rs3_data_g, lsu_tlu_defr_trp_taken_g, |
---|
86 | lsu_tlu_dtlb_done, lsu_tlu_dside_ctxt_m, // lsu_tlu_flt_ld_nfo_pg_g, |
---|
87 | lsu_tlu_dmmu_miss_g, lsu_tlu_daccess_prot_g, // lsu_tlu_derr_tid_g, |
---|
88 | lsu_tlu_daccess_excptn_g, lsu_tlu_cpx_vld, ifu_tlu_pc_oor_e, |
---|
89 | lsu_tlu_cpx_req, ifu_tlu_inst_vld_m_bf1, ifu_mmu_trap_m, ifu_tlu_trap_m, |
---|
90 | lsu_asi_state, lsu_asi_reg3, lsu_asi_reg2, lsu_tlu_async_tid_g, |
---|
91 | lsu_asi_reg1, lsu_asi_reg0, ifu_tlu_ttype_vld_m, ifu_tlu_ttype_m, |
---|
92 | ifu_tlu_thrid_d, ifu_tlu_swint_m, ifu_tlu_sir_inst_m, ifu_tlu_l2imiss, |
---|
93 | ifu_tlu_rstint_m, ifu_tlu_retry_inst_d, ifu_tlu_priv_violtn_m, ifu_tlu_pc_m, |
---|
94 | ifu_tlu_npc_m, ifu_tlu_immu_miss_m, ifu_tlu_itlb_done, ifu_tlu_inst_vld_m, |
---|
95 | ifu_tlu_hwint_m, ifu_lsu_imm_asi_d, ifu_lsu_imm_asi_vld_d, ifu_tlu_done_inst_d, |
---|
96 | ifu_lsu_st_inst_e, ifu_lsu_memref_d, ifu_lsu_ld_inst_e, ffu_tlu_trap_ue, |
---|
97 | ffu_tlu_trap_other, ffu_tlu_trap_ieee754, ffu_tlu_ill_inst_m, ffu_ifu_tid_w2, |
---|
98 | exu_tlu_va_oor_jl_ret_m, exu_tlu_ttype_vld_m, exu_tlu_ttype_m, exu_tlu_va_oor_m, |
---|
99 | exu_tlu_spill_tid, exu_tlu_spill, exu_tlu_spill_other, exu_tlu_spill_wtype, |
---|
100 | exu_tlu_misalign_addr_jmpl_rtn_m, exu_tlu_cwp_retry, exu_mmu_early_va_e, |
---|
101 | exu_tlu_cwp_cmplt_tid, // exu_tlu_spill_ttype, exu_tlu_cwp_fastcmplt_w, |
---|
102 | exu_tlu_cwp_cmplt, exu_tlu_cwp3, exu_tlu_cwp2, exu_tlu_cwp1, |
---|
103 | exu_tlu_cwp0, exu_tlu_ccr3_w, exu_tlu_ccr2_w, lsu_tlu_ldst_va_m, |
---|
104 | exu_tlu_ccr1_w, exu_tlu_ccr0_w, exu_lsu_ldst_va_e, const_cpuid, |
---|
105 | rclk, ifu_tlu_sraddr_d, ifu_tlu_rsr_inst_d, // ifu_tlu_wsr_inst_d, |
---|
106 | exu_tlu_wsr_data_m, lsu_tlu_rsr_data_e, ifu_tlu_sraddr_d_v2, |
---|
107 | ifu_lsu_alt_space_e, lsu_tlu_squash_va_oor_m, ifu_tlu_imiss_e, |
---|
108 | lsu_tlu_dcache_miss_w2, lsu_tlu_l2_dmiss, lsu_tlu_stb_full_w2, |
---|
109 | ffu_tlu_fpu_tid, ffu_tlu_fpu_cmplt, spu_tlu_rsrv_illgl_m, |
---|
110 | lsu_pid_state0, lsu_pid_state1, lsu_pid_state2, lsu_pid_state3, |
---|
111 | lsu_tlu_nucleus_ctxt_m,lsu_tlu_tte_pg_sz_g, exu_tlu_ue_trap_m, |
---|
112 | lsu_ifu_inj_ack, ifu_tlu_alt_space_d, // lsu_tlu_ill_inst_m, |
---|
113 | ifu_lsu_thrid_s,lsu_dsfsr_din_g,lsu_dmmu_sfsr_trp_wr,lsu_mmu_flush_pipe_w, |
---|
114 | exu_lsu_priority_trap_m, lsu_tlu_wsr_inst_e, lsu_mmu_defr_trp_taken_g); |
---|
115 | |
---|
116 | |
---|
117 | /*AUTOINPUT*/ |
---|
118 | // Beginning of automatic inputs (from unused autoinst inputs) |
---|
119 | // |
---|
120 | // input clk; // To tlu_int of sparc_tlu_int.v, ... |
---|
121 | input rclk; // To tlu_int of sparc_tlu_int.v, ... |
---|
122 | input [3:0] const_cpuid; // To tlu_int of sparc_tlu_int.v, ... |
---|
123 | input [`ASI_VA_WIDTH-1:0] exu_lsu_ldst_va_e; // To mmu_dp of tlu_mmu_dp.v |
---|
124 | input [`TLU_ASI_VA_WIDTH-1:0] lsu_tlu_ldst_va_m; // To mmu_dp of tlu_mmu_dp.v |
---|
125 | input [7:0] exu_mmu_early_va_e; // From exu of sparc_exu.v |
---|
126 | input [7:0] exu_tlu_ccr0_w; // To tdp of tlu_tdp.v |
---|
127 | input [7:0] exu_tlu_ccr1_w; // To tdp of tlu_tdp.v |
---|
128 | input [7:0] exu_tlu_ccr2_w; // To tdp of tlu_tdp.v |
---|
129 | input [7:0] exu_tlu_ccr3_w; // To tdp of tlu_tdp.v |
---|
130 | // modified due to timing |
---|
131 | // input [2:0] exu_tlu_cwp0_w; // To tdp of tlu_tdp.v |
---|
132 | // input [2:0] exu_tlu_cwp1_w; // To tdp of tlu_tdp.v |
---|
133 | // input [2:0] exu_tlu_cwp2_w; // To tdp of tlu_tdp.v |
---|
134 | // input [2:0] exu_tlu_cwp3_w; // To tdp of tlu_tdp.v |
---|
135 | input [2:0] exu_tlu_cwp0; // To tdp of tlu_tdp.v |
---|
136 | input [2:0] exu_tlu_cwp1; // To tdp of tlu_tdp.v |
---|
137 | input [2:0] exu_tlu_cwp2; // To tdp of tlu_tdp.v |
---|
138 | input [2:0] exu_tlu_cwp3; // To tdp of tlu_tdp.v |
---|
139 | input exu_tlu_cwp_cmplt; // To tcl of tlu_tcl.v |
---|
140 | input [1:0] exu_tlu_cwp_cmplt_tid; // To tcl of tlu_tcl.v |
---|
141 | // input exu_tlu_cwp_fastcmplt_w;// To tcl of tlu_tcl.v |
---|
142 | input exu_tlu_cwp_retry; // To tcl of tlu_tcl.v |
---|
143 | input exu_tlu_misalign_addr_jmpl_rtn_m;// To tcl of tlu_tcl.v |
---|
144 | input exu_tlu_spill; // To tcl of tlu_tcl.v |
---|
145 | input [1:0] exu_tlu_spill_tid; // To tcl of tlu_tcl.v |
---|
146 | // derive the spill_ttype from spill_other and spill_wtype |
---|
147 | // input [8:0] exu_tlu_spill_ttype; // To tcl of tlu_tcl.v |
---|
148 | input exu_tlu_spill_other; // From exu of sparc_exu.v |
---|
149 | input [2:0] exu_tlu_spill_wtype; // From exu of sparc_exu.v |
---|
150 | input [8:0] exu_tlu_ttype_m; // To tcl of tlu_tcl.v |
---|
151 | input exu_tlu_ttype_vld_m; // To tcl of tlu_tcl.v |
---|
152 | input exu_tlu_ue_trap_m;// To tcl of tlu_tcl.v |
---|
153 | input exu_tlu_va_oor_jl_ret_m;// To tcl of tlu_tcl.v |
---|
154 | input exu_tlu_va_oor_m; // To tcl of tlu_tcl.v |
---|
155 | input ffu_tlu_ill_inst_m; // new trap from ffu |
---|
156 | input [1:0] ffu_ifu_tid_w2; // To tcl of tlu_tcl.v |
---|
157 | input ffu_tlu_trap_ieee754; // To tcl of tlu_tcl.v |
---|
158 | input ffu_tlu_trap_other; // To tcl of tlu_tcl.v |
---|
159 | input ffu_tlu_trap_ue; // To tcl of tlu_tcl.v |
---|
160 | input ifu_lsu_ld_inst_e; // To mmu_ctl of tlu_mmu_ctl.v |
---|
161 | input ifu_lsu_memref_d; // To tcl of tlu_tcl.v |
---|
162 | input ifu_lsu_st_inst_e; // To mmu_ctl of tlu_mmu_ctl.v |
---|
163 | input ifu_tlu_done_inst_d; // To tcl of tlu_tcl.v |
---|
164 | // input ifu_tlu_flsh_inst_e; // To tcl of tlu_tcl.v |
---|
165 | input ifu_tlu_flush_m; // To tcl of tlu_tcl.v |
---|
166 | input ifu_tlu_flush_fd_w; // To tcl of tlu_tcl.v |
---|
167 | input ifu_tlu_flush_fd2_w; // To tcl of tlu_tcl.v |
---|
168 | input ifu_tlu_flush_fd3_w; // To tcl of tlu_tcl.v |
---|
169 | input lsu_tlu_early_flush_w; // To tcl of tlu_tcl.v |
---|
170 | input lsu_tlu_early_flush2_w; // To tcl of tlu_tcl.v |
---|
171 | input ifu_tlu_hwint_m; // To tcl of tlu_tcl.v |
---|
172 | input ifu_tlu_immu_miss_m; // To tcl of tlu_tcl.v, ... |
---|
173 | input ifu_tlu_pc_oor_e; // To tcl of tlu_tcl.v |
---|
174 | input [`TLU_THRD_NUM-1:0] ifu_tlu_l2imiss; // To tcl of tlu_tcl.v, ... |
---|
175 | input ifu_tlu_inst_vld_m; // To tcl of tlu_tcl.v |
---|
176 | input ifu_tlu_inst_vld_m_bf1; // To tcl of tlu_tcl.v |
---|
177 | input ifu_tlu_itlb_done; // To mmu_ctl of tlu_mmu_ctl.v |
---|
178 | // input [1:0] ifu_tlu_ldst_size_e; // To mmu_ctl of tlu_mmu_ctl.v |
---|
179 | // modified for bug 3017 |
---|
180 | input [48:0] ifu_tlu_npc_m; // To tdp of tlu_tdp.v |
---|
181 | input [48:0] ifu_tlu_pc_m; // To tdp of tlu_tdp.v |
---|
182 | // input [47:0] ifu_tlu_npc_m; // To tdp of tlu_tdp.v |
---|
183 | // input [47:0] ifu_tlu_pc_m; // To tdp of tlu_tdp.v |
---|
184 | input ifu_tlu_priv_violtn_m; // To tcl of tlu_tcl.v |
---|
185 | input ifu_tlu_retry_inst_d; // To tcl of tlu_tcl.v |
---|
186 | input ifu_tlu_rstint_m; // To tcl of tlu_tcl.v |
---|
187 | input ifu_tlu_sir_inst_m; // To tcl of tlu_tcl.v |
---|
188 | input ifu_tlu_swint_m; // To tcl of tlu_tcl.v |
---|
189 | input [1:0] ifu_tlu_thrid_d; // To tcl of tlu_tcl.v |
---|
190 | input [1:0] ifu_lsu_thrid_s; // To tcl of tlu_tcl.v |
---|
191 | input [8:0] ifu_tlu_ttype_m; // To tcl of tlu_tcl.v |
---|
192 | input ifu_tlu_ttype_vld_m; // To tcl of tlu_tcl.v |
---|
193 | input ifu_mmu_trap_m; // To tcl of tlu_tcl.v |
---|
194 | input ifu_tlu_trap_m; // To tcl of tlu_tcl.v |
---|
195 | input [7:0] lsu_asi_reg0; // To tdp of tlu_tdp.v |
---|
196 | input [7:0] lsu_asi_reg1; // To tdp of tlu_tdp.v |
---|
197 | input [7:0] lsu_asi_reg2; // To tdp of tlu_tdp.v |
---|
198 | input [7:0] lsu_asi_reg3; // To tdp of tlu_tdp.v |
---|
199 | input [`TLU_ASI_STATE_WIDTH-1:0] lsu_asi_state; // To tcl of tlu_tcl.v, ... |
---|
200 | // added asynchronize trap to handle correctable dmmu parity error |
---|
201 | input lsu_tlu_async_ttype_vld_g; // lsu asynchronous trap valid |
---|
202 | input lsu_tlu_defr_trp_taken_g; // lsu asynchronous trap valid |
---|
203 | input lsu_mmu_defr_trp_taken_g; // lsu asynchronous trap valid |
---|
204 | input [6:0] lsu_tlu_async_ttype_g; // lsu asynchronous trap type |
---|
205 | input [1:0] lsu_tlu_async_tid_g; // asynchronous trap - thread |
---|
206 | input [3:0] lsu_tlu_cpx_req; // To tlu_int of sparc_tlu_int.v |
---|
207 | input lsu_tlu_cpx_vld; // To tlu_int of sparc_tlu_int.v |
---|
208 | // input [2:0] lsu_tlu_ctxt_sel_m; // To tcl of tlu_tcl.v |
---|
209 | input lsu_tlu_daccess_excptn_g;// To tcl of tlu_tcl.v, ... |
---|
210 | input lsu_tlu_daccess_prot_g; // To tcl of tlu_tcl.v, ... |
---|
211 | // input [1:0] lsu_tlu_derr_tid_g; // To tcl of tlu_tcl.v |
---|
212 | input lsu_tlu_dmmu_miss_g; // To tcl of tlu_tcl.v, ... |
---|
213 | input [12:0] lsu_tlu_dside_ctxt_m; // To mmu_dp of tlu_mmu_dp.v |
---|
214 | input lsu_tlu_dtlb_done; // To mmu_ctl of tlu_mmu_ctl.v |
---|
215 | // input lsu_tlu_flt_ld_nfo_pg_g;// To tcl of tlu_tcl.v |
---|
216 | // input lsu_tlu_illegal_asi_action_g;// To tcl of tlu_tcl.v |
---|
217 | input [17:0] lsu_tlu_intpkt; // To tlu_int of sparc_tlu_int.v |
---|
218 | // modified for shadow scan |
---|
219 | // input [3:0] lsu_tlu_iobrdge_pc_sel; |
---|
220 | input [`TLU_THRD_NUM-1:0] ctu_sscan_tid; |
---|
221 | input lsu_tlu_misalign_addr_ldst_atm_m;// To tcl of tlu_tcl.v |
---|
222 | // input lsu_tlu_nonalt_ldst_m; // To tcl of tlu_tcl.v |
---|
223 | input [12:0] lsu_tlu_pctxt_m; // To mmu_dp of tlu_mmu_dp.v |
---|
224 | input lsu_tlu_pcxpkt_ack; // To tlu_int of sparc_tlu_int.v |
---|
225 | input lsu_tlu_priv_action_g; // To tcl of tlu_tcl.v |
---|
226 | // input lsu_tlu_priv_violtn_g; // To tcl of tlu_tcl.v |
---|
227 | // input lsu_tlu_spec_access_epage_g;// To tcl of tlu_tcl.v |
---|
228 | input [63:0] lsu_tlu_st_rs3_data_g; // To tlu_int of sparc_tlu_int.v, ... |
---|
229 | input [63:0] lsu_tlu_rs3_data_g; // To tlu_int of sparc_tlu_int.v, ... |
---|
230 | // added for timing |
---|
231 | input [1:0] lsu_tlu_tlb_access_tid_m;// To mmu_ctl of tlu_mmu_ctl.v |
---|
232 | input [7:0] lsu_tlu_tlb_asi_state_m;// To mmu_ctl of tlu_mmu_ctl.v |
---|
233 | input [47:13] lsu_tlu_tlb_dmp_va_m; // To mmu_dp of tlu_mmu_dp.v |
---|
234 | input lsu_tlu_tlb_ld_inst_m; // To mmu_ctl of tlu_mmu_ctl.v |
---|
235 | input [10:0] lsu_tlu_tlb_ldst_va_m; // To mmu_ctl of tlu_mmu_ctl.v |
---|
236 | input lsu_tlu_tlb_st_inst_m; // To mmu_ctl of tlu_mmu_ctl.v |
---|
237 | // input lsu_tlu_tte_ebit_g; // To tcl of tlu_tcl.v |
---|
238 | input [8:0] lsu_tlu_ttype_m2; // To tcl of tlu_tcl.v |
---|
239 | // removed unused bits |
---|
240 | // input [1:0] lsu_tlu_ttype_tid_m2; // To tcl of tlu_tcl.v |
---|
241 | input lsu_tlu_ttype_vld_m2; // To tcl of tlu_tcl.v |
---|
242 | // input lsu_tlu_uncache_atomic_g;// To tcl of tlu_tcl.v |
---|
243 | // input lsu_tlu_write_op_m; // To tcl of tlu_tcl.v |
---|
244 | input lsu_tlu_wtchpt_trp_g; // To tcl of tlu_tcl.v |
---|
245 | // input lsu_tlu_xslating_ldst_m;// To tcl of tlu_tcl.v |
---|
246 | // input reset; // To mmu_ctl of tlu_mmu_ctl.v |
---|
247 | // input rst_l; // To tcl of tlu_tcl.v, ... |
---|
248 | input grst_l; // To tcl of tlu_tcl.v, ... |
---|
249 | input arst_l; // To tcl of tlu_tcl.v, ... |
---|
250 | // input rst_tri_en; // To tcl of tlu_tcl.v, ... |
---|
251 | input mem_write_disable; // To tcl of tlu_tcl.v, ... |
---|
252 | input mux_drive_disable; // To tcl of tlu_tcl.v, ... |
---|
253 | // input testmode_l; // To tcl of tlu_tcl.v, ... |
---|
254 | input sehold; // To tlu_int of sparc_tlu_int.v, ... |
---|
255 | input se; // To tlu_int of sparc_tlu_int.v, ... |
---|
256 | input si0,si1,short_si0,short_si1; // To tlu_int of sparc_tlu_int.v, ... |
---|
257 | // End of automatics |
---|
258 | // Read/Write Privileged State Register Access. |
---|
259 | input [`TLU_ASR_ADDR_WIDTH-1:0] ifu_tlu_sraddr_d; // addr of sr(st/pr) |
---|
260 | input [`TLU_ASR_ADDR_WIDTH-1:0] ifu_tlu_sraddr_d_v2; // addr of sr(st/pr) |
---|
261 | input ifu_tlu_rsr_inst_d ; // valid rd sr(st/pr) |
---|
262 | // modified for timing |
---|
263 | // input ifu_tlu_wsr_inst_d ; // valid wr sr(st/pr) |
---|
264 | input lsu_tlu_wsr_inst_e ; // valid wr sr(st/pr) |
---|
265 | input [63:0] exu_tlu_wsr_data_m ; // pr/st data to irf. |
---|
266 | |
---|
267 | // input [1:0] ifu_tlu_thrid_e ; // Thread id. |
---|
268 | input [7:0] lsu_tlu_rsr_data_e ; // sr/pr rd data from lsu. |
---|
269 | |
---|
270 | input ifu_lsu_alt_space_e; // alt-space access |
---|
271 | input ifu_tlu_alt_space_d; // alt-space access - d stage |
---|
272 | input lsu_tlu_squash_va_oor_m;// squash va_oor for mem-op. |
---|
273 | // input lsu_tlu_ill_inst_m; // new illegal instru from spu via lsu |
---|
274 | // |
---|
275 | // new interfaces to the pib |
---|
276 | input ifu_tlu_imiss_e; // icache misses -- New interface |
---|
277 | input [3:0] lsu_tlu_dcache_miss_w2; // dcache miss -- new interface |
---|
278 | input [3:0] lsu_tlu_l2_dmiss; // l2 misses -- new interface |
---|
279 | input [3:0] lsu_tlu_stb_full_w2; // store buffer full -- new interface |
---|
280 | input [1:0] ffu_tlu_fpu_tid; // ThrdID for the FF instr_cmplt -- new |
---|
281 | input ffu_tlu_fpu_cmplt; // FF instru complete -- new |
---|
282 | // |
---|
283 | // New trap from SPU |
---|
284 | // removed for timing fix |
---|
285 | input spu_tlu_rsrv_illgl_m; // illegal instruction from SPU |
---|
286 | input [2:0] lsu_pid_state0 ; // pid thread0 ; global use |
---|
287 | input [2:0] lsu_pid_state1 ; // pid thread1 ; global use |
---|
288 | input [2:0] lsu_pid_state2 ; // pid thread2 ; global use |
---|
289 | input [2:0] lsu_pid_state3 ; // pid thread3 ; global use |
---|
290 | // input [48:0] ifu_tlu_pc_w; |
---|
291 | |
---|
292 | input lsu_tlu_nucleus_ctxt_m ;// access is nucleus context |
---|
293 | input [2:0] lsu_tlu_tte_pg_sz_g ; // page-size of tte |
---|
294 | input [3:0] ifu_lsu_error_inj ; // inject parity error into tlb |
---|
295 | input [8:0] ifu_lsu_imm_asi_d; // asi state value from imm |
---|
296 | input ifu_lsu_imm_asi_vld_d; // valid asi state value from imm |
---|
297 | |
---|
298 | input [23:0] lsu_dsfsr_din_g ; // now from lsu instead of tlu_tcl |
---|
299 | input [3:0] lsu_dmmu_sfsr_trp_wr ; // now from lsu instead of tlu_tcl |
---|
300 | |
---|
301 | input lsu_mmu_flush_pipe_w ; // full trap |
---|
302 | |
---|
303 | input exu_lsu_priority_trap_m ;//fill,ue |
---|
304 | |
---|
305 | // output [5:0] int_tlu_rstid_i2; // From tlu_int of sparc_tlu_int.v |
---|
306 | /*AUTOOUTPUT*/ |
---|
307 | // Beginning of automatic outputs (from unused autoinst outputs) |
---|
308 | output [63:0] tlu_lsu_int_ldxa_data_w2; // From tlu_int of sparc_tlu_int.v |
---|
309 | output tlu_lsu_int_ld_ill_va_w2; // From tlu_int of sparc_tlu_int.v |
---|
310 | output tlu_lsu_int_ldxa_vld_w2; // From tlu_int of sparc_tlu_int.v |
---|
311 | output so0,so1,short_so0,short_so1; // From tlu_int of sparc_tlu_int.v, ... |
---|
312 | output tlu_dtlb_data_rd_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
313 | output tlu_dtlb_dmp_actxt_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
314 | output tlu_dtlb_dmp_all_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
315 | //output tlu_dtlb_dmp_by_ctxt_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
316 | output tlu_dtlb_dmp_nctxt_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
317 | output tlu_dtlb_dmp_pctxt_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
318 | output tlu_dtlb_dmp_sctxt_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
319 | output tlu_dtlb_dmp_vld_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
320 | output tlu_dtlb_invalidate_all_g;// From mmu_ctl of tlu_mmu_ctl.v |
---|
321 | output [5:0] tlu_dtlb_rw_index_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
322 | output tlu_dtlb_rw_index_vld_g;// From mmu_ctl of tlu_mmu_ctl.v |
---|
323 | output tlu_dtlb_tag_rd_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
324 | output [42:0] tlu_dtlb_tte_data_w2; // From mmu_dp of tlu_mmu_dp.v |
---|
325 | output [58:0] tlu_dtlb_tte_tag_w2; // From mmu_dp of tlu_mmu_dp.v |
---|
326 | output[3:0] lsu_ifu_inj_ack ; // ack for tlb error injection. |
---|
327 | // |
---|
328 | // width modified for hypervisor support |
---|
329 | // output [2:0] tlu_exu_agp; // From tcl of tlu_tcl.v |
---|
330 | output [`TSA_GLOBAL_WIDTH-1:0] tlu_exu_agp; // From tcl of tlu_tcl.v |
---|
331 | output tlu_exu_agp_swap; // From tcl of tlu_tcl.v |
---|
332 | output [1:0] tlu_exu_agp_tid; // From tcl of tlu_tcl.v |
---|
333 | output [7:0] tlu_exu_ccr_m; // From tcl of tlu_tcl.v |
---|
334 | output [2:0] tlu_exu_cwp_m; // From tcl of tlu_tcl.v |
---|
335 | output tlu_exu_cwp_retry_m; // From tcl of tlu_tcl.v |
---|
336 | output tlu_exu_cwpccr_update_m;// From tcl of tlu_tcl.v |
---|
337 | // tlu_exu_rsr_data_e being replaced by tlu_exu_rsr_data_m |
---|
338 | // the bus will become obsolete |
---|
339 | // output [`TLU_ASR_DATA_WIDTH-1:0] tlu_exu_rsr_data_e; // From tdp of tlu_tdp.v |
---|
340 | output [`TLU_ASR_DATA_WIDTH-1:0] tlu_exu_rsr_data_m; // From tdp of tlu_tdp.v |
---|
341 | output [40:0] tlu_idtlb_dmp_key_g; // From mmu_dp of tlu_mmu_dp.v |
---|
342 | output [1:0] tlu_idtlb_dmp_thrid_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
343 | output [3:0] tlu_ifu_hwint_i3; // From tlu_int of sparc_tlu_int.v |
---|
344 | // removed - ifu will derive the signal internally |
---|
345 | // output [3:0] tlu_ifu_int_activate_i3;// From tlu_int of sparc_tlu_int.v |
---|
346 | output tlu_ifu_nukeint_i2; // From tlu_int of sparc_tlu_int.v |
---|
347 | output [3:0] tlu_ifu_pstate_ie; // From tlu_int of sparc_tlu_int.v |
---|
348 | output [3:0] tlu_ifu_pstate_pef; // From tdp of tlu_tdp.v |
---|
349 | output tlu_ifu_resumint_i2; // From tlu_int of sparc_tlu_int.v |
---|
350 | output tlu_ifu_rstint_i2; // From tlu_int of sparc_tlu_int.v |
---|
351 | output [3:0] tlu_ifu_rstthr_i2; // From tlu_int of sparc_tlu_int.v |
---|
352 | output [1:0] tlu_ifu_trap_tid_w1; // From tcl of tlu_tcl.v |
---|
353 | output tlu_ifu_trapnpc_vld_w1; // From tdp of tlu_tdp.v |
---|
354 | output [48:0] tlu_ifu_trapnpc_w2; // From tdp of tlu_tdp.v |
---|
355 | output [48:0] tlu_ifu_trappc_w2; // From tdp of tlu_tdp.v |
---|
356 | // output [47:0] tlu_ifu_trapnpc_w2; // From tdp of tlu_tdp.v |
---|
357 | // output [47:0] tlu_ifu_trappc_w2; // From tdp of tlu_tdp.v |
---|
358 | output tlu_ifu_trappc_vld_w1; // From tcl of tlu_tcl.v |
---|
359 | output tlu_itlb_data_rd_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
360 | output tlu_itlb_dmp_actxt_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
361 | output tlu_itlb_dmp_all_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
362 | output tlu_itlb_dmp_nctxt_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
363 | output tlu_itlb_dmp_vld_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
364 | output tlu_itlb_invalidate_all_g;// From mmu_ctl of tlu_mmu_ctl.v |
---|
365 | output [5:0] tlu_itlb_rw_index_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
366 | output tlu_itlb_rw_index_vld_g;// From mmu_ctl of tlu_mmu_ctl.v |
---|
367 | output tlu_itlb_tag_rd_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
368 | output [42:0] tlu_itlb_tte_data_w2; // From mmu_dp of tlu_mmu_dp.v |
---|
369 | output [58:0] tlu_itlb_tte_tag_w2; // From mmu_dp of tlu_mmu_dp.v |
---|
370 | output tlu_itlb_wr_vld_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
371 | output [7:0] tlu_lsu_asi_m; // From tcl of tlu_tcl.v |
---|
372 | output tlu_lsu_asi_update_m; // From tcl of tlu_tcl.v |
---|
373 | // replaced by shadow scan signals |
---|
374 | output [62:0] tlu_sscan_test_data;// From tdp of tlu_tdp.v |
---|
375 | // output [47:0] tlu_sscan_pc;// From tdp of tlu_tdp.v |
---|
376 | // output [63:0] tlu_lsu_ldxa_data_w2; // From mmu_dp of tlu_mmu_dp.v |
---|
377 | output [1:0] tlu_lsu_ldxa_tid_w2; // From mmu_ctl of tlu_mmu_ctl.v |
---|
378 | output [25:0] tlu_lsu_pcxpkt; // From tlu_int of sparc_tlu_int.v |
---|
379 | output [3:0] tlu_lsu_pstate_am; // From tcl of tlu_tcl.v |
---|
380 | output [3:0] tlu_lsu_pstate_cle; // From tdp of tlu_tdp.v |
---|
381 | output [3:0] tlu_lsu_pstate_priv; // From tdp of tlu_tdp.v |
---|
382 | output [3:0] tlu_lsu_redmode; // From tcl of tlu_tcl.v |
---|
383 | // output [3:0] tlu_lsu_redmode_rst; // From tcl of tlu_tcl.v |
---|
384 | output [3:0] tlu_lsu_redmode_rst_d1; // From tcl of tlu_tcl.v |
---|
385 | // output [`TLU_THRD_NUM-1:0] tlu_lsu_async_ack_w2; // From tcl of tlu_tcl.v |
---|
386 | output tlu_lsu_stxa_ack; // From mmu_ctl of tlu_mmu_ctl.v |
---|
387 | output [1:0] tlu_lsu_stxa_ack_tid; // From mmu_ctl of tlu_mmu_ctl.v |
---|
388 | output [1:0] tlu_lsu_tid_m; // From tcl of tlu_tcl.v |
---|
389 | output [`TLU_THRD_NUM-1:0] tlu_lsu_tl_zero; // From tcl of tlu_tcl.v |
---|
390 | output [`TLU_THRD_NUM-1:0] tlu_sftint_vld; // From tcl of tlu_tcl.v |
---|
391 | output [`TLU_THRD_NUM-1:0] tlu_hintp_vld; // From tcl of tlu_tcl.v |
---|
392 | output [`TLU_THRD_NUM-1:0] tlu_rerr_vld; // From tcl of tlu_tcl.v |
---|
393 | // End of automatics |
---|
394 | // Outputs |
---|
395 | // End of automatics |
---|
396 | // output tlu_ifu_flush_pipe_w; // From tcl of tlu_tcl.v |
---|
397 | output tlu_early_flush_pipe_w; // From tcl of tlu_tcl.v |
---|
398 | output tlu_early_flush_pipe2_w; // From tcl of tlu_tcl.v |
---|
399 | output tlu_exu_early_flush_pipe_w; // From tcl of tlu_tcl.v |
---|
400 | output tlu_lsu_ldxa_async_data_vld ; // tlu_lsu_ldxa_data_vld is for async op. |
---|
401 | output [`TLU_THRD_NUM-1:0] tlu_hpstate_priv; |
---|
402 | output [`TLU_THRD_NUM-1:0] tlu_hpstate_enb; |
---|
403 | // added for hpstate.ibe ECO |
---|
404 | output [`TLU_THRD_NUM-1:0] tlu_hpstate_ibe; |
---|
405 | output tlu_exu_priv_trap_m; // local traps send to exu |
---|
406 | output tlu_lsu_priv_trap_m; // local traps send to exu |
---|
407 | // output tlu_lsu_priv_trap_w; // local traps send to exu |
---|
408 | output tlu_exu_pic_onebelow_m; // local traps send to exu |
---|
409 | output tlu_exu_pic_twobelow_m; // local traps send to exu |
---|
410 | // |
---|
411 | // added for MMU performance enhancement |
---|
412 | output lsu_exu_ldxa_m ; |
---|
413 | output [63:0] lsu_exu_ldxa_data_g ; |
---|
414 | // Added to shift dsfsr logic from tlu to lsu. |
---|
415 | output [3:0] tlu_dsfsr_flt_vld; // From mmu_dp of tlu_mmu_dp.v |
---|
416 | |
---|
417 | |
---|
418 | // |
---|
419 | // added to abide to the Niagara reset methodology |
---|
420 | wire tlu_rst; // local active high reset - from tlu_tcl |
---|
421 | wire rclk; // temprary clock name |
---|
422 | wire [63:0] tlu_pib_rsr_data_e; // From tdp of tlu_tdp.v |
---|
423 | // wire tlu_rst_l; // local active high reset - from tlu_tcl |
---|
424 | wire int_rst_l; // local active high reset - from tlu_tcl |
---|
425 | // wire pib_rst_l; // local active high reset - from tlu_tcl |
---|
426 | wire [1:0] tlu_incr_tick; // From tcl of tlu_tcl.v |
---|
427 | wire [1:0] tlu_tckctr_in; // From tcl of tlu_tcl.v |
---|
428 | // wire [60:0] tlu_tick_incr_dout; // To tdp of tlu_tdp.v |
---|
429 | wire [61:0] tlu_incr64_dout; // To tdp of tlu_tdp.v |
---|
430 | wire [61:0] tlu_tick_incr_din; // From tdp of tlu_tdp.v |
---|
431 | wire tlu_tick_ctl_din; // To tlu_int of sparc_tlu_int.v |
---|
432 | // modified for bug 3017 |
---|
433 | wire [48:0] tlu_restore_pc_w1; |
---|
434 | wire [48:0] tlu_restore_npc_w1; |
---|
435 | wire [48:0] tlu_pc_new_w; |
---|
436 | wire [48:0] tlu_npc_new_w; |
---|
437 | wire [33:0] tlu_partial_trap_pc_w1; |
---|
438 | wire [1:0] tlu_int_tid_m; // To tlu_int of sparc_tlu_int.v |
---|
439 | wire [3:0] tlu_sftint_vld; // From tcl of tlu_tcl.v |
---|
440 | wire tlu_asi_write_g; // From hyperv of tlu_hyperv.v |
---|
441 | wire tlu_tte_real_g ; // tte is real |
---|
442 | wire [`TLU_THRD_NUM-1:0] tlu_hpstate_tlz; |
---|
443 | wire [`TLU_ASI_STATE_WIDTH-1:0] tlu_asi_state_e; |
---|
444 | // modified due to memory macro swap |
---|
445 | // |
---|
446 | // wire [`TSA_MEM_WIDTH-1:0] tsa_dout; |
---|
447 | wire [`TSA_MEM_WIDTH-1:0] tsa0_dout; |
---|
448 | wire [`TSA_MEM_WIDTH-1:0] tsa1_dout; |
---|
449 | |
---|
450 | /*AUTOWIRE*/ |
---|
451 | // Beginning of automatic wires (for undeclared instantiated-module outputs) |
---|
452 | wire [`TLU_ASR_DATA_WIDTH-1:0] tlu_wsr_data_w; // From tdp of tlu_tdp.v |
---|
453 | wire dmmu_any_sfsr_wr; // From mmu_ctl of tlu_mmu_ctl.v |
---|
454 | wire [3:0] dmmu_sfar_wr_en_l; // From mmu_ctl of tlu_mmu_ctl.v |
---|
455 | // wire [3:0] dmmu_sfsr_trp_wr; // From tcl of tlu_tcl.v |
---|
456 | wire [3:0] dmmu_sfsr_wr_en_l; // From mmu_ctl of tlu_mmu_ctl.v |
---|
457 | wire immu_any_sfsr_wr; // From mmu_ctl of tlu_mmu_ctl.v |
---|
458 | wire [3:0] immu_sfsr_trp_wr; // From tcl of tlu_tcl.v |
---|
459 | wire [3:0] immu_sfsr_wr_en_l; // From mmu_ctl of tlu_mmu_ctl.v |
---|
460 | wire [5:0] int_tlu_rstid_m; // From tlu_int of sparc_tlu_int.v |
---|
461 | wire itlb_wr_vld_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
462 | wire [7:0] lsu_tlu_rsr_data_mod_e; // From tcl of tlu_tcl.v |
---|
463 | wire [19:0] mra_byte_wen; // From mmu_ctl of tlu_mmu_ctl.v |
---|
464 | wire [3:0] mra_rd_ptr; // From mmu_ctl of tlu_mmu_ctl.v |
---|
465 | wire mra_rd_vld; // From mmu_ctl of tlu_mmu_ctl.v |
---|
466 | wire [159:10] mra_rdata; // From mra of tlu_mra.v |
---|
467 | wire [155:0] mra_wdata; // From mmu_dp of tlu_mmu_dp.v |
---|
468 | wire [3:0] mra_wr_ptr; // From mmu_ctl of tlu_mmu_ctl.v |
---|
469 | wire mra_wr_vld; // From mmu_ctl of tlu_mmu_ctl.v |
---|
470 | wire [2:0] tag_access_wdata_sel; // From mmu_ctl of tlu_mmu_ctl.v |
---|
471 | wire tlb_access_rst_l; // From mmu_ctl of tlu_mmu_ctl.v |
---|
472 | wire tlu_addr_msk_g; // From tcl of tlu_tcl.v |
---|
473 | wire tlu_admp_key_sel; // From mmu_ctl of tlu_mmu_ctl.v |
---|
474 | wire tlu_clr_sftint_l_g; // From tcl of tlu_tcl.v |
---|
475 | wire [4:0] tlu_dmp_key_vld_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
476 | wire [2:0] tlu_true_pc_sel_w; |
---|
477 | wire [48:0] ifu_npc_w; |
---|
478 | wire [3:0] tlu_dsfsr_flt_vld; // From mmu_dp of tlu_mmu_dp.v |
---|
479 | wire [47:13] tlu_dtag_access_w2; // From mmu_dp of tlu_mmu_dp.v |
---|
480 | wire [3:0] tlu_dtsb_size_w2; // From mmu_dp of tlu_mmu_dp.v |
---|
481 | wire tlu_dtsb_split_w2; // From mmu_dp of tlu_mmu_dp.v |
---|
482 | wire [1:0] tlu_agp_tid_w2; // From tcl of tlu_tcl.v |
---|
483 | wire [`TSA_TTYPE_WIDTH-1:0] tlu_final_offset_w1; // From tcl of tlu_tcl.v |
---|
484 | wire [`TSA_TTYPE_WIDTH-1:0] tlu_final_ttype_w2; // From tcl of tlu_tcl.v |
---|
485 | wire tlu_full_flush_pipe_w2; // From tcl of tlu_tcl.v |
---|
486 | wire tlu_tcc_inst_w; // From tcl of tlu_tcl.v |
---|
487 | wire tlu_local_flush_w; // From tcl of tlu_tcl.v |
---|
488 | wire [47:0] tlu_idtsb_8k_ptr; // From mmu_ctl of tlu_mmu_ctl.v |
---|
489 | wire tlu_asi_data_nf_vld_w2; // From mmu_ctl of tlu_mmu_ctl.v |
---|
490 | wire tlu_inst_vld_nq_m; // From tcl of tlu_tcl.v |
---|
491 | wire tlu_int_asi_load; // From mmu_ctl of tlu_mmu_ctl.v |
---|
492 | wire [1:0] tlu_int_asi_thrid; // From mmu_ctl of tlu_mmu_ctl.v |
---|
493 | wire tlu_int_asi_vld; // From mmu_ctl of tlu_mmu_ctl.v |
---|
494 | wire [3:0] tlu_int_pstate_ie; // From tdp of tlu_tdp.v |
---|
495 | wire [3:0] tlu_int_redmode; // From tdp of tlu_tdp.v |
---|
496 | wire [23:0] tlu_isfsr_din_g; // From tcl of tlu_tcl.v |
---|
497 | wire [3:0] tlu_isfsr_flt_vld; // From mmu_dp of tlu_mmu_dp.v |
---|
498 | //wire [47:13] tlu_itsb_base_w2; // From mmu_dp of tlu_mmu_dp.v |
---|
499 | wire [3:0] tlu_itsb_size_w2; // From mmu_dp of tlu_mmu_dp.v |
---|
500 | wire tlu_itsb_split_w2; // From mmu_dp of tlu_mmu_dp.v |
---|
501 | wire [3:0] tlu_ldxa_l1mx1_sel; // From mmu_ctl of tlu_mmu_ctl.v |
---|
502 | wire [3:0] tlu_ldxa_l1mx2_sel; // From mmu_ctl of tlu_mmu_ctl.v |
---|
503 | wire [2:0] tlu_ldxa_l2mx1_sel; // From mmu_ctl of tlu_mmu_ctl.v |
---|
504 | // wire tlu_mmu_sync_data_excp_g;// From mmu_ctl of tlu_mmu_ctl.v |
---|
505 | wire [3:0] tlu_pil; // From tcl of tlu_tcl.v |
---|
506 | wire tlu_tlb_tag_invrt_parity ; |
---|
507 | wire tlu_tlb_data_invrt_parity ; |
---|
508 | wire tlu_sun4r_tte_g ; // sun4r vs. sun4v tte |
---|
509 | // |
---|
510 | // modified for bug 1767 |
---|
511 | /* |
---|
512 | wire [1:0] tlu_pstate0_mmodel; // From tdp of tlu_tdp.v |
---|
513 | wire [1:0] tlu_pstate1_mmodel; // From tdp of tlu_tdp.v |
---|
514 | wire [1:0] tlu_pstate2_mmodel; // From tdp of tlu_tdp.v |
---|
515 | wire [1:0] tlu_pstate3_mmodel; // From tdp of tlu_tdp.v |
---|
516 | wire [`TLU_THRD_NUM-1:0] tlu_pstate_tle; // From tdp of tlu_tdp.v |
---|
517 | wire [`TLU_THRD_NUM-1:0] tlu_pstate_cle; // From tdp of tlu_tdp.v |
---|
518 | */ |
---|
519 | wire [`TLU_THRD_NUM-1:0] tlu_pstate_am; // From tdp of tlu_tdp.v |
---|
520 | wire [1:0] tlu_pstate_din_sel0; // From tcl of tlu_tcl.v |
---|
521 | wire [1:0] tlu_pstate_din_sel1; // From tcl of tlu_tcl.v |
---|
522 | wire [1:0] tlu_pstate_din_sel2; // From tcl of tlu_tcl.v |
---|
523 | wire [1:0] tlu_pstate_din_sel3; // From tcl of tlu_tcl.v |
---|
524 | // wire [`TLU_THRD_NUM-1:0] tlu_pstate_priv; // From tdp of tlu_tdp.v |
---|
525 | // wire tlu_retry_inst_m; // From tcl of tlu_tcl.v |
---|
526 | // |
---|
527 | // modified for hypervisor support and bug 1767 |
---|
528 | /* |
---|
529 | wire tlu_select_alt_global; // From tcl of tlu_tcl.v |
---|
530 | wire tlu_select_int_global; // From tcl of tlu_tcl.v |
---|
531 | wire tlu_select_mmu_global; // From tcl of tlu_tcl.v |
---|
532 | wire [1:0] tlu_select_mmodel; // From tcl of tlu_tcl.v |
---|
533 | wire tlu_select_tle; // From tcl of tlu_tcl.v |
---|
534 | */ |
---|
535 | wire tlu_select_redmode; // From tcl of tlu_tcl.v |
---|
536 | // wire tlu_select_tba_g; // From tcl of tlu_tcl.v |
---|
537 | wire tlu_select_tba_w2; // From tcl of tlu_tcl.v |
---|
538 | wire tdp_select_tba_w2; // From tcl of tlu_tcl.v |
---|
539 | // wire tlu_self_boot_rst_g; // From tcl of tlu_tcl.v |
---|
540 | // wire tlu_self_boot_rst_w2; // From tcl of tlu_tcl.v |
---|
541 | wire tlu_set_sftint_l_g; // From tcl of tlu_tcl.v |
---|
542 | wire [`TLU_THRD_NUM-1:0] tlu_sftint_en_l_g; // From tcl of tlu_tcl.v |
---|
543 | wire [`TLU_THRD_NUM-1:0] tlu_sftint_mx_sel; // From tcl of tlu_tcl.v |
---|
544 | wire [3:0] tlu_sftint_id; // From tdp of tlu_tdp.v |
---|
545 | // wire [3:0] tlu_sftint_lvl14_int; // From tcl of tlu_tcl.v |
---|
546 | wire [3:0] tlu_sftint_penc_sel; // From tcl of tlu_tcl.v |
---|
547 | wire [3:0] tlu_slxa_thrd_sel; // From mmu_ctl of tlu_mmu_ctl.v |
---|
548 | wire [2:0] tlu_tag_access_ctxt_sel_m;// From tcl of tlu_tcl.v |
---|
549 | //wire tlu_tag_access_nctxt_g; // From mmu_dp of tlu_mmu_dp.v |
---|
550 | wire [`TLU_THRD_NUM-1:0] tlu_tba_en_l; // From tcl of tlu_tcl.v |
---|
551 | wire [`TLU_THRD_NUM-1:0] tlu_thrd_rsel_e; // From tcl of tlu_tcl.v |
---|
552 | // wire [`TLU_THRD_NUM-1:0] tlu_thrd_rsel_g; // From tcl of tlu_tcl.v |
---|
553 | // wire [`TLU_THRD_NUM-1:0] tlu_thrd_wsel_g; // From tcl of tlu_tcl.v |
---|
554 | wire [`TLU_THRD_NUM-1:0] tlu_thrd_wsel_w2; // From tcl of tlu_tcl.v |
---|
555 | wire [`TLU_THRD_NUM-1:0] tlu_thread_wsel_g; // From tcl of tlu_tcl.v |
---|
556 | wire [`TLU_THRD_NUM-1:0] tlu_thread_inst_vld_g; // From tcl of tlu_tcl.v |
---|
557 | // wire [`TLU_THRD_NUM-1:0] tlu_thread_inst_vld_w2; // From tcl of tlu_tcl.v |
---|
558 | wire tlu_tick_en_l; // From tcl of tlu_tcl.v |
---|
559 | // wire [`TLU_THRD_NUM-1:0] tlu_tick_int; // From tcl of tlu_tcl.v |
---|
560 | // wire [`TLU_THRD_NUM-1:0] tlu_stick_int; // From tcl of tlu_tcl.v |
---|
561 | // wire tlu_tick_match; // From tdp of tlu_tdp.v |
---|
562 | wire tlu_tick_npt; // From tcl of tlu_tcl.v |
---|
563 | wire [`TLU_THRD_NUM-1:0] tlu_tickcmp_en_l; // From tcl of tlu_tcl.v |
---|
564 | // wire tlu_tickcmp_intdis; // From tcl of tlu_tcl.v |
---|
565 | wire [`TLU_THRD_NUM-1:0] tlu_tickcmp_sel; // From tcl of tlu_tcl.v |
---|
566 | // wire tlu_tl_gt_0_g; // From tcl of tlu_tcl.v |
---|
567 | wire tlu_tl_gt_0_w2; // From tcl of tlu_tcl.v |
---|
568 | wire [2:0] tlu_trp_lvl; // From tcl of tlu_tcl.v |
---|
569 | wire [2:0] tlu_tte_tag_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
570 | wire [2:0] tlu_tte_wr_pid_g; // From mmu_ctl of tlu_mmu_ctl.v |
---|
571 | // wire [`TLU_THRD_NUM-1:0] tlu_update_pc_l_m; // From tcl of tlu_tcl.v |
---|
572 | wire [`TLU_THRD_NUM-1:0] tlu_update_pc_l_w; // From tcl of tlu_tcl.v |
---|
573 | wire [`TLU_THRD_NUM-1:0] tlu_trap_cwp_en; // From tcl of tlu_tcl.v |
---|
574 | wire tlu_cwp_no_change_m; // From tcl of tlu_tcl.v |
---|
575 | // modified due to timing |
---|
576 | // wire [3:0] tlu_update_pstate_l_g; // From tcl of tlu_tcl.v |
---|
577 | wire [3:0] tlu_update_pstate_l_w2; // From tcl of tlu_tcl.v |
---|
578 | wire tlu_wr_sftint_l_g; // From tcl of tlu_tcl.v |
---|
579 | // wire tlu_wsr_inst_g; // From tcl of tlu_tcl.v |
---|
580 | wire tlu_wsr_inst_nq_g; // From tcl of tlu_tcl.v |
---|
581 | // wire tlu_wr_tsa_inst_g; // From tcl of tlu_tcl.v |
---|
582 | wire tlu_wr_tsa_inst_w2; // From tcl of tlu_tcl.v |
---|
583 | wire tsa_npc_en; // From tcl of tlu_tcl.v |
---|
584 | wire tsa_pc_en; // From tcl of tlu_tcl.v |
---|
585 | wire [1:0] tsa_rd_tid; // From tcl of tlu_tcl.v |
---|
586 | wire [2:0] tsa_rd_tpl; // From tcl of tlu_tcl.v |
---|
587 | wire tsa_rd_vld_e; // From tcl of tlu_tcl.v |
---|
588 | wire tsa_rd_en; // From tcl of tlu_tcl.v |
---|
589 | // wire [`TLU_TSA_WIDTH-1:0] tsa_rdata; // From tsa of tlu_tsa.v |
---|
590 | wire tsa_tstate_en; // From tcl of tlu_tcl.v |
---|
591 | wire tsa_htstate_en; // From tlu_hyperv of tlu_hyperv.v |
---|
592 | wire tsa_ttype_en; // From tcl of tlu_tcl.v |
---|
593 | wire [`TLU_TSA_WIDTH-1:0] tsa_wdata; // From tdp of tlu_tdp.v |
---|
594 | wire [1:0] tsa_wr_tid; // From tcl of tlu_tcl.v |
---|
595 | wire [2:0] tsa_wr_tpl; // From tcl of tlu_tcl.v |
---|
596 | // modified due to tsa memory swap |
---|
597 | wire [1:0] tsa_wr_vld; // From tcl of tlu_tcl.v |
---|
598 | wire tlu_htstate_rw_d; // From tlu_hyperv of tlu_hyperv.v |
---|
599 | wire tlu_htstate_rw_g; // From tlu_hyperv of tlu_hyperv.v |
---|
600 | // modified due to rsr mux recode |
---|
601 | // wire tlu_htba_mx2_sel; // From tlu_hyperv of tlu_hyperv.v |
---|
602 | wire tlu_htickcmp_rw_e; // From tlu_hyperv of tlu_hyperv.v |
---|
603 | // End of automatics |
---|
604 | wire [`TLU_ASI_QUE_WIDTH-1:0] tlu_asi_queue_rdata_g; |
---|
605 | wire tlu_asi_queue_rd_vld_g; |
---|
606 | wire tlu_ld_data_vld_g; |
---|
607 | wire tlu_va_ill_g; |
---|
608 | // wire tlu_va_all_zero_g; |
---|
609 | // |
---|
610 | // modified for timing fixes |
---|
611 | // wire [3:0] pib_priv_act_trap ; |
---|
612 | wire [3:0] pib_priv_act_trap_m ; |
---|
613 | // wire [`QUE_TRAP_SEL_WIDTH-1:0] tlu_que_trap_sel_m; |
---|
614 | wire [5:0] tlu_ctxt_cfg_w2; // To mmu_ctl of tlu_mmu_ctl.v |
---|
615 | wire [`TLU_THRD_NUM-1:0] pib_picl_wrap; // To tcl of tlu_tcl.v |
---|
616 | wire [`TLU_THRD_NUM-1:0] pib_pich_wrap; // To tcl of tlu_tcl.v |
---|
617 | wire [`TLU_THRD_NUM-1:0] pich_wrap_flg; // To tcl of tlu_tcl.v |
---|
618 | wire [`TLU_THRD_NUM-1:0] pich_onebelow_flg; // To tcl of tlu_tcl.v |
---|
619 | wire [`TLU_THRD_NUM-1:0] pich_twobelow_flg; // To tcl of tlu_tcl.v |
---|
620 | wire tlu_pic_onebelow_e; // To tcl of tlu_tcl.v |
---|
621 | wire tlu_pic_twobelow_e; // To tcl of tlu_tcl.v |
---|
622 | wire tlu_pic_wrap_e; // To tcl of tlu_tcl.v |
---|
623 | // |
---|
624 | // modified for bug 5436: Niagara 2.0 |
---|
625 | wire [`TLU_THRD_NUM-1:0] tlu_pcr_ut; // To tcl of tlu_tcl.v |
---|
626 | wire [`TLU_THRD_NUM-1:0] tlu_pcr_st; // To tcl of tlu_tcl.v |
---|
627 | // wire tlu_pcr_ut_e; // To tcl of tlu_tcl.v |
---|
628 | // wire tlu_pcr_st_e; // To tcl of tlu_tcl.v |
---|
629 | wire tlu_pic_cnt_en_m; // To tcl of tlu_tcl.v |
---|
630 | // wire [`TLU_THRD_NUM-1:0] pich_threebelow_flg; // To tcl of tlu_tcl.v |
---|
631 | // |
---|
632 | // added for hypervisor support |
---|
633 | wire [`TSA_GLOBAL_WIDTH-1:0] tlu_dnrtry_global_g; |
---|
634 | // wire tlu_htick_match; |
---|
635 | // wire tlu_stick_match; |
---|
636 | wire tlu_trap_hpstate_enb; |
---|
637 | wire [`TLU_THRD_NUM-1:0] local_hpstate_priv; |
---|
638 | wire [`TLU_THRD_NUM-1:0] tcl_hpstate_priv; |
---|
639 | wire [`TLU_THRD_NUM-1:0] local_hpstate_enb; |
---|
640 | wire [`TLU_THRD_NUM-1:0] tcl_hpstate_enb; |
---|
641 | wire [`TLU_THRD_NUM-1:0] local_pstate_priv; |
---|
642 | wire [`TLU_THRD_NUM-1:0] local_pstate_ie; |
---|
643 | |
---|
644 | wire [`TSA_GLOBAL_WIDTH-1:0] tlu_gl_lvl0; |
---|
645 | wire [`TSA_GLOBAL_WIDTH-1:0] tlu_gl_lvl1; |
---|
646 | wire [`TSA_GLOBAL_WIDTH-1:0] tlu_gl_lvl2; |
---|
647 | wire [`TSA_GLOBAL_WIDTH-1:0] tlu_gl_lvl3; |
---|
648 | // wire [`TLU_THRD_NUM-1:0] tlu_hintp_en_l_g; |
---|
649 | wire [`TLU_THRD_NUM-1:0] tlu_htba_en_l; |
---|
650 | wire [`TLU_THRD_NUM-1:0] tlu_htickcmp_en_l; |
---|
651 | // wire [`TLU_THRD_NUM-1:0] tlu_set_hintp_g; |
---|
652 | wire [`TLU_THRD_NUM-1:0] tlu_set_hintp_sel_g; |
---|
653 | wire [`TLU_THRD_NUM-1:0] tlu_stickcmp_en_l; |
---|
654 | // modified for timing |
---|
655 | // wire [`TLU_THRD_NUM-1:0] tlu_update_hpstate_l_g; |
---|
656 | wire [`TLU_THRD_NUM-1:0] tlu_update_hpstate_l_w2; |
---|
657 | wire [`TLU_THRD_NUM-1:0] tlu_wr_hintp_g; |
---|
658 | wire [`TLU_THRD_NUM-1:0] tlu_cpu_mondo_cmp; |
---|
659 | wire [`TLU_THRD_NUM-1:0] tlu_dev_mondo_cmp; |
---|
660 | wire [`TLU_THRD_NUM-1:0] tlu_resum_err_cmp; |
---|
661 | wire [`TLU_THRD_NUM-1:0] tlu_hintp; |
---|
662 | wire [1:0] tlu_hpstate_din_sel0; |
---|
663 | wire [1:0] tlu_hpstate_din_sel1; |
---|
664 | wire [1:0] tlu_hpstate_din_sel2; |
---|
665 | wire [1:0] tlu_hpstate_din_sel3; |
---|
666 | wire [4:0] tlu_hyperv_rdpr_sel; |
---|
667 | wire [2:0] tlu_rdpr_mx1_sel; |
---|
668 | wire [2:0] tlu_rdpr_mx2_sel; |
---|
669 | wire [1:0] tlu_rdpr_mx3_sel; |
---|
670 | wire [1:0] tlu_rdpr_mx4_sel; |
---|
671 | wire [2:0] tlu_rdpr_mx5_sel; |
---|
672 | wire [2:0] tlu_rdpr_mx6_sel; |
---|
673 | wire [3:0] tlu_rdpr_mx7_sel; |
---|
674 | // modified for timing |
---|
675 | // wire tlu_ibrkpt_trap_g; |
---|
676 | wire tlu_ibrkpt_trap_w2; |
---|
677 | // wire tlu_select_htba_g; |
---|
678 | // wire tlu_select_htba_w2; |
---|
679 | wire [2:0] tlu_pc_mxsel_w2; |
---|
680 | // wire tlu_stickcmp_intdis; |
---|
681 | wire tlu_htickcmp_intdis; |
---|
682 | // wire tlu_gl_rw_g; |
---|
683 | wire tlu_gl_rw_m; |
---|
684 | wire [`TLU_THRD_NUM-1:0] tlu_por_rstint_g; |
---|
685 | // modified due to timing |
---|
686 | // wire tlu_thrd0_traps, tlu_thrd1_traps; |
---|
687 | // wire tlu_thrd2_traps, tlu_thrd3_traps; |
---|
688 | wire [`TLU_THRD_NUM-1:0] tlu_thrd_traps_w2; |
---|
689 | wire tlu_dnrtry0_inst_g, tlu_dnrtry1_inst_g; |
---|
690 | wire tlu_dnrtry2_inst_g, tlu_dnrtry3_inst_g; |
---|
691 | wire tlu_scpd_rd_vld_m; // tlu_scpd_rd_vld_g; |
---|
692 | wire tlu_scpd_wr_vld_g; |
---|
693 | wire tlu_hscpd_dacc_excpt_m; |
---|
694 | wire tlu_qtail_dacc_excpt_m; |
---|
695 | wire [`SCPD_RW_ADDR_WIDTH-1:0] tlu_scpd_rd_addr_m; |
---|
696 | wire [`SCPD_RW_ADDR_WIDTH-1:0] tlu_scpd_wr_addr_g; |
---|
697 | wire [79:0] tlu_scpd_asi_rdata_g; |
---|
698 | // |
---|
699 | // added for the change of hierarchy to promote sparc_tlu_intdp and |
---|
700 | // sparc_tlu_intctl onto the tlu level |
---|
701 | // wire inc_ind_asi_inrr; // From intctl of sparc_tlu_intctl.v |
---|
702 | wire [3:0] tlu_asi_rdata_mxsel_g; // From intctl of sparc_tlu_intctl.v |
---|
703 | wire [3:0] inc_ind_asi_rd_invr; // From intctl of sparc_tlu_intctl.v |
---|
704 | // wire [3:0] inc_ind_asi_thr; // From intctl of sparc_tlu_intctl.v |
---|
705 | wire [3:0] tlu_local_thrid_g; // From intctl of sparc_tlu_intctl.v |
---|
706 | wire [3:0] inc_ind_asi_wr_indr; // From intctl of sparc_tlu_intctl.v |
---|
707 | wire [3:0] inc_ind_asi_wr_inrr; // From intctl of sparc_tlu_intctl.v |
---|
708 | wire [3:0] inc_ind_indr_grant; // From intctl of sparc_tlu_intctl.v |
---|
709 | wire [3:0] inc_ind_ld_int_i1; // From intctl of sparc_tlu_intctl.v |
---|
710 | wire [3:0] inc_ind_rstthr_i1; // From intctl of sparc_tlu_intctl.v |
---|
711 | wire [3:0] inc_ind_thr_m; // From intctl of sparc_tlu_intctl.v |
---|
712 | wire [1:0] inc_indr_req_thrid; // From intctl of sparc_tlu_intctl.v |
---|
713 | wire inc_indr_req_valid; // From intctl of sparc_tlu_intctl.v |
---|
714 | wire [4:0] ind_inc_thrid_i1; // From intdp of sparc_tlu_intdp.v |
---|
715 | wire [1:0] ind_inc_type_i1; // From intdp of sparc_tlu_intdp.v |
---|
716 | // wire indr_inc_rst_pkt; // From intdp of sparc_tlu_intdp.v |
---|
717 | wire [3:0] int_pending_i2_l; // From intdp of sparc_tlu_intdp.v |
---|
718 | // hypervisor lite indicator |
---|
719 | // wire [`TLU_THRD_NUM-1:0] tlu_hyper_lite; |
---|
720 | |
---|
721 | wire [12:0] tlu_tag_access_ctxt_g ; |
---|
722 | wire tlu_lng_ltncy_en_l ; |
---|
723 | wire tlu_tsb_rd_ps0_sel ; |
---|
724 | wire [47:13] tlu_tsb_base_w2_d1 ; |
---|
725 | |
---|
726 | // scan chain wires |
---|
727 | wire scan1_1; |
---|
728 | wire scan1_2; |
---|
729 | wire scan1_3; |
---|
730 | wire scan0_1; |
---|
731 | wire short_scan0_1; |
---|
732 | wire short_scan0_2; |
---|
733 | wire short_scan0_3; |
---|
734 | wire short_scan0_4; |
---|
735 | wire short_scan0_5; |
---|
736 | wire short_scan0_6; |
---|
737 | //===================================================================================== |
---|
738 | // DUMMY WIRES FOR VLINT. TO BE FILTERED OUT. |
---|
739 | wire [9:0] dummy_mra_rdata; |
---|
740 | |
---|
741 | //===================================================================================== |
---|
742 | |
---|
743 | |
---|
744 | /* |
---|
745 | sparc_tlu_int AUTO_TEMPLATE ( |
---|
746 | .tlu_int_asi_state(lsu_asi_state[`TLU_ASI_STATE_WIDTH-1:0]), |
---|
747 | .lsu_tlu_pmode (1'b1), |
---|
748 | |
---|
749 | .int_tlu_longop_done()); |
---|
750 | */ |
---|
751 | // |
---|
752 | // modified the hierarchy to bring sparc_tlu_intdp and sparc_tlu_intctl |
---|
753 | // to the tlu level - eliminating sparc_tlu_int |
---|
754 | /* |
---|
755 | sparc_tlu_int tlu_int ( |
---|
756 | .tlu_int_asi_state(lsu_asi_state[`TLU_ASI_STATE_WIDTH-1:0]), |
---|
757 | .lsu_tlu_pmode (1'b1), // enable partition mode |
---|
758 | |
---|
759 | .int_tlu_longop_done(), // use to switch in thread |
---|
760 | // .tlu_int_asi_store(tlu_int_asi_store), |
---|
761 | // Outputs |
---|
762 | .int_scpd_asi_data(int_scpd_asi_data[63:0]), |
---|
763 | .int_scpd_asi_data_vld(int_scpd_asi_data_vld), |
---|
764 | .int_tlu_rstid_m (int_tlu_rstid_m[5:0]), |
---|
765 | .so (so), |
---|
766 | .tlu_ifu_hwint_i3(tlu_ifu_hwint_i3[3:0]), |
---|
767 | // .tlu_ifu_int_activate_i3(tlu_ifu_int_activate_i3[3:0]), |
---|
768 | .tlu_ifu_nukeint_i2(tlu_ifu_nukeint_i2), |
---|
769 | .tlu_ifu_pstate_ie(tlu_ifu_pstate_ie[3:0]), |
---|
770 | .tlu_ifu_resumint_i2(tlu_ifu_resumint_i2), |
---|
771 | .tlu_ifu_rstint_i2(tlu_ifu_rstint_i2), |
---|
772 | .tlu_ifu_rstthr_i2(tlu_ifu_rstthr_i2[3:0]), |
---|
773 | .tlu_lsu_pcxpkt (tlu_lsu_pcxpkt[25:0]), |
---|
774 | // Inputs |
---|
775 | .lsu_tlu_st_rs3_data_g(lsu_tlu_rs3_data_g[63:0]), |
---|
776 | .clk (rclk), |
---|
777 | .const_cpuid (const_cpuid[3:0]), |
---|
778 | .lsu_tlu_cpx_req (lsu_tlu_cpx_req[3:0]), |
---|
779 | .lsu_tlu_cpx_vld (lsu_tlu_cpx_vld), |
---|
780 | .lsu_tlu_intpkt (lsu_tlu_intpkt[17:0]), |
---|
781 | .lsu_tlu_pcxpkt_ack(lsu_tlu_pcxpkt_ack), |
---|
782 | .tlu_rst_l (tlu_rst_l), |
---|
783 | .se (se), |
---|
784 | .si (si), |
---|
785 | .tlu_int_asi_load(tlu_int_asi_load), |
---|
786 | .tlu_int_asi_thrid(tlu_int_asi_thrid[1:0]), |
---|
787 | .tlu_int_asi_vld (tlu_int_asi_vld), |
---|
788 | .tlu_int_pstate_ie(tlu_int_pstate_ie[3:0]), |
---|
789 | .tlu_int_redmode (tlu_int_redmode[3:0]), |
---|
790 | .tlu_int_sftint_pend(tlu_int_sftint_pend[3:0]), |
---|
791 | .tlu_int_tid_m (tlu_int_tid_m[1:0])); |
---|
792 | */ |
---|
793 | sparc_tlu_intdp intdp( |
---|
794 | .lsu_ind_intpkt_id(lsu_tlu_intpkt[`INT_VEC_HI:`INT_VEC_LO]), |
---|
795 | .lsu_ind_intpkt_type(lsu_tlu_intpkt[`INT_TYPE_HI:`INT_TYPE_LO]), |
---|
796 | .lsu_ind_intpkt_thr(lsu_tlu_intpkt[`INT_THR_HI:`INT_THR_LO]), |
---|
797 | .so (scan1_1), |
---|
798 | .si (si1), |
---|
799 | /*AUTOINST*/ |
---|
800 | // Outputs |
---|
801 | .int_pending_i2_l(int_pending_i2_l[3:0]), |
---|
802 | .ind_inc_thrid_i1(ind_inc_thrid_i1[4:0]), |
---|
803 | .ind_inc_type_i1(ind_inc_type_i1[1:0]), |
---|
804 | .int_tlu_rstid_m(int_tlu_rstid_m[5:0]), |
---|
805 | .tlu_lsu_pcxpkt(tlu_lsu_pcxpkt[25:0]), |
---|
806 | .tlu_lsu_int_ldxa_data_w2(tlu_lsu_int_ldxa_data_w2[63:0]), |
---|
807 | // Inputs |
---|
808 | .rclk (rclk), |
---|
809 | .se (se), |
---|
810 | .tlu_rst_l(int_rst_l), |
---|
811 | .lsu_tlu_st_rs3_data_g(lsu_tlu_rs3_data_g[63:0]), |
---|
812 | .tlu_asi_rdata_mxsel_g(tlu_asi_rdata_mxsel_g[3:0]), |
---|
813 | .tlu_scpd_asi_rdata_g(tlu_scpd_asi_rdata_g[`TLU_SCPD_DATA_WIDTH-1:0]), |
---|
814 | .tlu_asi_queue_rdata_g(tlu_asi_queue_rdata_g[`TLU_ASI_QUE_WIDTH-1:0]), |
---|
815 | .inc_ind_ld_int_i1(inc_ind_ld_int_i1[3:0]), |
---|
816 | .inc_ind_rstthr_i1(inc_ind_rstthr_i1[3:0]), |
---|
817 | .inc_ind_asi_thr(tlu_local_thrid_g[`TLU_THRD_NUM-1:0]), |
---|
818 | .inc_ind_asi_wr_indr(inc_ind_asi_wr_indr[3:0]), |
---|
819 | .inc_ind_indr_grant(inc_ind_indr_grant[3:0]), |
---|
820 | .inc_ind_thr_m(inc_ind_thr_m[3:0]), |
---|
821 | .inc_ind_asi_wr_inrr(inc_ind_asi_wr_inrr[3:0]), |
---|
822 | .inc_ind_asi_rd_invr(inc_ind_asi_rd_invr[3:0]), |
---|
823 | .inc_indr_req_valid(inc_indr_req_valid), |
---|
824 | .inc_indr_req_thrid(inc_indr_req_thrid[1:0])); |
---|
825 | |
---|
826 | sparc_tlu_intctl intctl( |
---|
827 | .so (scan0_1), |
---|
828 | .si (si0), |
---|
829 | .tlu_int_asi_store(tlu_asi_write_g), |
---|
830 | /*AUTOINST*/ |
---|
831 | // Outputs |
---|
832 | .tlu_ifu_hwint_i3(tlu_ifu_hwint_i3[3:0]), |
---|
833 | .tlu_ifu_rstthr_i2(tlu_ifu_rstthr_i2[3:0]), |
---|
834 | .tlu_ifu_rstint_i2(tlu_ifu_rstint_i2), |
---|
835 | .tlu_ifu_nukeint_i2(tlu_ifu_nukeint_i2), |
---|
836 | .tlu_ifu_resumint_i2(tlu_ifu_resumint_i2), |
---|
837 | .tlu_ifu_pstate_ie(tlu_ifu_pstate_ie[3:0]), |
---|
838 | .int_tlu_longop_done(), |
---|
839 | .inc_ind_ld_int_i1(inc_ind_ld_int_i1[3:0]), |
---|
840 | .inc_ind_rstthr_i1(inc_ind_rstthr_i1[3:0]), |
---|
841 | .inc_ind_indr_grant(inc_ind_indr_grant[3:0]), |
---|
842 | .inc_ind_thr_m(inc_ind_thr_m[3:0]), |
---|
843 | .inc_indr_req_valid(inc_indr_req_valid), |
---|
844 | .inc_indr_req_thrid(inc_indr_req_thrid[1:0]), |
---|
845 | .tlu_asi_data_nf_vld_w2(tlu_asi_data_nf_vld_w2), |
---|
846 | .tlu_lsu_int_ld_ill_va_w2(tlu_lsu_int_ld_ill_va_w2), |
---|
847 | .tlu_asi_rdata_mxsel_g(tlu_asi_rdata_mxsel_g[3:0]), |
---|
848 | .int_rst_l (int_rst_l), |
---|
849 | // Inputs |
---|
850 | .rclk (rclk), |
---|
851 | .se (se), |
---|
852 | .sehold (sehold), |
---|
853 | .grst_l (grst_l), |
---|
854 | .arst_l (arst_l), |
---|
855 | .rst_tri_en (mux_drive_disable), |
---|
856 | .const_cpuid(const_cpuid[3:0]), |
---|
857 | .lsu_tlu_cpx_vld(lsu_tlu_cpx_vld), |
---|
858 | .lsu_tlu_cpx_req(lsu_tlu_cpx_req[3:0]), |
---|
859 | .lsu_tlu_pcxpkt_ack(lsu_tlu_pcxpkt_ack), |
---|
860 | .ind_inc_thrid_i1(ind_inc_thrid_i1[4:0]), |
---|
861 | .ind_inc_type_i1(ind_inc_type_i1[1:0]), |
---|
862 | .tlu_int_asi_vld(tlu_int_asi_vld), |
---|
863 | .tlu_int_asi_load(tlu_int_asi_load), |
---|
864 | .tlu_int_asi_thrid(tlu_int_asi_thrid[1:0]), |
---|
865 | .tlu_int_asi_state(lsu_asi_state[7:0]), |
---|
866 | .tlu_int_tid_m(tlu_int_tid_m[1:0]), |
---|
867 | .tlu_int_pstate_ie(tlu_int_pstate_ie[3:0]), |
---|
868 | .tlu_asi_queue_rd_vld_g(tlu_asi_queue_rd_vld_g), |
---|
869 | .tlu_ld_data_vld_g(tlu_ld_data_vld_g), |
---|
870 | .tlu_va_ill_g(tlu_va_ill_g), |
---|
871 | .int_pending_i2_l(int_pending_i2_l[3:0])); |
---|
872 | |
---|
873 | tlu_misctl misctl ( |
---|
874 | // output |
---|
875 | .tlu_exu_pic_onebelow_m (tlu_exu_pic_onebelow_m), |
---|
876 | .tlu_exu_pic_twobelow_m (tlu_exu_pic_twobelow_m), |
---|
877 | .tlu_exu_cwp_m (tlu_exu_cwp_m[`TSA_CWP_WIDTH-1:0]), |
---|
878 | .tlu_exu_ccr_m (tlu_exu_ccr_m[`TSA_CCR_WIDTH-1:0]), |
---|
879 | .tlu_lsu_asi_m (tlu_lsu_asi_m[`TLU_ASI_STATE_WIDTH-1:0]), |
---|
880 | .tlu_cwp_no_change_m (tlu_cwp_no_change_m), |
---|
881 | .tlu_sscan_misctl_data (tlu_sscan_test_data[`MISCTL_SSCAN_HI:`MISCTL_SSCAN_LO]), |
---|
882 | .tlu_ifu_trappc_w2 (tlu_ifu_trappc_w2[48:0]), |
---|
883 | .tlu_ifu_trapnpc_w2 (tlu_ifu_trapnpc_w2[48:0]), |
---|
884 | .tlu_pc_new_w (tlu_pc_new_w[48:0]), |
---|
885 | .tlu_npc_new_w (tlu_npc_new_w[48:0]), |
---|
886 | .so (short_so0), |
---|
887 | // inputs |
---|
888 | .ctu_sscan_tid (ctu_sscan_tid[`TLU_THRD_NUM-1:0]), |
---|
889 | .ifu_tlu_pc_m (ifu_tlu_pc_m[48:0]), |
---|
890 | // .ifu_tlu_npc_m (ifu_tlu_npc_m[48:0]), |
---|
891 | .ifu_npc_w (ifu_npc_w[48:0]), |
---|
892 | .exu_tlu_cwp0 (exu_tlu_cwp0[`TSA_CWP_WIDTH-1:0]), |
---|
893 | .exu_tlu_cwp1 (exu_tlu_cwp1[`TSA_CWP_WIDTH-1:0]), |
---|
894 | .exu_tlu_cwp2 (exu_tlu_cwp2[`TSA_CWP_WIDTH-1:0]), |
---|
895 | .exu_tlu_cwp3 (exu_tlu_cwp3[`TSA_CWP_WIDTH-1:0]), |
---|
896 | .tlu_partial_trap_pc_w1 (tlu_partial_trap_pc_w1[33:0]), |
---|
897 | .tlu_restore_pc_w1 (tlu_restore_pc_w1[48:0]), |
---|
898 | .tlu_restore_npc_w1 (tlu_restore_npc_w1[48:0]), |
---|
899 | .tlu_final_ttype_w2 (tlu_final_ttype_w2[`TSA_TTYPE_WIDTH-1:0]), |
---|
900 | .tlu_final_offset_w1 (tlu_final_offset_w1[`TSA_TTYPE_WIDTH-1:0]), |
---|
901 | .tlu_restore_pc_sel_w1 (tlu_restore_pc_sel_w1), |
---|
902 | // .tlu_retry_inst_m (tlu_retry_inst_m), |
---|
903 | // .tlu_done_inst_m (tlu_done_inst_m), |
---|
904 | // .tlu_dnrtry_inst_m_l (tlu_dnrtry_inst_m_l), |
---|
905 | .tlu_true_pc_sel_w (tlu_true_pc_sel_w[2:0]), |
---|
906 | .tsa_wr_tid (tsa_wr_tid[1:0]), |
---|
907 | .tsa1_wr_vld (tsa_wr_vld[1]), |
---|
908 | .tsa_ttype_en (tsa_ttype_en), |
---|
909 | .tsa_rd_vld_e (tsa_rd_vld_e), |
---|
910 | // .tsa_rd_vld (tsa_rd_vld), |
---|
911 | .tsa0_rdata_cwp (tsa0_dout[`TSA0_MEM_CWP_HI:`TSA0_MEM_CWP_LO]), |
---|
912 | .tsa0_rdata_pstate (tsa0_dout[`TSA0_MEM_PSTATE_HI:`TSA0_MEM_PSTATE_LO]), |
---|
913 | .tsa0_rdata_asi (tsa0_dout[`TSA0_MEM_ASI_HI:`TSA0_MEM_ASI_LO]), |
---|
914 | .tsa0_rdata_ccr (tsa0_dout[`TSA0_MEM_CCR_HI:`TSA0_MEM_CCR_LO]), |
---|
915 | .tsa0_rdata_gl (tsa0_dout[`TSA0_MEM_GL_HI:`TSA0_MEM_GL_LO]), |
---|
916 | .tsa0_rdata_pc (tsa0_dout[`TSA0_TPC_HI:`TSA0_TPC_LO]), |
---|
917 | .tsa1_rdata_ttype (tsa1_dout[`TSA1_TTYPE_HI:`TSA1_TTYPE_LO]), |
---|
918 | .tsa1_rdata_npc (tsa1_dout[`TSA1_TNPC_HI:`TSA1_TNPC_LO]), |
---|
919 | .tsa1_rdata_htstate (tsa1_dout[`TSA1_HTSTATE_HI:`TSA1_HTSTATE_LO]), |
---|
920 | .tlu_thrd_rsel_e (tlu_thrd_rsel_e[`TLU_THRD_NUM-1:0]), |
---|
921 | // experiement |
---|
922 | .tlu_pic_onebelow_e (tlu_pic_onebelow_e), |
---|
923 | .tlu_pic_twobelow_e (tlu_pic_twobelow_e), |
---|
924 | .tlu_pic_cnt_en_m (tlu_pic_cnt_en_m), |
---|
925 | // .pich_onebelow_flg (pich_onebelow_flg[`TLU_THRD_NUM-1:0]), |
---|
926 | // .pich_twobelow_flg (pich_twobelow_flg[`TLU_THRD_NUM-1:0]), |
---|
927 | // .pich_threebelow_flg (pich_threebelow_flg[`TLU_THRD_NUM-1:0]), |
---|
928 | // .tlu_thread_inst_vld_w2 (tlu_thread_inst_vld_w2[`TLU_THRD_NUM-1:0]), |
---|
929 | // |
---|
930 | .tlu_rst (tlu_rst), |
---|
931 | .se (se), |
---|
932 | .si (short_scan0_6), |
---|
933 | .rclk (rclk)); |
---|
934 | |
---|
935 | tlu_tcl tcl ( |
---|
936 | .so (short_so1), |
---|
937 | .si (short_si1), |
---|
938 | .tlu_wsr_data_b63_w (tlu_wsr_data_w[`TLU_ASR_DATA_WIDTH-1]), |
---|
939 | .tlu_itag_acc_sel_g (tlu_itag_acc_sel_g), |
---|
940 | .pib_priv_act_trap_m (pib_priv_act_trap_m[3:0]), |
---|
941 | .spu_tlu_rsrv_illgl_m (spu_tlu_rsrv_illgl_m), |
---|
942 | .tlu_cpu_mondo_cmp (tlu_cpu_mondo_cmp[`TLU_THRD_NUM-1:0]), |
---|
943 | .tlu_dev_mondo_cmp (tlu_dev_mondo_cmp[`TLU_THRD_NUM-1:0]), |
---|
944 | .tlu_resum_err_cmp (tlu_resum_err_cmp[`TLU_THRD_NUM-1:0]), |
---|
945 | .tlu_hintp (tlu_hintp), |
---|
946 | .pich_wrap_flg (pich_wrap_flg[`TLU_THRD_NUM-1:0]), |
---|
947 | .pich_onebelow_flg (pich_onebelow_flg[`TLU_THRD_NUM-1:0]), |
---|
948 | .pich_twobelow_flg (pich_twobelow_flg[`TLU_THRD_NUM-1:0]), |
---|
949 | // modified for bug 5436: Niagara 2.0 |
---|
950 | .tlu_pcr_ut (tlu_pcr_ut[`TLU_THRD_NUM-1:0]), |
---|
951 | .tlu_pcr_st (tlu_pcr_st[`TLU_THRD_NUM-1:0]), |
---|
952 | // .tlu_pcr_ut_e (tlu_pcr_ut_e), |
---|
953 | // .tlu_pcr_st_e (tlu_pcr_st_e), |
---|
954 | .tlu_pic_cnt_en_m (tlu_pic_cnt_en_m), |
---|
955 | .tlu_pic_wrap_e (tlu_pic_wrap_e), |
---|
956 | // .pich_threebelow_flg (pich_threebelow_flg[`TLU_THRD_NUM-1:0]), |
---|
957 | .pib_picl_wrap (pib_picl_wrap[`TLU_THRD_NUM-1:0]), |
---|
958 | .tlu_local_flush_w (tlu_local_flush_w), |
---|
959 | .tlu_restore_pc_sel_w1 (tlu_restore_pc_sel_w1), |
---|
960 | .tlu_final_offset_w1 (tlu_final_offset_w1[`TSA_TTYPE_WIDTH-1:0]), |
---|
961 | // Outputs |
---|
962 | .pib_pich_wrap (pib_pich_wrap[`TLU_THRD_NUM-1:0]), |
---|
963 | .tlu_ibrkpt_trap_w2 (tlu_ibrkpt_trap_w2), |
---|
964 | .tlu_early_flush_pipe_w (tlu_early_flush_pipe_w), |
---|
965 | .tlu_early_flush_pipe2_w (tlu_early_flush_pipe2_w), |
---|
966 | .tlu_exu_early_flush_pipe_w (tlu_exu_early_flush_pipe_w), |
---|
967 | .tlu_ifu_trappc_vld_w1 (tlu_ifu_trappc_vld_w1), |
---|
968 | .tlu_ifu_trapnpc_vld_w1 (tlu_ifu_trapnpc_vld_w1), |
---|
969 | .tlu_ifu_trap_tid_w1 (tlu_ifu_trap_tid_w1[1:0]), |
---|
970 | .tlu_trap_hpstate_enb (tlu_trap_hpstate_enb), |
---|
971 | .tlu_exu_priv_trap_m (tlu_exu_priv_trap_m), |
---|
972 | .tlu_lsu_priv_trap_m (tlu_lsu_priv_trap_m), |
---|
973 | // .tlu_lsu_priv_trap_w (tlu_lsu_priv_trap_w), |
---|
974 | // .tlu_exu_pic_onebelow_m (tlu_exu_pic_onebelow_m), |
---|
975 | // .tlu_exu_pic_twobelow_m (tlu_exu_pic_twobelow_m), |
---|
976 | .tsa_wr_tpl (tsa_wr_tpl[2:0]), |
---|
977 | .tsa_rd_tid (tsa_rd_tid[1:0]), |
---|
978 | .tsa_rd_tpl (tsa_rd_tpl[2:0]), |
---|
979 | .tsa_wr_tid (tsa_wr_tid[1:0]), |
---|
980 | .tsa_wr_vld (tsa_wr_vld[1:0]), |
---|
981 | .tsa_rd_vld_e (tsa_rd_vld_e), |
---|
982 | .tsa_rd_en (tsa_rd_en), |
---|
983 | .tlu_lsu_tl_zero (tlu_lsu_tl_zero[3:0]), |
---|
984 | .tlu_full_flush_pipe_w2 (tlu_full_flush_pipe_w2), |
---|
985 | .tlu_exu_agp_tid (tlu_exu_agp_tid[1:0]), |
---|
986 | .tlu_agp_tid_w2 (tlu_agp_tid_w2[1:0]), |
---|
987 | .tlu_tcc_inst_w (tlu_tcc_inst_w), |
---|
988 | .tsa_pc_en (tsa_pc_en), |
---|
989 | .tsa_npc_en (tsa_npc_en), |
---|
990 | .tsa_tstate_en (tsa_tstate_en), |
---|
991 | .tsa_ttype_en (tsa_ttype_en), |
---|
992 | .tsa_htstate_en (tsa_htstate_en), |
---|
993 | .tlu_tl_gt_0_w2 (tlu_tl_gt_0_w2), |
---|
994 | // .tlu_retry_inst_m (tlu_retry_inst_m), |
---|
995 | // .tlu_done_inst_m (tlu_done_inst_m), |
---|
996 | // .tlu_dnrtry_inst_m_l (tlu_dnrtry_inst_m_l), |
---|
997 | .tlu_true_pc_sel_w (tlu_true_pc_sel_w[2:0]), |
---|
998 | .tlu_tick_en_l (tlu_tick_en_l), |
---|
999 | .tlu_tickcmp_en_l (tlu_tickcmp_en_l[`TLU_THRD_NUM-1:0]), |
---|
1000 | .tlu_tba_en_l (tlu_tba_en_l[`TLU_THRD_NUM-1:0]), |
---|
1001 | .tlu_thrd_wsel_w2 (tlu_thrd_wsel_w2[`TLU_THRD_NUM-1:0]), |
---|
1002 | .tlu_thread_wsel_g (tlu_thread_wsel_g[`TLU_THRD_NUM-1:0]), |
---|
1003 | .tlu_final_ttype_w2 (tlu_final_ttype_w2[`TSA_TTYPE_WIDTH-1:0]), |
---|
1004 | .tlu_thread_inst_vld_g (tlu_thread_inst_vld_g[`TLU_THRD_NUM-1:0]), |
---|
1005 | // .tlu_thread_inst_vld_w2 (tlu_thread_inst_vld_w2[`TLU_THRD_NUM-1:0]), |
---|
1006 | .tlu_update_pc_l_w (tlu_update_pc_l_w[`TLU_THRD_NUM-1:0]), |
---|
1007 | .tlu_select_redmode (tlu_select_redmode), |
---|
1008 | .tlu_pstate_din_sel0 (tlu_pstate_din_sel0[1:0]), |
---|
1009 | .tlu_pstate_din_sel1 (tlu_pstate_din_sel1[1:0]), |
---|
1010 | .tlu_pstate_din_sel2 (tlu_pstate_din_sel2[1:0]), |
---|
1011 | .tlu_pstate_din_sel3 (tlu_pstate_din_sel3[1:0]), |
---|
1012 | .tlu_update_pstate_l_w2 (tlu_update_pstate_l_w2[3:0]), |
---|
1013 | .tlu_trp_lvl (tlu_trp_lvl[2:0]), |
---|
1014 | .tlu_pil (tlu_pil[3:0]), |
---|
1015 | .tlu_wsr_inst_nq_g (tlu_wsr_inst_nq_g), |
---|
1016 | .tlu_wr_tsa_inst_w2 (tlu_wr_tsa_inst_w2), |
---|
1017 | .tlu_exu_cwp_retry_m (tlu_exu_cwp_retry_m), |
---|
1018 | .tlu_exu_cwpccr_update_m (tlu_exu_cwpccr_update_m), |
---|
1019 | .tlu_lsu_asi_update_m (tlu_lsu_asi_update_m), |
---|
1020 | .tlu_lsu_tid_m (tlu_lsu_tid_m[1:0]), |
---|
1021 | .tlu_select_tba_w2 (tlu_select_tba_w2), |
---|
1022 | .tdp_select_tba_w2 (tdp_select_tba_w2), |
---|
1023 | .tlu_set_sftint_l_g (tlu_set_sftint_l_g), |
---|
1024 | .tlu_clr_sftint_l_g (tlu_clr_sftint_l_g), |
---|
1025 | .tlu_wr_sftint_l_g (tlu_wr_sftint_l_g), |
---|
1026 | .tlu_sftint_en_l_g (tlu_sftint_en_l_g[`TLU_THRD_NUM-1:0]), |
---|
1027 | .tlu_sftint_mx_sel (tlu_sftint_mx_sel[`TLU_THRD_NUM-1:0]), |
---|
1028 | .tlu_sftint_penc_sel (tlu_sftint_penc_sel[`TLU_THRD_NUM-1:0]), |
---|
1029 | .tlu_sftint_vld (tlu_sftint_vld[`TLU_THRD_NUM-1:0]), |
---|
1030 | .tlu_hintp_vld (tlu_hintp_vld[`TLU_THRD_NUM-1:0]), |
---|
1031 | .tlu_rerr_vld (tlu_rerr_vld[`TLU_THRD_NUM-1:0]), |
---|
1032 | .tlu_int_tid_m (tlu_int_tid_m[1:0]), |
---|
1033 | .tlu_incr_tick (tlu_incr_tick[1:0]), |
---|
1034 | .tlu_tckctr_in (tlu_tckctr_in[1:0]), |
---|
1035 | .tlu_tickcmp_sel (tlu_tickcmp_sel[`TLU_THRD_NUM-1:0]), |
---|
1036 | .immu_sfsr_trp_wr (immu_sfsr_trp_wr[3:0]), |
---|
1037 | .tlu_isfsr_din_g (tlu_isfsr_din_g[23:0]), |
---|
1038 | .tlu_tick_npt (tlu_tick_npt), |
---|
1039 | .tlu_thrd_rsel_e (tlu_thrd_rsel_e[3:0]), |
---|
1040 | .tlu_inst_vld_nq_m (tlu_inst_vld_nq_m), |
---|
1041 | .tlu_lsu_pstate_am (tlu_lsu_pstate_am[3:0]), |
---|
1042 | .tlu_hyperv_rdpr_sel (tlu_hyperv_rdpr_sel[4:0]), |
---|
1043 | .tlu_rdpr_mx1_sel (tlu_rdpr_mx1_sel[2:0]), |
---|
1044 | .tlu_rdpr_mx2_sel (tlu_rdpr_mx2_sel[2:0]), |
---|
1045 | .tlu_rdpr_mx3_sel (tlu_rdpr_mx3_sel[1:0]), |
---|
1046 | .tlu_rdpr_mx4_sel (tlu_rdpr_mx4_sel[1:0]), |
---|
1047 | .tlu_rdpr_mx5_sel (tlu_rdpr_mx5_sel[2:0]), |
---|
1048 | .tlu_rdpr_mx6_sel (tlu_rdpr_mx6_sel[2:0]), |
---|
1049 | .tlu_rdpr_mx7_sel (tlu_rdpr_mx7_sel[3:0]), |
---|
1050 | .tlu_lsu_redmode_rst_d1 (tlu_lsu_redmode_rst_d1[3:0]), |
---|
1051 | .lsu_tlu_rsr_data_mod_e (lsu_tlu_rsr_data_mod_e[7:0]), |
---|
1052 | .tlu_addr_msk_g (tlu_addr_msk_g), |
---|
1053 | .tlu_stickcmp_en_l (tlu_stickcmp_en_l[`TLU_THRD_NUM-1:0]), |
---|
1054 | .tlu_htickcmp_en_l (tlu_htickcmp_en_l[`TLU_THRD_NUM-1:0]), |
---|
1055 | .tlu_htstate_rw_d (tlu_htstate_rw_d), |
---|
1056 | .tlu_htstate_rw_g (tlu_htstate_rw_g), |
---|
1057 | .tlu_dnrtry0_inst_g (tlu_dnrtry0_inst_g), |
---|
1058 | .tlu_dnrtry1_inst_g (tlu_dnrtry1_inst_g), |
---|
1059 | .tlu_dnrtry2_inst_g (tlu_dnrtry2_inst_g), |
---|
1060 | .tlu_dnrtry3_inst_g (tlu_dnrtry3_inst_g), |
---|
1061 | .tlu_thrd_traps_w2 (tlu_thrd_traps_w2[`TLU_THRD_NUM-1:0]), |
---|
1062 | .tlu_tick_ctl_din (tlu_tick_ctl_din), |
---|
1063 | .tlu_por_rstint_g (tlu_por_rstint_g[`TLU_THRD_NUM-1:0]), |
---|
1064 | .tlu_pc_mxsel_w2 (tlu_pc_mxsel_w2), |
---|
1065 | .ifu_npc_w (ifu_npc_w[48:0]), |
---|
1066 | .tlu_rst (tlu_rst), |
---|
1067 | // .tlu_rst_l (tlu_rst_l), |
---|
1068 | .tlu_sscan_tcl_data (tlu_sscan_test_data[`TCL_SSCAN_HI:`TCL_SSCAN_LO]), |
---|
1069 | // Inputs |
---|
1070 | .ifu_tlu_npc_m (ifu_tlu_npc_m[48:0]), |
---|
1071 | .ifu_tlu_pc_oor_e (ifu_tlu_pc_oor_e), |
---|
1072 | .lsu_tlu_early_flush_w (lsu_tlu_early_flush_w), |
---|
1073 | .ifu_tlu_flush_fd_w (ifu_tlu_flush_fd2_w), |
---|
1074 | .ifu_tlu_sraddr_d (ifu_tlu_sraddr_d[`TLU_ASR_ADDR_WIDTH-1:0]), |
---|
1075 | .ifu_tlu_rsr_inst_d (ifu_tlu_rsr_inst_d), |
---|
1076 | .lsu_tlu_wsr_inst_e (lsu_tlu_wsr_inst_e), |
---|
1077 | .tlu_wsr_data_w (tlu_wsr_data_w[3:0]), |
---|
1078 | .lsu_tlu_ttype_m2 (lsu_tlu_ttype_m2[8:0]), |
---|
1079 | .lsu_tlu_ttype_vld_m2 (lsu_tlu_ttype_vld_m2), |
---|
1080 | .ifu_tlu_done_inst_d (ifu_tlu_done_inst_d), |
---|
1081 | .ifu_tlu_retry_inst_d (ifu_tlu_retry_inst_d), |
---|
1082 | .ifu_tlu_ttype_m (ifu_tlu_ttype_m[8:0]), |
---|
1083 | .ifu_tlu_ttype_vld_m (ifu_tlu_ttype_vld_m), |
---|
1084 | .ifu_tlu_trap_m (ifu_tlu_trap_m), |
---|
1085 | .exu_tlu_ttype_m (exu_tlu_ttype_m[8:0]), |
---|
1086 | .exu_tlu_ttype_vld_m (exu_tlu_ttype_vld_m), |
---|
1087 | .exu_tlu_ue_trap_m (exu_tlu_ue_trap_m), |
---|
1088 | .exu_tlu_spill (exu_tlu_spill), |
---|
1089 | .exu_tlu_spill_tid (exu_tlu_spill_tid[1:0]), |
---|
1090 | .exu_tlu_spill_other (exu_tlu_spill_other), |
---|
1091 | .exu_tlu_spill_wtype (exu_tlu_spill_wtype), |
---|
1092 | .exu_tlu_va_oor_m (exu_tlu_va_oor_m), |
---|
1093 | .exu_tlu_va_oor_jl_ret_m (exu_tlu_va_oor_jl_ret_m), |
---|
1094 | .tlu_cwp_no_change_m (tlu_cwp_no_change_m), |
---|
1095 | .tlu_trap_cwp_en (tlu_trap_cwp_en[`TLU_THRD_NUM-1:0]), |
---|
1096 | .ifu_tlu_sir_inst_m (ifu_tlu_sir_inst_m), |
---|
1097 | .ifu_tlu_inst_vld_m (ifu_tlu_inst_vld_m), |
---|
1098 | .ifu_tlu_thrid_d (ifu_tlu_thrid_d[1:0]), |
---|
1099 | .lsu_tlu_async_ttype_vld_g (lsu_tlu_async_ttype_vld_g), |
---|
1100 | .lsu_tlu_defr_trp_taken_g (lsu_tlu_defr_trp_taken_g), |
---|
1101 | .lsu_tlu_async_ttype_g (lsu_tlu_async_ttype_g), |
---|
1102 | .lsu_tlu_async_tid_g (lsu_tlu_async_tid_g[1:0]), |
---|
1103 | .ifu_tlu_immu_miss_m (ifu_tlu_immu_miss_m), |
---|
1104 | .exu_tlu_cwp_cmplt (exu_tlu_cwp_cmplt), |
---|
1105 | .exu_tlu_cwp_retry (exu_tlu_cwp_retry), |
---|
1106 | .exu_tlu_cwp_cmplt_tid (exu_tlu_cwp_cmplt_tid[1:0]), |
---|
1107 | .ifu_tlu_rstint_m (ifu_tlu_rstint_m), |
---|
1108 | .ifu_tlu_hwint_m (ifu_tlu_hwint_m), |
---|
1109 | .ifu_tlu_swint_m (ifu_tlu_swint_m), |
---|
1110 | .int_tlu_rstid_m (int_tlu_rstid_m[5:0]), |
---|
1111 | .tlu_int_pstate_ie (local_pstate_ie[3:0]), |
---|
1112 | .tlu_int_redmode (tlu_int_redmode[3:0]), |
---|
1113 | .tlu_sftint_id (tlu_sftint_id[3:0]), |
---|
1114 | .lsu_tlu_misalign_addr_ldst_atm_m(lsu_tlu_misalign_addr_ldst_atm_m), |
---|
1115 | .exu_tlu_misalign_addr_jmpl_rtn_m(exu_tlu_misalign_addr_jmpl_rtn_m), |
---|
1116 | .lsu_tlu_priv_action_g (lsu_tlu_priv_action_g), |
---|
1117 | .lsu_tlu_wtchpt_trp_g (lsu_tlu_wtchpt_trp_g), |
---|
1118 | .ifu_tlu_priv_violtn_m (ifu_tlu_priv_violtn_m), |
---|
1119 | .ifu_lsu_memref_d (ifu_lsu_memref_d), |
---|
1120 | .tlu_pstate_priv (local_pstate_priv[`TLU_THRD_NUM-1:0]), |
---|
1121 | .tlu_pstate_am (tlu_pstate_am[3:0]), |
---|
1122 | .tlu_isfsr_flt_vld (tlu_isfsr_flt_vld[3:0]), |
---|
1123 | .ffu_tlu_trap_ieee754 (ffu_tlu_trap_ieee754), |
---|
1124 | .ffu_tlu_trap_other (ffu_tlu_trap_other), |
---|
1125 | .ffu_tlu_trap_ue (ffu_tlu_trap_ue), |
---|
1126 | .ffu_ifu_tid_w2 (ffu_ifu_tid_w2[1:0]), |
---|
1127 | .ffu_tlu_ill_inst_m (ffu_tlu_ill_inst_m), // new trap from ffu |
---|
1128 | .lsu_tlu_rsr_data_e (lsu_tlu_rsr_data_e[7:0]), |
---|
1129 | .lsu_tlu_squash_va_oor_m (lsu_tlu_squash_va_oor_m), |
---|
1130 | .tlu_hpstate_priv (tcl_hpstate_priv[`TLU_THRD_NUM-1:0]), |
---|
1131 | .tlu_hscpd_dacc_excpt_m(tlu_hscpd_dacc_excpt_m), |
---|
1132 | .tlu_qtail_dacc_excpt_m(tlu_qtail_dacc_excpt_m), |
---|
1133 | .tlu_htickcmp_rw_e (tlu_htickcmp_rw_e), |
---|
1134 | // .tlu_gl_rw_g (tlu_gl_rw_g), |
---|
1135 | .tlu_gl_rw_m (tlu_gl_rw_m), |
---|
1136 | .tlu_hpstate_enb (tcl_hpstate_enb[`TLU_THRD_NUM-1:0]), |
---|
1137 | .tlu_hpstate_tlz (tlu_hpstate_tlz[`TLU_THRD_NUM-1:0]), |
---|
1138 | .ctu_sscan_tid (ctu_sscan_tid[`TLU_THRD_NUM-1:0]), |
---|
1139 | .se (se), |
---|
1140 | .rclk (rclk), |
---|
1141 | .grst_l (grst_l), |
---|
1142 | .arst_l (arst_l), |
---|
1143 | .rst_tri_en (mux_drive_disable)); |
---|
1144 | |
---|
1145 | tlu_tdp tdp ( |
---|
1146 | .so (scan1_2), |
---|
1147 | .si (scan1_1), |
---|
1148 | .tsa_rdata ({tsa1_dout[`TSA1_HTSTATE_HI:`TSA1_HTSTATE_LO], |
---|
1149 | // tsa0_dout[`TSA0_TPC_HI:`TSA0_TPC_LO], |
---|
1150 | // tsa1_dout[`TSA1_TNPC_HI:`TSA1_TNPC_LO], |
---|
1151 | tsa0_dout[`TSA0_TPC_HI-1:`TSA0_TPC_LO], |
---|
1152 | tsa1_dout[`TSA1_TNPC_HI-1:`TSA1_TNPC_LO], |
---|
1153 | tsa0_dout[`TSA0_TSTATE_HI:`TSA0_TSTATE_LO], |
---|
1154 | tsa1_dout[`TSA1_TTYPE_HI:`TSA1_TTYPE_LO]}), |
---|
1155 | .lsu_tlu_rsr_data_e (lsu_tlu_rsr_data_mod_e[7:0]), |
---|
1156 | .ifu_lsu_imm_asi_d (ifu_lsu_imm_asi_d[7:0]), |
---|
1157 | .ifu_lsu_imm_asi_vld_d (ifu_lsu_imm_asi_vld_d), |
---|
1158 | .tlu_lsu_redmode (tlu_lsu_redmode[3:0]), |
---|
1159 | .tlu_exu_rsr_data_m (tlu_exu_rsr_data_m[`TLU_ASR_DATA_WIDTH-1:0]), |
---|
1160 | /*AUTOINST*/ |
---|
1161 | // Outputs |
---|
1162 | // modified for bug 3017 |
---|
1163 | .tlu_restore_pc_w1 (tlu_restore_pc_w1[48:0]), |
---|
1164 | .tlu_restore_npc_w1 (tlu_restore_npc_w1[48:0]), |
---|
1165 | .tlu_partial_trap_pc_w1 (tlu_partial_trap_pc_w1[33:0]), |
---|
1166 | .tlu_pib_rsr_data_e (tlu_pib_rsr_data_e[63:0]), |
---|
1167 | .tlu_asi_state_e (tlu_asi_state_e[`TLU_ASI_STATE_WIDTH-1:0]), |
---|
1168 | .tsa_wdata (tsa_wdata[`TLU_TSA_WIDTH-1:0]), |
---|
1169 | .tlu_int_pstate_ie (tlu_int_pstate_ie[3:0]), |
---|
1170 | .local_pstate_ie (local_pstate_ie[3:0]), |
---|
1171 | .tlu_ifu_pstate_pef (tlu_ifu_pstate_pef[3:0]), |
---|
1172 | .tlu_lsu_pstate_cle (tlu_lsu_pstate_cle[3:0]), |
---|
1173 | .tlu_lsu_pstate_priv (tlu_lsu_pstate_priv[3:0]), |
---|
1174 | .tlu_int_redmode (tlu_int_redmode[3:0]), |
---|
1175 | .local_pstate_priv (local_pstate_priv[`TLU_THRD_NUM-1:0]), |
---|
1176 | .tlu_pstate_am (tlu_pstate_am[3:0]), |
---|
1177 | .tlu_sftint_id (tlu_sftint_id[3:0]), |
---|
1178 | .tlu_tick_incr_din (tlu_tick_incr_din[61:0]), |
---|
1179 | .tlu_sscan_test_data (tlu_sscan_test_data[`TDP_SSCAN_WIDTH-1:0]), |
---|
1180 | .tlu_dnrtry_global_g (tlu_dnrtry_global_g[`TSA_GLOBAL_WIDTH-1:0]), |
---|
1181 | .tlu_hpstate_enb (tlu_hpstate_enb[`TLU_THRD_NUM-1:0]), |
---|
1182 | .local_hpstate_enb (local_hpstate_enb[`TLU_THRD_NUM-1:0]), |
---|
1183 | .tcl_hpstate_enb (tcl_hpstate_enb[`TLU_THRD_NUM-1:0]), |
---|
1184 | .tlu_hpstate_tlz (tlu_hpstate_tlz[`TLU_THRD_NUM-1:0]), |
---|
1185 | .tlu_hpstate_priv (tlu_hpstate_priv[`TLU_THRD_NUM-1:0]), |
---|
1186 | .local_hpstate_priv (local_hpstate_priv[`TLU_THRD_NUM-1:0]), |
---|
1187 | .tcl_hpstate_priv (tcl_hpstate_priv[`TLU_THRD_NUM-1:0]), |
---|
1188 | .tlu_hpstate_ibe (tlu_hpstate_ibe[`TLU_THRD_NUM-1:0]), |
---|
1189 | .tlu_hintp (tlu_hintp), |
---|
1190 | // Inputs |
---|
1191 | .tlu_ibrkpt_trap_w2 (tlu_ibrkpt_trap_w2), |
---|
1192 | .pib_picl_wrap (pib_picl_wrap[`TLU_THRD_NUM-1:0]), |
---|
1193 | .pib_pich_wrap (pib_pich_wrap[`TLU_THRD_NUM-1:0]), |
---|
1194 | .tlu_por_rstint_g (tlu_por_rstint_g[`TLU_THRD_NUM-1:0]), |
---|
1195 | .rclk (rclk), |
---|
1196 | .tlu_rst (tlu_rst), |
---|
1197 | .tlu_trap_hpstate_enb (tlu_trap_hpstate_enb), |
---|
1198 | .tlu_thrd_wsel_w2 (tlu_thrd_wsel_w2[`TLU_THRD_NUM-1:0]), |
---|
1199 | .tlu_final_ttype_w2 (tlu_final_ttype_w2[`TSA_TTYPE_WIDTH-1:0]), |
---|
1200 | .tlu_pstate_din_sel0 (tlu_pstate_din_sel0[1:0]), |
---|
1201 | .tlu_pstate_din_sel1 (tlu_pstate_din_sel1[1:0]), |
---|
1202 | .tlu_pstate_din_sel2 (tlu_pstate_din_sel2[1:0]), |
---|
1203 | .tlu_pstate_din_sel3 (tlu_pstate_din_sel3[1:0]), |
---|
1204 | .tlu_wr_tsa_inst_w2 (tlu_wr_tsa_inst_w2), |
---|
1205 | .lsu_asi_reg0 (lsu_asi_reg0[7:0]), |
---|
1206 | .lsu_asi_reg1 (lsu_asi_reg1[7:0]), |
---|
1207 | .lsu_asi_reg2 (lsu_asi_reg2[7:0]), |
---|
1208 | .lsu_asi_reg3 (lsu_asi_reg3[7:0]), |
---|
1209 | .tlu_tickcmp_sel (tlu_tickcmp_sel[`TLU_THRD_NUM-1:0]), |
---|
1210 | .exu_tlu_ccr0_w (exu_tlu_ccr0_w[7:0]), |
---|
1211 | .exu_tlu_ccr1_w (exu_tlu_ccr1_w[7:0]), |
---|
1212 | .exu_tlu_ccr2_w (exu_tlu_ccr2_w[7:0]), |
---|
1213 | .exu_tlu_ccr3_w (exu_tlu_ccr3_w[7:0]), |
---|
1214 | .exu_tlu_cwp0 (exu_tlu_cwp0[2:0]), |
---|
1215 | .exu_tlu_cwp1 (exu_tlu_cwp1[2:0]), |
---|
1216 | .exu_tlu_cwp2 (exu_tlu_cwp2[2:0]), |
---|
1217 | .exu_tlu_cwp3 (exu_tlu_cwp3[2:0]), |
---|
1218 | .tlu_trap_cwp_en (tlu_trap_cwp_en[`TLU_THRD_NUM-1:0]), |
---|
1219 | // modified for bug 3017 |
---|
1220 | // .ifu_tlu_pc_m (ifu_tlu_pc_m[48:0]), |
---|
1221 | // .ifu_tlu_npc_m (ifu_tlu_npc_m[48:0]), |
---|
1222 | .tlu_pc_new_w (tlu_pc_new_w[48:0]), |
---|
1223 | .tlu_npc_new_w (tlu_npc_new_w[48:0]), |
---|
1224 | .tlu_sftint_en_l_g (tlu_sftint_en_l_g[`TLU_THRD_NUM-1:0]), |
---|
1225 | .tlu_sftint_mx_sel (tlu_sftint_mx_sel[`TLU_THRD_NUM-1:0]), |
---|
1226 | .tlu_set_sftint_l_g (tlu_set_sftint_l_g), |
---|
1227 | .tlu_clr_sftint_l_g (tlu_clr_sftint_l_g), |
---|
1228 | .tlu_wr_sftint_l_g (tlu_wr_sftint_l_g), |
---|
1229 | .tlu_sftint_penc_sel (tlu_sftint_penc_sel[3:0]), |
---|
1230 | .tlu_tba_en_l (tlu_tba_en_l[3:0]), |
---|
1231 | .tlu_tick_en_l (tlu_tick_en_l), |
---|
1232 | .tlu_tickcmp_en_l (tlu_tickcmp_en_l[3:0]), |
---|
1233 | // .tlu_done_inst_m (tlu_done_inst_m), |
---|
1234 | // .tlu_dnrtry_inst_m (tlu_dnrtry_inst_m), |
---|
1235 | // .tlu_dnrtry_inst_m_l (tlu_dnrtry_inst_m_l), |
---|
1236 | .tlu_update_pc_l_w (tlu_update_pc_l_w[3:0]), |
---|
1237 | .tlu_tl_gt_0_w2 (tlu_tl_gt_0_w2), |
---|
1238 | .tlu_select_tba_w2 (tdp_select_tba_w2), |
---|
1239 | .tlu_select_redmode (tlu_select_redmode), |
---|
1240 | .tlu_update_pstate_l_w2 (tlu_update_pstate_l_w2[3:0]), |
---|
1241 | .tlu_pil (tlu_pil[3:0]), |
---|
1242 | .tlu_trp_lvl (tlu_trp_lvl[2:0]), |
---|
1243 | .tlu_tick_npt (tlu_tick_npt), |
---|
1244 | .tlu_thrd_rsel_e (tlu_thrd_rsel_e[3:0]), |
---|
1245 | .tlu_tick_incr_dout (tlu_incr64_dout[60:0]), |
---|
1246 | .tlu_rdpr_mx1_sel (tlu_rdpr_mx1_sel[2:0]), |
---|
1247 | .tlu_rdpr_mx2_sel (tlu_rdpr_mx2_sel[2:0]), |
---|
1248 | .tlu_rdpr_mx3_sel (tlu_rdpr_mx3_sel[1:0]), |
---|
1249 | .tlu_rdpr_mx4_sel (tlu_rdpr_mx4_sel[1:0]), |
---|
1250 | .tlu_rdpr_mx5_sel (tlu_rdpr_mx5_sel[2:0]), |
---|
1251 | .tlu_rdpr_mx6_sel (tlu_rdpr_mx6_sel[2:0]), |
---|
1252 | .tlu_rdpr_mx7_sel (tlu_rdpr_mx7_sel[3:0]), |
---|
1253 | .ctu_sscan_tid (ctu_sscan_tid[`TLU_THRD_NUM-1:0]), |
---|
1254 | .tlu_gl_lvl0 (tlu_gl_lvl0[`TSA_GLOBAL_WIDTH-1:0]), |
---|
1255 | .tlu_gl_lvl1 (tlu_gl_lvl1[`TSA_GLOBAL_WIDTH-1:0]), |
---|
1256 | .tlu_gl_lvl2 (tlu_gl_lvl2[`TSA_GLOBAL_WIDTH-1:0]), |
---|
1257 | .tlu_gl_lvl3 (tlu_gl_lvl3[`TSA_GLOBAL_WIDTH-1:0]), |
---|
1258 | .tlu_hpstate_din_sel0 (tlu_hpstate_din_sel0[1:0]), |
---|
1259 | .tlu_hpstate_din_sel1 (tlu_hpstate_din_sel1[1:0]), |
---|
1260 | .tlu_hpstate_din_sel2 (tlu_hpstate_din_sel2[1:0]), |
---|
1261 | .tlu_hpstate_din_sel3 (tlu_hpstate_din_sel3[1:0]), |
---|
1262 | .tlu_htba_en_l (tlu_htba_en_l[`TLU_THRD_NUM-1:0]), |
---|
1263 | .tlu_htickcmp_en_l (tlu_htickcmp_en_l[`TLU_THRD_NUM-1:0]), |
---|
1264 | .tlu_htickcmp_intdis (tlu_htickcmp_intdis), |
---|
1265 | .tlu_pc_mxsel_w2 (tlu_pc_mxsel_w2), |
---|
1266 | .tlu_set_hintp_sel_g (tlu_set_hintp_sel_g[`TLU_THRD_NUM-1:0]), |
---|
1267 | .tlu_stickcmp_en_l (tlu_stickcmp_en_l[`TLU_THRD_NUM-1:0]), |
---|
1268 | .tlu_update_hpstate_l_w2 (tlu_update_hpstate_l_w2[`TLU_THRD_NUM-1:0]), |
---|
1269 | .tlu_wr_hintp_g (tlu_wr_hintp_g[`TLU_THRD_NUM-1:0]), |
---|
1270 | .tlu_wsr_data_w (tlu_wsr_data_w[`TLU_ASR_DATA_WIDTH-1:0]), |
---|
1271 | .se (se)); |
---|
1272 | |
---|
1273 | // modified for Niagara SRAMs methodology |
---|
1274 | |
---|
1275 | bw_r_rf32x80 tsa0 ( |
---|
1276 | // Outputs |
---|
1277 | .dout (tsa0_dout[`TSA_MEM_WIDTH-1:0]), |
---|
1278 | .so (short_scan0_1), |
---|
1279 | // Inputs |
---|
1280 | .wr_adr ({tsa_wr_tid[1:0],tsa_wr_tpl[2:0]}), |
---|
1281 | .wr_en (tsa_wr_vld[0]), |
---|
1282 | .nib_wr_en ({{12{tsa_pc_en}}, |
---|
1283 | { 8{tsa_tstate_en}}}), |
---|
1284 | .rd_adr ({tsa_rd_tid[1:0],tsa_rd_tpl[2:0]}), |
---|
1285 | .rd_en (tsa_rd_en), |
---|
1286 | .din ({1'b0, tsa_wdata[`TLU_PC_HI:`TLU_PC_LO], |
---|
1287 | 3'b0, tsa_wdata[`TLU_GL_HI:`TLU_CWP_LO]}), |
---|
1288 | .reset_l (arst_l), |
---|
1289 | .rst_tri_en (mem_write_disable), |
---|
1290 | .sehold (sehold), |
---|
1291 | .se (se), |
---|
1292 | .si (short_si0), |
---|
1293 | .rclk (rclk)); |
---|
1294 | |
---|
1295 | bw_r_rf32x80 tsa1 ( |
---|
1296 | // Outputs |
---|
1297 | .dout (tsa1_dout[`TSA_MEM_WIDTH-1:0]), |
---|
1298 | .so (short_scan0_2), |
---|
1299 | // Inputs |
---|
1300 | .wr_adr ({tsa_wr_tid[1:0],tsa_wr_tpl[2:0]}), |
---|
1301 | .wr_en (tsa_wr_vld[1]), |
---|
1302 | .nib_wr_en ({ 4'h0, // unused |
---|
1303 | { 1{tsa_htstate_en}}, |
---|
1304 | {12{tsa_npc_en}}, |
---|
1305 | { 3{tsa_ttype_en}}}), |
---|
1306 | .rd_adr ({tsa_rd_tid[1:0],tsa_rd_tpl[2:0]}), |
---|
1307 | .rd_en (tsa_rd_en), |
---|
1308 | .din ({16'h0000, // unused bits |
---|
1309 | tsa_wdata[`TLU_HTSTATE_HI:`TLU_HTSTATE_LO], |
---|
1310 | 1'b0, tsa_wdata[`TLU_NPC_HI:`TLU_NPC_LO], |
---|
1311 | 3'b0, tsa_wdata[`TLU_TT_HI:`TLU_TT_LO]}), |
---|
1312 | .reset_l (arst_l), |
---|
1313 | .rst_tri_en (mem_write_disable), |
---|
1314 | .sehold (sehold), |
---|
1315 | .se (se), |
---|
1316 | .si (short_scan0_1), |
---|
1317 | .rclk (rclk)); |
---|
1318 | |
---|
1319 | // replaced with softmacro from the library |
---|
1320 | tlu_incr64 tick_incr64 ( |
---|
1321 | .out ({tlu_incr64_dout[61:0], tlu_tckctr_in[1:0]}), |
---|
1322 | .in ({tlu_tick_incr_din[61:0], tlu_incr_tick[1:0]}) |
---|
1323 | ); |
---|
1324 | /* |
---|
1325 | zzinc64 tick_incr64 ( |
---|
1326 | .out ({tlu_incr64_dout[61:0], tlu_tckctr_in[1:0]}), |
---|
1327 | .in ({tlu_tick_incr_din[61:0], tlu_incr_tick[1:0]}) |
---|
1328 | ); |
---|
1329 | */ |
---|
1330 | |
---|
1331 | tlu_mmu_ctl mmu_ctl ( |
---|
1332 | .so (so0), |
---|
1333 | .si(scan0_1), |
---|
1334 | .lsu_tlu_st_rs3_data_b12t0_g(lsu_tlu_st_rs3_data_g[12:0]), |
---|
1335 | .lsu_tlu_st_rs3_data_b48_g(lsu_tlu_st_rs3_data_g[48]), |
---|
1336 | //.lsu_tlu_st_rs3_data_b10t8_g(lsu_tlu_st_rs3_data_g[10:8]), |
---|
1337 | .tlu_sun4r_tte_g (tlu_sun4r_tte_g), |
---|
1338 | .ifu_tlu_flush_m (ifu_tlu_flush_m), |
---|
1339 | .tlu_mmu_early_flush_pipe_w (tlu_exu_early_flush_pipe_w), |
---|
1340 | .lsu_mmu_early_flush_w (lsu_tlu_early_flush_w), |
---|
1341 | .lsu_mmu_flush_pipe_w (lsu_mmu_flush_pipe_w), |
---|
1342 | .dmmu_sfsr_trp_wr (lsu_dmmu_sfsr_trp_wr[3:0]), |
---|
1343 | .rst_tri_en (mux_drive_disable), |
---|
1344 | .ifu_tlu_priv_violtn_m (ifu_tlu_priv_violtn_m), |
---|
1345 | // MMU_ASI_RD_CHANGE |
---|
1346 | .lsu_exu_ldxa_m (lsu_exu_ldxa_m), |
---|
1347 | .ifu_lsu_memref_d (ifu_lsu_memref_d), |
---|
1348 | .ifu_lsu_imm_asi_d (ifu_lsu_imm_asi_d[8:0]), |
---|
1349 | .ifu_lsu_thrid_s (ifu_lsu_thrid_s[1:0]), |
---|
1350 | .lsu_asi_reg0 (lsu_asi_reg0[7:0]), |
---|
1351 | .lsu_asi_reg1 (lsu_asi_reg1[7:0]), |
---|
1352 | .lsu_asi_reg2 (lsu_asi_reg2[7:0]), |
---|
1353 | .lsu_asi_reg3 (lsu_asi_reg3[7:0]), |
---|
1354 | .tlu_lng_ltncy_en_l(tlu_lng_ltncy_en_l), |
---|
1355 | .tlu_tsb_rd_ps0_sel (tlu_tsb_rd_ps0_sel), |
---|
1356 | .tlu_tsb_base_w2_d1 (tlu_tsb_base_w2_d1[47:13]), |
---|
1357 | .tlu_lsu_pstate_am (tlu_lsu_pstate_am[3:0]), |
---|
1358 | .exu_tlu_va_oor_m (exu_tlu_va_oor_m), |
---|
1359 | .exu_tlu_va_oor_jl_ret_m (exu_tlu_va_oor_jl_ret_m), |
---|
1360 | .tlu_lsu_tl_zero (tlu_lsu_tl_zero[3:0]), |
---|
1361 | .lsu_mmu_defr_trp_taken_g (lsu_mmu_defr_trp_taken_g), |
---|
1362 | /*AUTOINST*/ |
---|
1363 | // Outputs |
---|
1364 | .tlu_tlb_access_en_l_d1 (tlu_tlb_access_en_l_d1), |
---|
1365 | .mra_byte_wen (mra_byte_wen[19:0]), |
---|
1366 | .tlu_tag_access_ctxt_sel_m (tlu_tag_access_ctxt_sel_m[2:0]), |
---|
1367 | .tlu_tlb_tag_invrt_parity(tlu_tlb_tag_invrt_parity), |
---|
1368 | .tlu_tlb_data_invrt_parity(tlu_tlb_data_invrt_parity), |
---|
1369 | .lsu_ifu_inj_ack (lsu_ifu_inj_ack[3:0]), |
---|
1370 | .dmmu_any_sfsr_wr (dmmu_any_sfsr_wr), |
---|
1371 | .dmmu_sfsr_wr_en_l (dmmu_sfsr_wr_en_l[3:0]), |
---|
1372 | .dmmu_sfar_wr_en_l (dmmu_sfar_wr_en_l[3:0]), |
---|
1373 | .immu_any_sfsr_wr (immu_any_sfsr_wr), |
---|
1374 | .immu_sfsr_wr_en_l (immu_sfsr_wr_en_l[3:0]), |
---|
1375 | .tlu_tte_tag_g (tlu_tte_tag_g[2:0]), |
---|
1376 | .tlu_dtlb_rw_index_vld_g(tlu_dtlb_rw_index_vld_g), |
---|
1377 | .tlu_dtlb_rw_index_g(tlu_dtlb_rw_index_g[5:0]), |
---|
1378 | .tlu_dtlb_data_rd_g(tlu_dtlb_data_rd_g), |
---|
1379 | .tlu_dtlb_tag_rd_g (tlu_dtlb_tag_rd_g), |
---|
1380 | .tlu_itlb_rw_index_vld_g(tlu_itlb_rw_index_vld_g), |
---|
1381 | .tlu_itlb_wr_vld_g (tlu_itlb_wr_vld_g), |
---|
1382 | .itlb_wr_vld_g (itlb_wr_vld_g), |
---|
1383 | .tlu_itlb_rw_index_g(tlu_itlb_rw_index_g[5:0]), |
---|
1384 | .tlu_itlb_data_rd_g(tlu_itlb_data_rd_g), |
---|
1385 | .tlu_itlb_tag_rd_g (tlu_itlb_tag_rd_g), |
---|
1386 | .tlu_idtsb_8k_ptr (tlu_idtsb_8k_ptr[47:0]), |
---|
1387 | .tlu_dtlb_invalidate_all_g(tlu_dtlb_invalidate_all_g), |
---|
1388 | .tlu_itlb_invalidate_all_g(tlu_itlb_invalidate_all_g), |
---|
1389 | .tlu_slxa_thrd_sel (tlu_slxa_thrd_sel[3:0]), |
---|
1390 | .tlu_lsu_ldxa_tid_w2(tlu_lsu_ldxa_tid_w2[1:0]), |
---|
1391 | .tlu_itlb_dmp_vld_g(tlu_itlb_dmp_vld_g), |
---|
1392 | .tlu_itlb_dmp_all_g(tlu_itlb_dmp_all_g), |
---|
1393 | .tlu_itlb_dmp_actxt_g(tlu_itlb_dmp_actxt_g), |
---|
1394 | .tlu_itlb_dmp_nctxt_g(tlu_itlb_dmp_nctxt_g), |
---|
1395 | .tlu_dtlb_dmp_vld_g(tlu_dtlb_dmp_vld_g), |
---|
1396 | //.tlu_dtlb_dmp_by_ctxt_g(tlu_dtlb_dmp_by_ctxt_g), |
---|
1397 | .tlu_dtlb_dmp_all_g(tlu_dtlb_dmp_all_g), |
---|
1398 | .tlu_dtlb_dmp_pctxt_g(tlu_dtlb_dmp_pctxt_g), |
---|
1399 | .tlu_dtlb_dmp_sctxt_g(tlu_dtlb_dmp_sctxt_g), |
---|
1400 | .tlu_dtlb_dmp_nctxt_g(tlu_dtlb_dmp_nctxt_g), |
---|
1401 | .tlu_dtlb_dmp_actxt_g(tlu_dtlb_dmp_actxt_g), |
---|
1402 | .tlu_idtlb_dmp_thrid_g(tlu_idtlb_dmp_thrid_g[1:0]), |
---|
1403 | .tlu_dmp_key_vld_g (tlu_dmp_key_vld_g[4:0]), |
---|
1404 | .tlu_int_asi_load (tlu_int_asi_load), |
---|
1405 | // .tlu_int_asi_store (tlu_int_asi_store), |
---|
1406 | .tlu_int_asi_thrid (tlu_int_asi_thrid[1:0]), |
---|
1407 | .tlu_int_asi_vld (tlu_int_asi_vld), |
---|
1408 | .tlb_access_rst_l (tlb_access_rst_l), |
---|
1409 | .tlu_lsu_stxa_ack (tlu_lsu_stxa_ack), |
---|
1410 | .tlu_lsu_stxa_ack_tid(tlu_lsu_stxa_ack_tid[1:0]), |
---|
1411 | .mra_wr_ptr (mra_wr_ptr[3:0]), |
---|
1412 | .mra_rd_ptr (mra_rd_ptr[3:0]), |
---|
1413 | .mra_wr_vld (mra_wr_vld), |
---|
1414 | .mra_rd_vld (mra_rd_vld), |
---|
1415 | .tag_access_wdata_sel(tag_access_wdata_sel[2:0]), |
---|
1416 | .tlu_admp_key_sel (tlu_admp_key_sel), |
---|
1417 | // .tlu_mmu_sync_data_excp_g(tlu_mmu_sync_data_excp_g), |
---|
1418 | .tlu_tte_wr_pid_g (tlu_tte_wr_pid_g[2:0]), |
---|
1419 | .tlu_lsu_ldxa_async_data_vld(tlu_lsu_ldxa_async_data_vld), |
---|
1420 | .tlu_tte_real_g (tlu_tte_real_g), |
---|
1421 | .tlu_ldxa_l1mx1_sel(tlu_ldxa_l1mx1_sel[3:0]), |
---|
1422 | .tlu_ldxa_l1mx2_sel(tlu_ldxa_l1mx2_sel[3:0]), |
---|
1423 | .tlu_ldxa_l2mx1_sel(tlu_ldxa_l2mx1_sel[2:0]), |
---|
1424 | // Inputs |
---|
1425 | .tlu_itag_acc_sel_g (tlu_itag_acc_sel_g), |
---|
1426 | .sehold (sehold), |
---|
1427 | .spu_tlu_rsrv_illgl_m (1'b0), |
---|
1428 | .ifu_mmu_trap_m (ifu_mmu_trap_m), |
---|
1429 | .ffu_tlu_ill_inst_m(ffu_tlu_ill_inst_m), |
---|
1430 | .ifu_tlu_inst_vld_m (ifu_tlu_inst_vld_m_bf1), |
---|
1431 | .exu_lsu_priority_trap_m(exu_lsu_priority_trap_m), |
---|
1432 | .exu_mmu_early_va_e (exu_mmu_early_va_e[7:0]), |
---|
1433 | .tlu_tag_access_ctxt_g (tlu_tag_access_ctxt_g[12:0]), |
---|
1434 | .ifu_lsu_error_inj (ifu_lsu_error_inj[3:0]), |
---|
1435 | .lsu_tlu_nucleus_ctxt_m (lsu_tlu_nucleus_ctxt_m), |
---|
1436 | .lsu_tlu_tte_pg_sz_g (lsu_tlu_tte_pg_sz_g[2:0]), |
---|
1437 | .ifu_lsu_ld_inst_e (ifu_lsu_ld_inst_e), |
---|
1438 | .ifu_lsu_st_inst_e (ifu_lsu_st_inst_e), |
---|
1439 | .lsu_tlu_dmmu_miss_g(lsu_tlu_dmmu_miss_g), |
---|
1440 | .tlu_dtsb_split_w2 (tlu_dtsb_split_w2), |
---|
1441 | .tlu_dtsb_size_w2 (tlu_dtsb_size_w2[3:0]), |
---|
1442 | .tlu_dtag_access_w2(tlu_dtag_access_w2[47:13]), |
---|
1443 | .tlu_itsb_split_w2 (tlu_itsb_split_w2), |
---|
1444 | .tlu_itsb_size_w2 (tlu_itsb_size_w2[3:0]), |
---|
1445 | .tlu_ctxt_cfg_w2 (tlu_ctxt_cfg_w2[5:0]), |
---|
1446 | //.tlu_tag_access_nctxt_g(tlu_tag_access_nctxt_g), |
---|
1447 | .lsu_tlu_st_rs3_data_g(lsu_tlu_st_rs3_data_g[62:61]), |
---|
1448 | .ifu_tlu_immu_miss_m(ifu_tlu_immu_miss_m), |
---|
1449 | // .ifu_tlu_thrid_e (ifu_tlu_thrid_e[1:0]), |
---|
1450 | .ifu_lsu_alt_space_e(ifu_lsu_alt_space_e), |
---|
1451 | .ifu_tlu_alt_space_d(ifu_tlu_alt_space_d), |
---|
1452 | .lsu_tlu_dtlb_done (lsu_tlu_dtlb_done), |
---|
1453 | .ifu_tlu_itlb_done (ifu_tlu_itlb_done), |
---|
1454 | .lsu_tlu_tlb_asi_state_m(lsu_tlu_tlb_asi_state_m[7:0]), |
---|
1455 | .lsu_tlu_tlb_ldst_va_m(lsu_tlu_tlb_ldst_va_m[10:0]), |
---|
1456 | .lsu_tlu_tlb_ld_inst_m(lsu_tlu_tlb_ld_inst_m), |
---|
1457 | .lsu_tlu_tlb_st_inst_m(lsu_tlu_tlb_st_inst_m), |
---|
1458 | .lsu_tlu_tlb_access_tid_m(lsu_tlu_tlb_access_tid_m[1:0]), |
---|
1459 | .immu_sfsr_trp_wr (immu_sfsr_trp_wr[3:0]), |
---|
1460 | .lsu_tlu_daccess_excptn_g(lsu_tlu_daccess_excptn_g), |
---|
1461 | .lsu_tlu_daccess_prot_g(lsu_tlu_daccess_prot_g), |
---|
1462 | .lsu_pid_state0 (lsu_pid_state0[2:0]), |
---|
1463 | .lsu_pid_state1 (lsu_pid_state1[2:0]), |
---|
1464 | .lsu_pid_state2 (lsu_pid_state2[2:0]), |
---|
1465 | .lsu_pid_state3 (lsu_pid_state3[2:0]), |
---|
1466 | .rclk (rclk), |
---|
1467 | .se (se), |
---|
1468 | .grst_l (grst_l), |
---|
1469 | .arst_l (arst_l)); |
---|
1470 | |
---|
1471 | /* |
---|
1472 | tlu_mmu_dp AUTO_TEMPLATE (); |
---|
1473 | */ |
---|
1474 | |
---|
1475 | |
---|
1476 | tlu_mmu_dp mmu_dp ( |
---|
1477 | .so (short_scan0_3), |
---|
1478 | .si (short_scan0_2), |
---|
1479 | .ifu_tlu_pc_m (ifu_tlu_pc_m[47:13]), |
---|
1480 | .lsu_exu_ldxa_data_g (lsu_exu_ldxa_data_g[63:0]), |
---|
1481 | .tlu_dsfsr_din_g (lsu_dsfsr_din_g[23:0]), |
---|
1482 | // MMU_ASI_RD_CHANGE |
---|
1483 | .tlu_lng_ltncy_en_l(tlu_lng_ltncy_en_l), |
---|
1484 | .tlu_tsb_rd_ps0_sel (tlu_tsb_rd_ps0_sel), |
---|
1485 | .tlu_tsb_base_w2_d1 (tlu_tsb_base_w2_d1[47:13]), |
---|
1486 | /*AUTOINST*/ |
---|
1487 | // Outputs |
---|
1488 | .tlu_tag_access_ctxt_g (tlu_tag_access_ctxt_g[12:0]), |
---|
1489 | .tlu_ctxt_cfg_w2 (tlu_ctxt_cfg_w2[5:0]), |
---|
1490 | .tlu_dtsb_split_w2 (tlu_dtsb_split_w2), |
---|
1491 | .tlu_dtsb_size_w2 (tlu_dtsb_size_w2[3:0]), |
---|
1492 | .tlu_dtag_access_w2 (tlu_dtag_access_w2[47:13]), |
---|
1493 | .tlu_itsb_split_w2 (tlu_itsb_split_w2), |
---|
1494 | .tlu_itsb_size_w2 (tlu_itsb_size_w2[3:0]), |
---|
1495 | .tlu_itlb_tte_tag_w2 (tlu_itlb_tte_tag_w2[58:0]), |
---|
1496 | .tlu_itlb_tte_data_w2(tlu_itlb_tte_data_w2[42:0]), |
---|
1497 | .tlu_dtlb_tte_tag_w2 (tlu_dtlb_tte_tag_w2[58:0]), |
---|
1498 | .tlu_dtlb_tte_data_w2(tlu_dtlb_tte_data_w2[42:0]), |
---|
1499 | // .tlu_lsu_ldxa_data_w2(tlu_lsu_ldxa_data_w2[63:0]), |
---|
1500 | .tlu_idtlb_dmp_key_g (tlu_idtlb_dmp_key_g[40:0]), |
---|
1501 | .tlu_dsfsr_flt_vld (tlu_dsfsr_flt_vld[3:0]), |
---|
1502 | .tlu_isfsr_flt_vld (tlu_isfsr_flt_vld[3:0]), |
---|
1503 | //.tlu_tag_access_nctxt_g(tlu_tag_access_nctxt_g), |
---|
1504 | .mra_wdata (mra_wdata[155:0]), |
---|
1505 | // Inputs |
---|
1506 | .tlu_tlb_access_en_l_d1 (tlu_tlb_access_en_l_d1), |
---|
1507 | .tlu_sun4r_tte_g (tlu_sun4r_tte_g), |
---|
1508 | .tlu_tlb_tag_invrt_parity(tlu_tlb_tag_invrt_parity), |
---|
1509 | .tlu_tlb_data_invrt_parity(tlu_tlb_data_invrt_parity), |
---|
1510 | .tlu_addr_msk_g (tlu_addr_msk_g), |
---|
1511 | .dmmu_any_sfsr_wr (dmmu_any_sfsr_wr), |
---|
1512 | .dmmu_sfsr_wr_en_l (dmmu_sfsr_wr_en_l[3:0]), |
---|
1513 | .immu_any_sfsr_wr (immu_any_sfsr_wr), |
---|
1514 | .immu_sfsr_wr_en_l (immu_sfsr_wr_en_l[3:0]), |
---|
1515 | .lsu_tlu_dside_ctxt_m(lsu_tlu_dside_ctxt_m[12:0]), |
---|
1516 | .lsu_tlu_pctxt_m (lsu_tlu_pctxt_m[12:0]), |
---|
1517 | .tlu_tag_access_ctxt_sel_m(tlu_tag_access_ctxt_sel_m[2:0]), |
---|
1518 | .lsu_tlu_st_rs3_data_b63t59_g(lsu_tlu_st_rs3_data_g[63:59]), |
---|
1519 | .lsu_tlu_st_rs3_data_b47t0_g(lsu_tlu_st_rs3_data_g[47:0]), |
---|
1520 | .exu_lsu_ldst_va_e (exu_lsu_ldst_va_e[`ASI_VA_WIDTH-1:0]), |
---|
1521 | .tlu_idtsb_8k_ptr (tlu_idtsb_8k_ptr[47:0]), |
---|
1522 | .lsu_tlu_tlb_dmp_va_m(lsu_tlu_tlb_dmp_va_m[47:13]), |
---|
1523 | .tlu_slxa_thrd_sel (tlu_slxa_thrd_sel[3:0]), |
---|
1524 | .tlu_tte_tag_g (tlu_tte_tag_g[2:0]), |
---|
1525 | .tlu_dmp_key_vld_g (tlu_dmp_key_vld_g[4:0]), |
---|
1526 | .tlb_access_rst_l (tlb_access_rst_l), |
---|
1527 | .tag_access_wdata_sel(tag_access_wdata_sel[2:0]), |
---|
1528 | .mra_rdata (mra_rdata[159:10]), |
---|
1529 | .tlu_admp_key_sel (tlu_admp_key_sel), |
---|
1530 | .tlu_isfsr_din_g (tlu_isfsr_din_g[23:0]), |
---|
1531 | .tlu_tte_wr_pid_g (tlu_tte_wr_pid_g[2:0]), |
---|
1532 | .tlu_tte_real_g (tlu_tte_real_g), |
---|
1533 | .tlu_ldxa_l1mx1_sel (tlu_ldxa_l1mx1_sel[3:0]), |
---|
1534 | .tlu_ldxa_l1mx2_sel (tlu_ldxa_l1mx2_sel[3:0]), |
---|
1535 | .tlu_ldxa_l2mx1_sel (tlu_ldxa_l2mx1_sel[2:0]), |
---|
1536 | .rclk (rclk), |
---|
1537 | .arst_l (arst_l), |
---|
1538 | .grst_l (grst_l), |
---|
1539 | .se (se), |
---|
1540 | .dmmu_sfar_wr_en_l (dmmu_sfar_wr_en_l[3:0])); |
---|
1541 | // .rst_l (tlu_rst_l)); |
---|
1542 | |
---|
1543 | tlu_hyperv tlu_hyperv (/*AUTOINST*/ |
---|
1544 | .so(scan1_3), |
---|
1545 | .si(scan1_2), |
---|
1546 | .grst_l (grst_l), |
---|
1547 | .arst_l (arst_l), |
---|
1548 | .rst_tri_en (mux_drive_disable), |
---|
1549 | // output |
---|
1550 | // modified for timing |
---|
1551 | // .tlu_gl_rw_g (tlu_gl_rw_g), |
---|
1552 | .tlu_gl_rw_m (tlu_gl_rw_m), |
---|
1553 | .tlu_gl_lvl0 (tlu_gl_lvl0[`TSA_GLOBAL_WIDTH-1:0]), |
---|
1554 | .tlu_gl_lvl1 (tlu_gl_lvl1[`TSA_GLOBAL_WIDTH-1:0]), |
---|
1555 | .tlu_gl_lvl2 (tlu_gl_lvl2[`TSA_GLOBAL_WIDTH-1:0]), |
---|
1556 | .tlu_gl_lvl3 (tlu_gl_lvl3[`TSA_GLOBAL_WIDTH-1:0]), |
---|
1557 | .tlu_hpstate_din_sel0 (tlu_hpstate_din_sel0[1:0]), |
---|
1558 | .tlu_hpstate_din_sel1 (tlu_hpstate_din_sel1[1:0]), |
---|
1559 | .tlu_hpstate_din_sel2 (tlu_hpstate_din_sel2[1:0]), |
---|
1560 | .tlu_hpstate_din_sel3 (tlu_hpstate_din_sel3[1:0]), |
---|
1561 | .tlu_htickcmp_rw_e (tlu_htickcmp_rw_e), |
---|
1562 | // .tlu_update_hpstate_l_g (tlu_update_hpstate_l_g[`TLU_THRD_NUM-1:0]), |
---|
1563 | .tlu_update_hpstate_l_w2 (tlu_update_hpstate_l_w2[`TLU_THRD_NUM-1:0]), |
---|
1564 | // .tlu_htickcmp_en_l (tlu_htickcmp_en_l[`TLU_THRD_NUM-1:0]), |
---|
1565 | .tlu_htickcmp_intdis (tlu_htickcmp_intdis), |
---|
1566 | // .tlu_hintp_en_l_g (tlu_hintp_en_l_g[`TLU_THRD_NUM-1:0]), |
---|
1567 | .tlu_wr_hintp_g (tlu_wr_hintp_g[`TLU_THRD_NUM-1:0]), |
---|
1568 | // .tlu_set_hintp_g (tlu_set_hintp_g[`TLU_THRD_NUM-1:0]), |
---|
1569 | .tlu_set_hintp_sel_g (tlu_set_hintp_sel_g[`TLU_THRD_NUM-1:0]), |
---|
1570 | .tlu_htba_en_l (tlu_htba_en_l[`TLU_THRD_NUM-1:0]), |
---|
1571 | // .tlu_hyper_lite (tlu_hyper_lite[`TLU_THRD_NUM-1:0]), |
---|
1572 | .tlu_hscpd_dacc_excpt_m (tlu_hscpd_dacc_excpt_m), |
---|
1573 | .tlu_qtail_dacc_excpt_m (tlu_qtail_dacc_excpt_m), |
---|
1574 | .tlu_scpd_rd_vld_m (tlu_scpd_rd_vld_m), |
---|
1575 | // .tlu_scpd_rd_vld_g (tlu_scpd_rd_vld_g), |
---|
1576 | .tlu_scpd_wr_vld_g (tlu_scpd_wr_vld_g), |
---|
1577 | .tlu_scpd_rd_addr_m (tlu_scpd_rd_addr_m[`SCPD_RW_ADDR_WIDTH-1:0]), |
---|
1578 | .tlu_scpd_wr_addr_g (tlu_scpd_wr_addr_g[`SCPD_RW_ADDR_WIDTH-1:0]), |
---|
1579 | .tlu_asi_queue_rdata_g(tlu_asi_queue_rdata_g[`TLU_ASI_QUE_WIDTH-1:0]), |
---|
1580 | .tlu_ld_data_vld_g(tlu_ld_data_vld_g), |
---|
1581 | .tlu_asi_queue_rd_vld_g(tlu_asi_queue_rd_vld_g), |
---|
1582 | // .tlu_va_all_zero_g(tlu_va_all_zero_g), |
---|
1583 | .tlu_va_ill_g(tlu_va_ill_g), |
---|
1584 | .tlu_htstate_rw_d (tlu_htstate_rw_d), |
---|
1585 | .tlu_htstate_rw_g (tlu_htstate_rw_g), |
---|
1586 | // .tlu_htba_mx2_sel (tlu_htba_mx2_sel), |
---|
1587 | // .tlu_rdpr_mx5_sel (tlu_rdpr_mx5_sel[3:0]), |
---|
1588 | .tlu_hyperv_rdpr_sel (tlu_hyperv_rdpr_sel[4:0]), |
---|
1589 | // .tlu_rdpr_mx5_active (tlu_rdpr_mx5_active), |
---|
1590 | .tlu_exu_agp (tlu_exu_agp[`TSA_GLOBAL_WIDTH-1:0]), |
---|
1591 | .tlu_exu_agp_swap (tlu_exu_agp_swap), |
---|
1592 | .tlu_cpu_mondo_cmp (tlu_cpu_mondo_cmp[`TLU_THRD_NUM-1:0]), |
---|
1593 | .tlu_dev_mondo_cmp (tlu_dev_mondo_cmp[`TLU_THRD_NUM-1:0]), |
---|
1594 | .tlu_resum_err_cmp (tlu_resum_err_cmp[`TLU_THRD_NUM-1:0]), |
---|
1595 | // .tlu_exu_agp_tid (tlu_exu_agp_tid[1:0]), |
---|
1596 | .tlu_asi_write_g (tlu_asi_write_g), |
---|
1597 | .inc_ind_asi_wr_inrr(inc_ind_asi_wr_inrr[`TLU_THRD_NUM-1:0]), |
---|
1598 | .inc_ind_asi_wr_indr(inc_ind_asi_wr_indr[`TLU_THRD_NUM-1:0]), |
---|
1599 | .inc_ind_asi_rd_invr(inc_ind_asi_rd_invr[`TLU_THRD_NUM-1:0]), |
---|
1600 | .tlu_local_thrid_g(tlu_local_thrid_g[`TLU_THRD_NUM-1:0]), |
---|
1601 | // input |
---|
1602 | .tlu_por_rstint_g (tlu_por_rstint_g[`TLU_THRD_NUM-1:0]), |
---|
1603 | // .tlu_wsr_inst_g (tlu_wsr_inst_g), |
---|
1604 | .tlu_wsr_inst_nq_g (tlu_wsr_inst_nq_g), |
---|
1605 | // .ifu_tlu_thrid_e (ifu_tlu_thrid_e[1:0]), |
---|
1606 | .ifu_tlu_thrid_d (ifu_tlu_thrid_d[1:0]), |
---|
1607 | .ifu_tlu_sraddr_d (ifu_tlu_sraddr_d_v2[`TLU_ASR_ADDR_WIDTH-1:0]), |
---|
1608 | .tlu_wsr_data_w_global (tlu_wsr_data_w[`TLU_GLOBAL_WIDTH-1:0]), |
---|
1609 | .tlu_dnrtry_global_g (tlu_dnrtry_global_g[`TSA_GLOBAL_WIDTH-1:0]), |
---|
1610 | .tlu_dnrtry0_inst_g (tlu_dnrtry0_inst_g), |
---|
1611 | .tlu_dnrtry1_inst_g (tlu_dnrtry1_inst_g), |
---|
1612 | .tlu_dnrtry2_inst_g (tlu_dnrtry2_inst_g), |
---|
1613 | .tlu_dnrtry3_inst_g (tlu_dnrtry3_inst_g), |
---|
1614 | // modified due to timing |
---|
1615 | // .tlu_thrd0_traps (tlu_thrd0_traps), |
---|
1616 | // .tlu_thrd1_traps (tlu_thrd1_traps), |
---|
1617 | // .tlu_thrd2_traps (tlu_thrd2_traps), |
---|
1618 | // .tlu_thrd3_traps (tlu_thrd3_traps), |
---|
1619 | // .tlu_select_tba_g (tlu_select_tba_g), |
---|
1620 | .tlu_thrd_traps_w2 (tlu_thrd_traps_w2[`TLU_THRD_NUM-1:0]), |
---|
1621 | .tlu_select_tba_w2 (tlu_select_tba_w2), |
---|
1622 | .tlu_tick_ctl_din (tlu_tick_ctl_din), |
---|
1623 | // .tlu_htick_match (tlu_htick_match), |
---|
1624 | .tlu_tickcmp_sel (tlu_tickcmp_sel[`TLU_THRD_NUM-1:0]), |
---|
1625 | .tlu_pstate_priv (local_pstate_priv[`TLU_THRD_NUM-1:0]), |
---|
1626 | .tlu_hpstate_priv (local_hpstate_priv[`TLU_THRD_NUM-1:0]), |
---|
1627 | .tlu_hpstate_enb (local_hpstate_enb[`TLU_THRD_NUM-1:0]), |
---|
1628 | .ifu_lsu_alt_space_e (ifu_lsu_alt_space_e), |
---|
1629 | .ifu_lsu_ld_inst_e (ifu_lsu_ld_inst_e), |
---|
1630 | .ifu_lsu_st_inst_e (ifu_lsu_st_inst_e), |
---|
1631 | .tlu_asi_state_e (tlu_asi_state_e[`TLU_ASI_STATE_WIDTH-1:0]), |
---|
1632 | // new signal to replace ifu_tlu_flush_w |
---|
1633 | // .ifu_tlu_flush_w (ifu_tlu_flush_w), |
---|
1634 | // .tlu_flush_pipe_w (tlu_flush_pipe_w), |
---|
1635 | // .tlu_flush_all_w (tlu_flush_all_w), |
---|
1636 | .lsu_tlu_early_flush_w (lsu_tlu_early_flush2_w), |
---|
1637 | .tlu_local_flush_w (tlu_local_flush_w), |
---|
1638 | .tlu_lsu_int_ldxa_vld_w2(tlu_lsu_int_ldxa_vld_w2), |
---|
1639 | .tlu_asi_data_nf_vld_w2 (tlu_asi_data_nf_vld_w2), |
---|
1640 | .ifu_tlu_flush_fd_w (ifu_tlu_flush_fd_w), |
---|
1641 | .tlu_inst_vld_m (tlu_inst_vld_nq_m), |
---|
1642 | // .exu_lsu_ldst_va_e (exu_lsu_ldst_va_e[`TLU_ASI_VA_WIDTH-1:0]), |
---|
1643 | .lsu_tlu_ldst_va_m (lsu_tlu_ldst_va_m[`TLU_ASI_VA_WIDTH-1:0]), |
---|
1644 | .tlu_asi_queue_data_g (lsu_tlu_rs3_data_g[`TLU_ASI_QUE_HI:`TLU_ASI_QUE_LO]), |
---|
1645 | // .tlu_exu_agp_tid (tlu_exu_agp_tid[1:0]), |
---|
1646 | // .tlu_agp_tid_g (tlu_agp_tid_g[1:0]), |
---|
1647 | .tlu_agp_tid_w2 (tlu_agp_tid_w2[1:0]), |
---|
1648 | .se(se), |
---|
1649 | // .tlu_rst_l (tlu_rst_l), |
---|
1650 | // .clk (clk)); |
---|
1651 | .rclk (rclk)); |
---|
1652 | |
---|
1653 | /* |
---|
1654 | bw_r_rf16x160 AUTO_TEMPLATE ( |
---|
1655 | .word_wen (4'b1111), |
---|
1656 | .rd_clk (rclk), |
---|
1657 | .wr_clk (rclk), |
---|
1658 | .reset_l (arst_l), |
---|
1659 | .din ({mra_wdata[155:0],4'b0000}), |
---|
1660 | //.si (), |
---|
1661 | .si_r (), |
---|
1662 | .si_w (), |
---|
1663 | .se (se), |
---|
1664 | .sehold (sehold), |
---|
1665 | //.so ()); |
---|
1666 | .so_r (), |
---|
1667 | .so_w ()); |
---|
1668 | */ |
---|
1669 | |
---|
1670 | bw_r_rf16x160 mra (/*AUTOINST*/ |
---|
1671 | // Outputs |
---|
1672 | .dout ({mra_rdata[159:10],dummy_mra_rdata[9:0]}), |
---|
1673 | //.so (), |
---|
1674 | .so_r (short_scan0_4), |
---|
1675 | .so_w (short_scan0_5), |
---|
1676 | // Inputs |
---|
1677 | .rd_clk (rclk), |
---|
1678 | .wr_clk (rclk), |
---|
1679 | .din ({mra_wdata[155:0],4'b0000}), |
---|
1680 | .rst_tri_en (mem_write_disable), |
---|
1681 | .word_wen (4'b1111), |
---|
1682 | .byte_wen (mra_byte_wen[19:0]), |
---|
1683 | .wr_adr (mra_wr_ptr[3:0]), |
---|
1684 | .rd_adr (mra_rd_ptr[3:0]), |
---|
1685 | .wr_en (mra_wr_vld), |
---|
1686 | .read_en (mra_rd_vld), |
---|
1687 | .reset_l (arst_l), |
---|
1688 | .sehold (sehold), |
---|
1689 | //.si (), |
---|
1690 | .si_w (short_scan0_4), |
---|
1691 | .si_r (short_scan0_3), |
---|
1692 | .se (se)); |
---|
1693 | |
---|
1694 | |
---|
1695 | |
---|
1696 | //tlu_mra mra (/*AUTOINST*/ |
---|
1697 | // // Outputs |
---|
1698 | // .mra_rdata (mra_rdata[155:0]), |
---|
1699 | // // Inputs |
---|
1700 | // .mra_wr_ptr (mra_wr_ptr[3:0]), |
---|
1701 | // .mra_rd_ptr (mra_rd_ptr[3:0]), |
---|
1702 | // .mra_wr_vld (mra_wr_vld), |
---|
1703 | // .mra_rd_vld (mra_rd_vld), |
---|
1704 | // .mra_field1_en (mra_field1_en), |
---|
1705 | // .mra_field2_en (mra_field2_en), |
---|
1706 | // .mra_field3_en (mra_field3_en), |
---|
1707 | // .mra_field4_en (mra_field4_en), |
---|
1708 | // .mra_wdata (mra_wdata[155:0]), |
---|
1709 | // .clk (rclk)); |
---|
1710 | |
---|
1711 | /* |
---|
1712 | tlu_pib AUTO_TEMPLATE ( |
---|
1713 | .ifu_tlu_imiss_m (ifu_tlu_imiss_m), |
---|
1714 | .lsu_tlu_dcache_miss_w2 (lsu_tlu_dcache_miss_w2[3:0]), |
---|
1715 | .lsu_tlu_l2_dmiss (lsu_tlu_l2_dmiss[3:0]), |
---|
1716 | .lsu_tlu_stb_full_w2 (lsu_tlu_stb_full_w2[3:0])); |
---|
1717 | .ffu_tlu_fpu_tid (ffu_tlu_fpu_tid[1:0]), |
---|
1718 | .ffu_tlu_fpu_cmplt (ffu_tlu_fpu_cmplt), |
---|
1719 | // .pib_pic_wrap (pib_pic_wrap[3:0]), |
---|
1720 | .pib_picl_wrap (pib_picl_wrap[`TLU_THRD_NUM-1:0]), |
---|
1721 | .pich_wrap_flg (pich_wrap_flg[`TLU_THRD_NUM-1:0]), |
---|
1722 | .pich_onebelow_flg (pich_onebelow_flg[`TLU_THRD_NUM-1:0]), |
---|
1723 | .pich_twobelow_flg (pich_twobelow_flg[`TLU_THRD_NUM-1:0]), |
---|
1724 | .tlu_pic_onebelow_e (tlu_pic_onebelow_e), |
---|
1725 | .tlu_pic_twobelow_e (tlu_pic_twobelow_e), |
---|
1726 | .tlu_pic_wrap_e (tlu_pic_wrap_e), |
---|
1727 | // modified for bug 5436: Niagara 2.0 |
---|
1728 | .tlu_pcr_ut (tlu_pcr_ut[`TLU_THRD_NUM-1:0]), |
---|
1729 | .tlu_pcr_st (tlu_pcr_st[`TLU_THRD_NUM-1:0]), |
---|
1730 | //.tlu_pcr_ut_e (tlu_pcr_ut_e), |
---|
1731 | //.tlu_pcr_st_e (tlu_pcr_st_e), |
---|
1732 | // .pich_threebelow_flg (pich_threebelow_flg[`TLU_THRD_NUM-1:0]), |
---|
1733 | // modified for timing fixes |
---|
1734 | // .pib_priv_act_trap (pib_priv_act_trap[3:0]), |
---|
1735 | .pib_priv_act_trap_m (pib_priv_act_trap_m[3:0]), |
---|
1736 | */ |
---|
1737 | tlu_pib tlu_pib (/*AUTOINST*/ |
---|
1738 | .so (so1), |
---|
1739 | .si (scan1_3), |
---|
1740 | .grst_l (grst_l), |
---|
1741 | .arst_l (arst_l), |
---|
1742 | .ifu_tlu_imiss_e (ifu_tlu_imiss_e), |
---|
1743 | .ifu_tlu_immu_miss_m (ifu_tlu_immu_miss_m), |
---|
1744 | .tlu_hpstate_enb (local_hpstate_enb[`TLU_THRD_NUM-1:0]), |
---|
1745 | .ifu_tlu_l2imiss (ifu_tlu_l2imiss[`TLU_THRD_NUM-1:0]), |
---|
1746 | .tlu_thread_inst_vld_g (tlu_thread_inst_vld_g[`TLU_THRD_NUM-1:0]), |
---|
1747 | .ifu_tlu_thrid_d (ifu_tlu_thrid_d[1:0]), |
---|
1748 | .exu_tlu_wsr_data_m (exu_tlu_wsr_data_m[`TLU_ASR_DATA_WIDTH-1:0]), |
---|
1749 | .tlu_full_flush_pipe_w2 (tlu_full_flush_pipe_w2), |
---|
1750 | .tlu_tcc_inst_w (tlu_tcc_inst_w), |
---|
1751 | .ifu_tlu_flush_fd_w (ifu_tlu_flush_fd3_w), |
---|
1752 | .ifu_tlu_sraddr_d (ifu_tlu_sraddr_d_v2[`TLU_ASR_ADDR_WIDTH-1:0]), |
---|
1753 | .ifu_tlu_rsr_inst_d (ifu_tlu_rsr_inst_d), |
---|
1754 | // .ifu_tlu_wsr_inst_d (ifu_tlu_wsr_inst_d), |
---|
1755 | .lsu_tlu_wsr_inst_e (lsu_tlu_wsr_inst_e), |
---|
1756 | .tlu_wsr_inst_nq_g (tlu_wsr_inst_nq_g), |
---|
1757 | .tlu_pib_rsr_data_e (tlu_pib_rsr_data_e[`TLU_ASR_DATA_WIDTH-1:0]), |
---|
1758 | .tlu_pstate_priv (local_pstate_priv[`TLU_THRD_NUM-1:0]), |
---|
1759 | .tlu_hpstate_priv (local_hpstate_priv[`TLU_THRD_NUM-1:0]), |
---|
1760 | .tlu_thread_wsel_g (tlu_thread_wsel_g[`TLU_THRD_NUM-1:0]), |
---|
1761 | .ffu_tlu_fpu_tid (ffu_tlu_fpu_tid[1:0]), |
---|
1762 | .ffu_tlu_fpu_cmplt (ffu_tlu_fpu_cmplt), |
---|
1763 | .lsu_tlu_dmmu_miss_g (lsu_tlu_dmmu_miss_g), |
---|
1764 | .lsu_tlu_dcache_miss_w2(lsu_tlu_dcache_miss_w2[`TLU_THRD_NUM-1:0]), |
---|
1765 | .lsu_tlu_l2_dmiss (lsu_tlu_l2_dmiss[`TLU_THRD_NUM-1:0]), |
---|
1766 | .lsu_tlu_stb_full_w2 (lsu_tlu_stb_full_w2[`TLU_THRD_NUM-1:0]), |
---|
1767 | .tlu_wsr_data_w (tlu_wsr_data_w[`TLU_ASR_DATA_WIDTH-1:0]), |
---|
1768 | // modified for timing fixes |
---|
1769 | // .pib_priv_act_trap (pib_priv_act_trap[`TLU_THRD_NUM-1:0]), |
---|
1770 | .pib_priv_act_trap_m (pib_priv_act_trap_m[`TLU_THRD_NUM-1:0]), |
---|
1771 | // .pib_pic_wrap (pib_pic_wrap[`TLU_THRD_NUM-1:0]), |
---|
1772 | .pib_picl_wrap (pib_picl_wrap[`TLU_THRD_NUM-1:0]), |
---|
1773 | .pich_wrap_flg (pich_wrap_flg[`TLU_THRD_NUM-1:0]), |
---|
1774 | .pich_onebelow_flg (pich_onebelow_flg[`TLU_THRD_NUM-1:0]), |
---|
1775 | .pich_twobelow_flg (pich_twobelow_flg[`TLU_THRD_NUM-1:0]), |
---|
1776 | .tlu_pic_onebelow_e (tlu_pic_onebelow_e), |
---|
1777 | .tlu_pic_twobelow_e (tlu_pic_twobelow_e), |
---|
1778 | // modified for bug 5436: Niagara 2.0 |
---|
1779 | .tlu_pcr_ut (tlu_pcr_ut[`TLU_THRD_NUM-1:0]), |
---|
1780 | .tlu_pcr_st (tlu_pcr_st[`TLU_THRD_NUM-1:0]), |
---|
1781 | //.tlu_pcr_ut_e (tlu_pcr_ut_e), |
---|
1782 | //.tlu_pcr_st_e (tlu_pcr_st_e), |
---|
1783 | .tlu_pic_wrap_e (tlu_pic_wrap_e), |
---|
1784 | // .pich_threebelow_flg (pich_threebelow_flg[`TLU_THRD_NUM-1:0]), |
---|
1785 | // .tlu_que_trap_sel_m (tlu_que_trap_sel_m[`QUE_TRAP_SEL_WIDTH-1:0]), |
---|
1786 | // .tlu_exu_rsr_data_e (tlu_exu_rsr_data_e[`TLU_ASR_DATA_WIDTH-1:0]), |
---|
1787 | // |
---|
1788 | // reset was removed to abide to the Niagara reset methodology |
---|
1789 | // .reset (reset), |
---|
1790 | .se (se), |
---|
1791 | // .tlu_rst_l (tlu_rst_l), |
---|
1792 | // .rst_tri_en (mux_drive_disable), |
---|
1793 | .rclk (rclk) ); |
---|
1794 | |
---|
1795 | // modified due to Niagara SRAM methodology |
---|
1796 | /* |
---|
1797 | tlu_scpd tlu_scpd ( |
---|
1798 | .lsu_tlu_st_rs3_data_g (lsu_tlu_rs3_data_g[`TLU_SCPD_DATA_WIDTH-1:0]), |
---|
1799 | .tlu_scpd_rd_vld_m (tlu_scpd_rd_vld_m), |
---|
1800 | .tlu_scpd_wr_vld_g (tlu_scpd_wr_vld_g), |
---|
1801 | .tlu_scpd_rd_addr_m (tlu_scpd_rd_addr_m[`SCPD_RW_ADDR_WIDTH-1:0]), |
---|
1802 | .tlu_scpd_wr_addr_g (tlu_scpd_wr_addr_g[`SCPD_RW_ADDR_WIDTH-1:0]), |
---|
1803 | // |
---|
1804 | // reset was removed to abide to the Niagara reset methodology |
---|
1805 | // .reset (reset), |
---|
1806 | .tlu_rst (tlu_rst), |
---|
1807 | .clk (rclk), |
---|
1808 | .tlu_scpd_asi_rdata_g (tlu_scpd_asi_rdata_g[`TLU_SCPD_DATA_WIDTH-1:0])); |
---|
1809 | // |
---|
1810 | */ |
---|
1811 | bw_r_rf32x80 tlu_scpd ( |
---|
1812 | // output |
---|
1813 | .dout (tlu_scpd_asi_rdata_g[79:0]), |
---|
1814 | .so (short_scan0_6), |
---|
1815 | // intput |
---|
1816 | .din ({{16{1'b0}}, // unused inputs |
---|
1817 | lsu_tlu_rs3_data_g[`TLU_SCPD_DATA_WIDTH-1:0]}), |
---|
1818 | .rd_en (tlu_scpd_rd_vld_m), |
---|
1819 | .wr_en (tlu_scpd_wr_vld_g), |
---|
1820 | .rd_adr (tlu_scpd_rd_addr_m[`SCPD_RW_ADDR_WIDTH-1:0]), |
---|
1821 | .wr_adr (tlu_scpd_wr_addr_g[`SCPD_RW_ADDR_WIDTH-1:0]), |
---|
1822 | .nib_wr_en (20'hfffff), |
---|
1823 | .reset_l (arst_l), |
---|
1824 | .rst_tri_en (mem_write_disable), |
---|
1825 | .sehold (sehold), |
---|
1826 | .se (se), |
---|
1827 | .si (short_scan0_5), |
---|
1828 | //.clk (clk)); |
---|
1829 | .rclk (rclk)); |
---|
1830 | endmodule |
---|
1831 | // Local Variables: |
---|
1832 | // verilog-library-directories:("." "../../../srams/rtl") |
---|
1833 | // End: |
---|