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

Subversion Repositories sparc64soc

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dmitryr
// ========== Copyright Header Begin ==========================================
2
// 
3
// OpenSPARC T1 Processor File: 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:

powered by: WebSVN 2.1.0

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