source: XOpenSparcT1/trunk/T1-CPU/tlu/tlu.v @ 6

Revision 6, 88.6 KB checked in by pntsvt00, 13 years ago (diff)

versione iniziale opensparc

Line 
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T1 Processor File: tlu.v
4// Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
5// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
6//
7// The above named program is free software; you can redistribute it and/or
8// modify it under the terms of the GNU General Public
9// License version 2 as published by the Free Software Foundation.
10//
11// The above named program is distributed in the hope that it will be
12// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14// General Public License for more details.
15//
16// You should have received a copy of the GNU General Public
17// License along with this work; if not, write to the Free Software
18// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19//
20// ========== Copyright Header End ============================================
21////////////////////////////////////////////////////////////////////////
22/*
23//  Module Name:
24//      Description:    Trap Logic and Memory Management Unit (TLU) :
25//                      - Contains :
26//                              - Trap Stack Array (TSA)
27//                              - Trap Control Logic (TCL)
28//                              - Mmu internal Register Array (MRA)
29//                              - Mmu Control Logic (MCL)
30//
31*/
32////////////////////////////////////////////////////////////////////////
33// Global header file includes
34////////////////////////////////////////////////////////////////////////
35`include        "sys.h" // system level definition file which contains the
36                        // time scale definition
37
38`include        "tlu.h"
39////////////////////////////////////////////////////////////////////////
40// Local header file includes / local defines
41////////////////////////////////////////////////////////////////////////
42
43module 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, ...
121input                   rclk;                   // To tlu_int of sparc_tlu_int.v, ...
122input [3:0]             const_cpuid;            // To tlu_int of sparc_tlu_int.v, ...
123input [`ASI_VA_WIDTH-1:0] exu_lsu_ldst_va_e;    // To mmu_dp of tlu_mmu_dp.v
124input [`TLU_ASI_VA_WIDTH-1:0] lsu_tlu_ldst_va_m;        // To mmu_dp of tlu_mmu_dp.v
125input [7:0]     exu_mmu_early_va_e;     // From exu of sparc_exu.v
126input [7:0]             exu_tlu_ccr0_w;         // To tdp of tlu_tdp.v
127input [7:0]             exu_tlu_ccr1_w;         // To tdp of tlu_tdp.v
128input [7:0]             exu_tlu_ccr2_w;         // To tdp of tlu_tdp.v
129input [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
135input [2:0]             exu_tlu_cwp0;           // To tdp of tlu_tdp.v
136input [2:0]             exu_tlu_cwp1;           // To tdp of tlu_tdp.v
137input [2:0]             exu_tlu_cwp2;           // To tdp of tlu_tdp.v
138input [2:0]             exu_tlu_cwp3;           // To tdp of tlu_tdp.v
139input                   exu_tlu_cwp_cmplt;      // To tcl of tlu_tcl.v
140input [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
142input                   exu_tlu_cwp_retry;      // To tcl of tlu_tcl.v
143input                   exu_tlu_misalign_addr_jmpl_rtn_m;// To tcl of tlu_tcl.v
144input                   exu_tlu_spill;          // To tcl of tlu_tcl.v
145input [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
148input           exu_tlu_spill_other;    // From exu of sparc_exu.v
149input [2:0]     exu_tlu_spill_wtype;    // From exu of sparc_exu.v
150input [8:0]             exu_tlu_ttype_m;        // To tcl of tlu_tcl.v
151input                   exu_tlu_ttype_vld_m;    // To tcl of tlu_tcl.v
152input                   exu_tlu_ue_trap_m;// To tcl of tlu_tcl.v
153input                   exu_tlu_va_oor_jl_ret_m;// To tcl of tlu_tcl.v
154input                   exu_tlu_va_oor_m;       // To tcl of tlu_tcl.v
155input                   ffu_tlu_ill_inst_m;     // new trap from ffu
156input [1:0]             ffu_ifu_tid_w2;         // To tcl of tlu_tcl.v
157input                   ffu_tlu_trap_ieee754;   // To tcl of tlu_tcl.v
158input                   ffu_tlu_trap_other;     // To tcl of tlu_tcl.v
159input                   ffu_tlu_trap_ue;        // To tcl of tlu_tcl.v
160input                   ifu_lsu_ld_inst_e;      // To mmu_ctl of tlu_mmu_ctl.v
161input                   ifu_lsu_memref_d;       // To tcl of tlu_tcl.v
162input                   ifu_lsu_st_inst_e;      // To mmu_ctl of tlu_mmu_ctl.v
163input                   ifu_tlu_done_inst_d;    // To tcl of tlu_tcl.v
164// input                        ifu_tlu_flsh_inst_e;    // To tcl of tlu_tcl.v
165input                   ifu_tlu_flush_m;        // To tcl of tlu_tcl.v
166input                   ifu_tlu_flush_fd_w;     // To tcl of tlu_tcl.v
167input                   ifu_tlu_flush_fd2_w;    // To tcl of tlu_tcl.v
168input                   ifu_tlu_flush_fd3_w;    // To tcl of tlu_tcl.v
169input                   lsu_tlu_early_flush_w;  // To tcl of tlu_tcl.v
170input                   lsu_tlu_early_flush2_w; // To tcl of tlu_tcl.v
171input                   ifu_tlu_hwint_m;        // To tcl of tlu_tcl.v
172input                   ifu_tlu_immu_miss_m;    // To tcl of tlu_tcl.v, ...
173input                   ifu_tlu_pc_oor_e;       // To tcl of tlu_tcl.v
174input [`TLU_THRD_NUM-1:0] ifu_tlu_l2imiss;      // To tcl of tlu_tcl.v, ...
175input                   ifu_tlu_inst_vld_m;     // To tcl of tlu_tcl.v
176input                   ifu_tlu_inst_vld_m_bf1; // To tcl of tlu_tcl.v
177input                   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
180input [48:0]            ifu_tlu_npc_m;          // To tdp of tlu_tdp.v
181input [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
184input                   ifu_tlu_priv_violtn_m;  // To tcl of tlu_tcl.v
185input                   ifu_tlu_retry_inst_d;   // To tcl of tlu_tcl.v
186input                   ifu_tlu_rstint_m;       // To tcl of tlu_tcl.v
187input                   ifu_tlu_sir_inst_m;     // To tcl of tlu_tcl.v
188input                   ifu_tlu_swint_m;        // To tcl of tlu_tcl.v
189input [1:0]             ifu_tlu_thrid_d;        // To tcl of tlu_tcl.v
190input [1:0]             ifu_lsu_thrid_s;        // To tcl of tlu_tcl.v
191input [8:0]             ifu_tlu_ttype_m;        // To tcl of tlu_tcl.v
192input                   ifu_tlu_ttype_vld_m;    // To tcl of tlu_tcl.v
193input                   ifu_mmu_trap_m;     // To tcl of tlu_tcl.v
194input                   ifu_tlu_trap_m;     // To tcl of tlu_tcl.v
195input [7:0]             lsu_asi_reg0;           // To tdp of tlu_tdp.v
196input [7:0]             lsu_asi_reg1;           // To tdp of tlu_tdp.v
197input [7:0]             lsu_asi_reg2;           // To tdp of tlu_tdp.v
198input [7:0]             lsu_asi_reg3;           // To tdp of tlu_tdp.v
199input [`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
201input           lsu_tlu_async_ttype_vld_g; // lsu asynchronous trap valid
202input           lsu_tlu_defr_trp_taken_g; // lsu asynchronous trap valid
203input           lsu_mmu_defr_trp_taken_g; // lsu asynchronous trap valid
204input [6:0]     lsu_tlu_async_ttype_g;  // lsu asynchronous trap type
205input [1:0]     lsu_tlu_async_tid_g; // asynchronous trap - thread
206input [3:0]             lsu_tlu_cpx_req;        // To tlu_int of sparc_tlu_int.v
207input                   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
209input                   lsu_tlu_daccess_excptn_g;// To tcl of tlu_tcl.v, ...
210input                   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
212input                   lsu_tlu_dmmu_miss_g;    // To tcl of tlu_tcl.v, ...
213input [12:0]    lsu_tlu_dside_ctxt_m;   // To mmu_dp of tlu_mmu_dp.v
214input                   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
217input [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;
220input [`TLU_THRD_NUM-1:0] ctu_sscan_tid;
221input                   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
223input [12:0]    lsu_tlu_pctxt_m;        // To mmu_dp of tlu_mmu_dp.v
224input                   lsu_tlu_pcxpkt_ack;     // To tlu_int of sparc_tlu_int.v
225input                   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
228input [63:0]    lsu_tlu_st_rs3_data_g;  // To tlu_int of sparc_tlu_int.v, ...
229input [63:0]    lsu_tlu_rs3_data_g;     // To tlu_int of sparc_tlu_int.v, ...
230// added for timing
231input [1:0]             lsu_tlu_tlb_access_tid_m;// To mmu_ctl of tlu_mmu_ctl.v
232input [7:0]             lsu_tlu_tlb_asi_state_m;// To mmu_ctl of tlu_mmu_ctl.v
233input [47:13]   lsu_tlu_tlb_dmp_va_m;   // To mmu_dp of tlu_mmu_dp.v
234input                   lsu_tlu_tlb_ld_inst_m;  // To mmu_ctl of tlu_mmu_ctl.v
235input [10:0]    lsu_tlu_tlb_ldst_va_m;  // To mmu_ctl of tlu_mmu_ctl.v
236input                   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
238input [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
241input                   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
244input                   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, ...
248input                   grst_l;                 // To tcl of tlu_tcl.v, ...
249input                   arst_l;                 // To tcl of tlu_tcl.v, ...
250// input                        rst_tri_en;     // To tcl of tlu_tcl.v, ...
251input                   mem_write_disable;      // To tcl of tlu_tcl.v, ...
252input                   mux_drive_disable;      // To tcl of tlu_tcl.v, ...
253// input                        testmode_l;     // To tcl of tlu_tcl.v, ...
254input                   sehold;                 // To tlu_int of sparc_tlu_int.v, ...
255input                   se;                     // To tlu_int of sparc_tlu_int.v, ...
256input                   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.
259input   [`TLU_ASR_ADDR_WIDTH-1:0] ifu_tlu_sraddr_d;      // addr of sr(st/pr)
260input   [`TLU_ASR_ADDR_WIDTH-1:0] ifu_tlu_sraddr_d_v2;   // addr of sr(st/pr)
261input           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)
264input           lsu_tlu_wsr_inst_e ;    // valid wr sr(st/pr)
265input   [63:0]  exu_tlu_wsr_data_m ;    // pr/st data to irf.
266
267// input   [1:0]   ifu_tlu_thrid_e ;    // Thread id.
268input   [7:0]   lsu_tlu_rsr_data_e ;    // sr/pr rd data from lsu.
269
270input                   ifu_lsu_alt_space_e;    // alt-space access
271input               ifu_tlu_alt_space_d;        // alt-space access - d stage
272input           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
276input                   ifu_tlu_imiss_e;            // icache misses -- New interface 
277input [3:0]             lsu_tlu_dcache_miss_w2; // dcache miss -- new interface
278input [3:0]             lsu_tlu_l2_dmiss;           // l2 misses -- new interface
279input [3:0]             lsu_tlu_stb_full_w2;    // store buffer full -- new interface
280input [1:0]             ffu_tlu_fpu_tid;            // ThrdID for the FF instr_cmplt -- new
281input           ffu_tlu_fpu_cmplt;          // FF instru complete -- new
282//
283// New trap from SPU
284// removed for timing fix
285input           spu_tlu_rsrv_illgl_m;   // illegal instruction from SPU
286input  [2:0]    lsu_pid_state0 ;        // pid thread0 ; global use
287input  [2:0]    lsu_pid_state1 ;        // pid thread1 ; global use
288input  [2:0]    lsu_pid_state2 ;        // pid thread2 ; global use
289input  [2:0]    lsu_pid_state3 ;        // pid thread3 ; global use
290// input [48:0] ifu_tlu_pc_w;
291
292input           lsu_tlu_nucleus_ctxt_m ;// access is nucleus context
293input  [2:0]    lsu_tlu_tte_pg_sz_g ;   // page-size of tte
294input   [3:0]   ifu_lsu_error_inj ;     // inject parity error into tlb
295input   [8:0]   ifu_lsu_imm_asi_d;      // asi state value from imm
296input           ifu_lsu_imm_asi_vld_d;  // valid asi state value from imm
297
298input   [23:0]  lsu_dsfsr_din_g ;       // now from lsu instead of tlu_tcl
299input   [3:0]   lsu_dmmu_sfsr_trp_wr ;  // now from lsu instead of tlu_tcl
300
301input           lsu_mmu_flush_pipe_w ; // full trap
302
303input           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)
308output [63:0]   tlu_lsu_int_ldxa_data_w2; // From tlu_int of sparc_tlu_int.v
309output                  tlu_lsu_int_ld_ill_va_w2; // From tlu_int of sparc_tlu_int.v
310output                  tlu_lsu_int_ldxa_vld_w2; // From tlu_int of sparc_tlu_int.v
311output                  so0,so1,short_so0,short_so1;                    // From tlu_int of sparc_tlu_int.v, ...
312output                  tlu_dtlb_data_rd_g;     // From mmu_ctl of tlu_mmu_ctl.v
313output                  tlu_dtlb_dmp_actxt_g;   // From mmu_ctl of tlu_mmu_ctl.v
314output                  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
316output                  tlu_dtlb_dmp_nctxt_g;   // From mmu_ctl of tlu_mmu_ctl.v
317output                  tlu_dtlb_dmp_pctxt_g;   // From mmu_ctl of tlu_mmu_ctl.v
318output                  tlu_dtlb_dmp_sctxt_g;   // From mmu_ctl of tlu_mmu_ctl.v
319output                  tlu_dtlb_dmp_vld_g;     // From mmu_ctl of tlu_mmu_ctl.v
320output                  tlu_dtlb_invalidate_all_g;// From mmu_ctl of tlu_mmu_ctl.v
321output [5:0]    tlu_dtlb_rw_index_g;    // From mmu_ctl of tlu_mmu_ctl.v
322output                  tlu_dtlb_rw_index_vld_g;// From mmu_ctl of tlu_mmu_ctl.v
323output                  tlu_dtlb_tag_rd_g;      // From mmu_ctl of tlu_mmu_ctl.v
324output [42:0]   tlu_dtlb_tte_data_w2;   // From mmu_dp of tlu_mmu_dp.v
325output [58:0]   tlu_dtlb_tte_tag_w2;    // From mmu_dp of tlu_mmu_dp.v
326output[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
330output [`TSA_GLOBAL_WIDTH-1:0] tlu_exu_agp;             // From tcl of tlu_tcl.v
331output                  tlu_exu_agp_swap;       // From tcl of tlu_tcl.v
332output [1:0]    tlu_exu_agp_tid;        // From tcl of tlu_tcl.v
333output [7:0]    tlu_exu_ccr_m;          // From tcl of tlu_tcl.v
334output [2:0]    tlu_exu_cwp_m;          // From tcl of tlu_tcl.v
335output                  tlu_exu_cwp_retry_m;    // From tcl of tlu_tcl.v
336output                  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
340output [`TLU_ASR_DATA_WIDTH-1:0] tlu_exu_rsr_data_m;     // From tdp of tlu_tdp.v
341output [40:0]   tlu_idtlb_dmp_key_g;    // From mmu_dp of tlu_mmu_dp.v
342output [1:0]    tlu_idtlb_dmp_thrid_g;  // From mmu_ctl of tlu_mmu_ctl.v
343output [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
346output                  tlu_ifu_nukeint_i2;     // From tlu_int of sparc_tlu_int.v
347output [3:0]    tlu_ifu_pstate_ie;      // From tlu_int of sparc_tlu_int.v
348output [3:0]    tlu_ifu_pstate_pef;     // From tdp of tlu_tdp.v
349output                  tlu_ifu_resumint_i2;    // From tlu_int of sparc_tlu_int.v
350output                  tlu_ifu_rstint_i2;      // From tlu_int of sparc_tlu_int.v
351output [3:0]    tlu_ifu_rstthr_i2;      // From tlu_int of sparc_tlu_int.v
352output [1:0]    tlu_ifu_trap_tid_w1;    // From tcl of tlu_tcl.v
353output                  tlu_ifu_trapnpc_vld_w1; // From tdp of tlu_tdp.v
354output [48:0]   tlu_ifu_trapnpc_w2;     // From tdp of tlu_tdp.v
355output [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
358output                  tlu_ifu_trappc_vld_w1;  // From tcl of tlu_tcl.v
359output                  tlu_itlb_data_rd_g;     // From mmu_ctl of tlu_mmu_ctl.v
360output                  tlu_itlb_dmp_actxt_g;   // From mmu_ctl of tlu_mmu_ctl.v
361output                  tlu_itlb_dmp_all_g;     // From mmu_ctl of tlu_mmu_ctl.v
362output                  tlu_itlb_dmp_nctxt_g;   // From mmu_ctl of tlu_mmu_ctl.v
363output                  tlu_itlb_dmp_vld_g;     // From mmu_ctl of tlu_mmu_ctl.v
364output                  tlu_itlb_invalidate_all_g;// From mmu_ctl of tlu_mmu_ctl.v
365output [5:0]    tlu_itlb_rw_index_g;    // From mmu_ctl of tlu_mmu_ctl.v
366output                  tlu_itlb_rw_index_vld_g;// From mmu_ctl of tlu_mmu_ctl.v
367output                  tlu_itlb_tag_rd_g;      // From mmu_ctl of tlu_mmu_ctl.v
368output [42:0]   tlu_itlb_tte_data_w2;   // From mmu_dp of tlu_mmu_dp.v
369output [58:0]   tlu_itlb_tte_tag_w2;    // From mmu_dp of tlu_mmu_dp.v
370output                  tlu_itlb_wr_vld_g;      // From mmu_ctl of tlu_mmu_ctl.v
371output [7:0]    tlu_lsu_asi_m;          // From tcl of tlu_tcl.v
372output                  tlu_lsu_asi_update_m;   // From tcl of tlu_tcl.v
373// replaced by shadow scan signals
374output [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
377output [1:0]    tlu_lsu_ldxa_tid_w2;    // From mmu_ctl of tlu_mmu_ctl.v
378output [25:0]   tlu_lsu_pcxpkt;         // From tlu_int of sparc_tlu_int.v
379output [3:0]    tlu_lsu_pstate_am;      // From tcl of tlu_tcl.v
380output [3:0]    tlu_lsu_pstate_cle;     // From tdp of tlu_tdp.v
381output [3:0]    tlu_lsu_pstate_priv;    // From tdp of tlu_tdp.v
382output [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
384output [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
386output                  tlu_lsu_stxa_ack;       // From mmu_ctl of tlu_mmu_ctl.v
387output [1:0]    tlu_lsu_stxa_ack_tid;   // From mmu_ctl of tlu_mmu_ctl.v
388output [1:0]    tlu_lsu_tid_m;          // From tcl of tlu_tcl.v
389output [`TLU_THRD_NUM-1:0] tlu_lsu_tl_zero;     // From tcl of tlu_tcl.v
390output [`TLU_THRD_NUM-1:0] tlu_sftint_vld; // From tcl of tlu_tcl.v
391output [`TLU_THRD_NUM-1:0] tlu_hintp_vld;  // From tcl of tlu_tcl.v
392output [`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
397output tlu_early_flush_pipe_w;  // From tcl of tlu_tcl.v
398output tlu_early_flush_pipe2_w; // From tcl of tlu_tcl.v
399output tlu_exu_early_flush_pipe_w;      // From tcl of tlu_tcl.v
400output tlu_lsu_ldxa_async_data_vld ; // tlu_lsu_ldxa_data_vld is for async op.
401output [`TLU_THRD_NUM-1:0] tlu_hpstate_priv;
402output [`TLU_THRD_NUM-1:0] tlu_hpstate_enb;
403// added for hpstate.ibe ECO
404output [`TLU_THRD_NUM-1:0] tlu_hpstate_ibe;
405output tlu_exu_priv_trap_m; // local traps send to exu
406output tlu_lsu_priv_trap_m; // local traps send to exu
407// output tlu_lsu_priv_trap_w; // local traps send to exu
408output tlu_exu_pic_onebelow_m; // local traps send to exu
409output tlu_exu_pic_twobelow_m; // local traps send to exu
410//
411// added for MMU performance enhancement
412output          lsu_exu_ldxa_m ;
413output  [63:0]  lsu_exu_ldxa_data_g ;
414// Added to shift dsfsr logic from tlu to lsu.
415output  [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
420wire            tlu_rst;   // local active high reset - from tlu_tcl                 
421wire            rclk;      // temprary clock name
422wire [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                 
424wire            int_rst_l; // local active high reset - from tlu_tcl                 
425// wire            pib_rst_l; // local active high reset - from tlu_tcl                 
426wire [1:0]              tlu_incr_tick;          // From tcl of tlu_tcl.v
427wire [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
429wire [61:0]             tlu_incr64_dout;        // To tdp of tlu_tdp.v
430wire [61:0]             tlu_tick_incr_din;      // From tdp of tlu_tdp.v
431wire                    tlu_tick_ctl_din;               // To tlu_int of sparc_tlu_int.v
432// modified for bug 3017
433wire [48:0]             tlu_restore_pc_w1;
434wire [48:0]             tlu_restore_npc_w1;
435wire [48:0]             tlu_pc_new_w;
436wire [48:0]             tlu_npc_new_w;
437wire [33:0]             tlu_partial_trap_pc_w1; 
438wire [1:0]              tlu_int_tid_m;          // To tlu_int of sparc_tlu_int.v
439wire [3:0]              tlu_sftint_vld;         // From tcl of tlu_tcl.v
440wire                    tlu_asi_write_g;        // From hyperv of tlu_hyperv.v
441wire                    tlu_tte_real_g ;        // tte is real
442wire [`TLU_THRD_NUM-1:0] tlu_hpstate_tlz;
443wire [`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;
447wire [`TSA_MEM_WIDTH-1:0] tsa0_dout;
448wire [`TSA_MEM_WIDTH-1:0] tsa1_dout;
449   
450/*AUTOWIRE*/
451// Beginning of automatic wires (for undeclared instantiated-module outputs)
452wire [`TLU_ASR_DATA_WIDTH-1:0]          tlu_wsr_data_w; // From tdp of tlu_tdp.v
453wire                    dmmu_any_sfsr_wr;       // From mmu_ctl of tlu_mmu_ctl.v
454wire [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
456wire [3:0]              dmmu_sfsr_wr_en_l;      // From mmu_ctl of tlu_mmu_ctl.v
457wire                    immu_any_sfsr_wr;       // From mmu_ctl of tlu_mmu_ctl.v
458wire [3:0]              immu_sfsr_trp_wr;       // From tcl of tlu_tcl.v
459wire [3:0]              immu_sfsr_wr_en_l;      // From mmu_ctl of tlu_mmu_ctl.v
460wire [5:0]              int_tlu_rstid_m;        // From tlu_int of sparc_tlu_int.v
461wire                    itlb_wr_vld_g;          // From mmu_ctl of tlu_mmu_ctl.v
462wire [7:0]              lsu_tlu_rsr_data_mod_e; // From tcl of tlu_tcl.v
463wire [19:0]             mra_byte_wen;           // From mmu_ctl of tlu_mmu_ctl.v
464wire [3:0]              mra_rd_ptr;             // From mmu_ctl of tlu_mmu_ctl.v
465wire                    mra_rd_vld;             // From mmu_ctl of tlu_mmu_ctl.v
466wire [159:10]           mra_rdata;              // From mra of tlu_mra.v
467wire [155:0]            mra_wdata;              // From mmu_dp of tlu_mmu_dp.v
468wire [3:0]              mra_wr_ptr;             // From mmu_ctl of tlu_mmu_ctl.v
469wire                    mra_wr_vld;             // From mmu_ctl of tlu_mmu_ctl.v
470wire [2:0]              tag_access_wdata_sel;   // From mmu_ctl of tlu_mmu_ctl.v
471wire                    tlb_access_rst_l;       // From mmu_ctl of tlu_mmu_ctl.v
472wire                    tlu_addr_msk_g;         // From tcl of tlu_tcl.v
473wire                    tlu_admp_key_sel;       // From mmu_ctl of tlu_mmu_ctl.v
474wire                    tlu_clr_sftint_l_g;     // From tcl of tlu_tcl.v
475wire [4:0]              tlu_dmp_key_vld_g;      // From mmu_ctl of tlu_mmu_ctl.v
476wire [2:0]      tlu_true_pc_sel_w;
477wire [48:0]     ifu_npc_w;
478wire [3:0]              tlu_dsfsr_flt_vld;      // From mmu_dp of tlu_mmu_dp.v
479wire [47:13]    tlu_dtag_access_w2;     // From mmu_dp of tlu_mmu_dp.v
480wire [3:0]              tlu_dtsb_size_w2;       // From mmu_dp of tlu_mmu_dp.v
481wire                    tlu_dtsb_split_w2;      // From mmu_dp of tlu_mmu_dp.v
482wire [1:0]              tlu_agp_tid_w2;     // From tcl of tlu_tcl.v
483wire [`TSA_TTYPE_WIDTH-1:0] tlu_final_offset_w1;        // From tcl of tlu_tcl.v
484wire [`TSA_TTYPE_WIDTH-1:0] tlu_final_ttype_w2; // From tcl of tlu_tcl.v
485wire                    tlu_full_flush_pipe_w2; // From tcl of tlu_tcl.v
486wire            tlu_tcc_inst_w; // From tcl of tlu_tcl.v
487wire                    tlu_local_flush_w;      // From tcl of tlu_tcl.v
488wire [47:0]             tlu_idtsb_8k_ptr;       // From mmu_ctl of tlu_mmu_ctl.v
489wire                    tlu_asi_data_nf_vld_w2; // From mmu_ctl of tlu_mmu_ctl.v
490wire                    tlu_inst_vld_nq_m;              // From tcl of tlu_tcl.v
491wire                    tlu_int_asi_load;       // From mmu_ctl of tlu_mmu_ctl.v
492wire [1:0]              tlu_int_asi_thrid;      // From mmu_ctl of tlu_mmu_ctl.v
493wire                    tlu_int_asi_vld;        // From mmu_ctl of tlu_mmu_ctl.v
494wire [3:0]              tlu_int_pstate_ie;      // From tdp of tlu_tdp.v
495wire [3:0]              tlu_int_redmode;        // From tdp of tlu_tdp.v
496wire [23:0]             tlu_isfsr_din_g;        // From tcl of tlu_tcl.v
497wire [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
499wire [3:0]              tlu_itsb_size_w2;       // From mmu_dp of tlu_mmu_dp.v
500wire                    tlu_itsb_split_w2;      // From mmu_dp of tlu_mmu_dp.v
501wire [3:0]              tlu_ldxa_l1mx1_sel;     // From mmu_ctl of tlu_mmu_ctl.v
502wire [3:0]              tlu_ldxa_l1mx2_sel;     // From mmu_ctl of tlu_mmu_ctl.v
503wire [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
505wire [3:0]              tlu_pil;                // From tcl of tlu_tcl.v
506wire                    tlu_tlb_tag_invrt_parity ; 
507wire                    tlu_tlb_data_invrt_parity ; 
508wire                  tlu_sun4r_tte_g ;       // sun4r vs. sun4v tte
509//
510// modified for bug 1767
511/*
512wire [1:0]              tlu_pstate0_mmodel;     // From tdp of tlu_tdp.v
513wire [1:0]              tlu_pstate1_mmodel;     // From tdp of tlu_tdp.v
514wire [1:0]              tlu_pstate2_mmodel;     // From tdp of tlu_tdp.v
515wire [1:0]              tlu_pstate3_mmodel;     // From tdp of tlu_tdp.v
516wire [`TLU_THRD_NUM-1:0] tlu_pstate_tle;                // From tdp of tlu_tdp.v
517wire [`TLU_THRD_NUM-1:0] tlu_pstate_cle;                // From tdp of tlu_tdp.v
518*/
519wire [`TLU_THRD_NUM-1:0] tlu_pstate_am;         // From tdp of tlu_tdp.v
520wire [1:0]              tlu_pstate_din_sel0;    // From tcl of tlu_tcl.v
521wire [1:0]              tlu_pstate_din_sel1;    // From tcl of tlu_tcl.v
522wire [1:0]              tlu_pstate_din_sel2;    // From tcl of tlu_tcl.v
523wire [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/*
529wire                    tlu_select_alt_global;  // From tcl of tlu_tcl.v
530wire                    tlu_select_int_global;  // From tcl of tlu_tcl.v
531wire                    tlu_select_mmu_global;  // From tcl of tlu_tcl.v
532wire [1:0]              tlu_select_mmodel;      // From tcl of tlu_tcl.v
533wire                    tlu_select_tle;         // From tcl of tlu_tcl.v
534*/
535wire                    tlu_select_redmode;     // From tcl of tlu_tcl.v
536// wire                 tlu_select_tba_g;       // From tcl of tlu_tcl.v
537wire                    tlu_select_tba_w2;      // From tcl of tlu_tcl.v
538wire                    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
541wire                    tlu_set_sftint_l_g;     // From tcl of tlu_tcl.v
542wire [`TLU_THRD_NUM-1:0] tlu_sftint_en_l_g;     // From tcl of tlu_tcl.v
543wire [`TLU_THRD_NUM-1:0] tlu_sftint_mx_sel;     // From tcl of tlu_tcl.v
544wire [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
546wire [3:0]              tlu_sftint_penc_sel;    // From tcl of tlu_tcl.v
547wire [3:0]              tlu_slxa_thrd_sel;      // From mmu_ctl of tlu_mmu_ctl.v
548wire [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
550wire [`TLU_THRD_NUM-1:0] tlu_tba_en_l;          // From tcl of tlu_tcl.v
551wire [`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
554wire [`TLU_THRD_NUM-1:0] tlu_thrd_wsel_w2;      // From tcl of tlu_tcl.v
555wire [`TLU_THRD_NUM-1:0] tlu_thread_wsel_g;     // From tcl of tlu_tcl.v
556wire [`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
558wire                    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
562wire                    tlu_tick_npt;           // From tcl of tlu_tcl.v
563wire [`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
565wire [`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
567wire                    tlu_tl_gt_0_w2;         // From tcl of tlu_tcl.v
568wire [2:0]              tlu_trp_lvl;            // From tcl of tlu_tcl.v
569wire [2:0]              tlu_tte_tag_g;          // From mmu_ctl of tlu_mmu_ctl.v
570wire [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
572wire [`TLU_THRD_NUM-1:0] tlu_update_pc_l_w;     // From tcl of tlu_tcl.v
573wire [`TLU_THRD_NUM-1:0] tlu_trap_cwp_en;       // From tcl of tlu_tcl.v
574wire 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
577wire [3:0]              tlu_update_pstate_l_w2; // From tcl of tlu_tcl.v
578wire                    tlu_wr_sftint_l_g;      // From tcl of tlu_tcl.v
579// wire                 tlu_wsr_inst_g;         // From tcl of tlu_tcl.v
580wire                    tlu_wsr_inst_nq_g;              // From tcl of tlu_tcl.v
581// wire                 tlu_wr_tsa_inst_g;      // From tcl of tlu_tcl.v
582wire                    tlu_wr_tsa_inst_w2;     // From tcl of tlu_tcl.v
583wire                    tsa_npc_en;             // From tcl of tlu_tcl.v
584wire                    tsa_pc_en;              // From tcl of tlu_tcl.v
585wire [1:0]              tsa_rd_tid;             // From tcl of tlu_tcl.v
586wire [2:0]              tsa_rd_tpl;             // From tcl of tlu_tcl.v
587wire                    tsa_rd_vld_e;   // From tcl of tlu_tcl.v
588wire                    tsa_rd_en;              // From tcl of tlu_tcl.v
589// wire [`TLU_TSA_WIDTH-1:0]            tsa_rdata;              // From tsa of tlu_tsa.v
590wire                    tsa_tstate_en;          // From tcl of tlu_tcl.v
591wire                    tsa_htstate_en;         // From tlu_hyperv of tlu_hyperv.v
592wire                    tsa_ttype_en;           // From tcl of tlu_tcl.v
593wire [`TLU_TSA_WIDTH-1:0]               tsa_wdata;              // From tdp of tlu_tdp.v
594wire [1:0]              tsa_wr_tid;             // From tcl of tlu_tcl.v
595wire [2:0]              tsa_wr_tpl;             // From tcl of tlu_tcl.v
596// modified due to tsa memory swap
597wire [1:0]              tsa_wr_vld;             // From tcl of tlu_tcl.v
598wire                    tlu_htstate_rw_d;  // From tlu_hyperv of tlu_hyperv.v
599wire                    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
602wire                    tlu_htickcmp_rw_e; // From tlu_hyperv of tlu_hyperv.v
603// End of automatics
604wire [`TLU_ASI_QUE_WIDTH-1:0] tlu_asi_queue_rdata_g;   
605wire tlu_asi_queue_rd_vld_g;   
606wire tlu_ld_data_vld_g; 
607wire 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 ;
612wire [3:0]              pib_priv_act_trap_m ;
613// wire [`QUE_TRAP_SEL_WIDTH-1:0] tlu_que_trap_sel_m;
614wire [5:0] tlu_ctxt_cfg_w2;     // To mmu_ctl of tlu_mmu_ctl.v
615wire [`TLU_THRD_NUM-1:0] pib_picl_wrap;         // To tcl of tlu_tcl.v
616wire [`TLU_THRD_NUM-1:0] pib_pich_wrap;         // To tcl of tlu_tcl.v
617wire [`TLU_THRD_NUM-1:0] pich_wrap_flg;         // To tcl of tlu_tcl.v
618wire [`TLU_THRD_NUM-1:0] pich_onebelow_flg;             // To tcl of tlu_tcl.v
619wire [`TLU_THRD_NUM-1:0] pich_twobelow_flg;             // To tcl of tlu_tcl.v
620wire tlu_pic_onebelow_e;                // To tcl of tlu_tcl.v
621wire tlu_pic_twobelow_e;                // To tcl of tlu_tcl.v
622wire tlu_pic_wrap_e;            // To tcl of tlu_tcl.v
623//
624// modified for bug 5436: Niagara 2.0
625wire [`TLU_THRD_NUM-1:0] tlu_pcr_ut;            // To tcl of tlu_tcl.v
626wire [`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
629wire 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
633wire [`TSA_GLOBAL_WIDTH-1:0] tlu_dnrtry_global_g;
634// wire tlu_htick_match;
635// wire tlu_stick_match;
636wire tlu_trap_hpstate_enb;
637wire [`TLU_THRD_NUM-1:0] local_hpstate_priv;
638wire [`TLU_THRD_NUM-1:0] tcl_hpstate_priv;
639wire [`TLU_THRD_NUM-1:0] local_hpstate_enb;
640wire [`TLU_THRD_NUM-1:0] tcl_hpstate_enb;
641wire [`TLU_THRD_NUM-1:0] local_pstate_priv;
642wire [`TLU_THRD_NUM-1:0] local_pstate_ie;
643
644wire [`TSA_GLOBAL_WIDTH-1:0] tlu_gl_lvl0;
645wire [`TSA_GLOBAL_WIDTH-1:0] tlu_gl_lvl1;
646wire [`TSA_GLOBAL_WIDTH-1:0] tlu_gl_lvl2;
647wire [`TSA_GLOBAL_WIDTH-1:0] tlu_gl_lvl3;
648// wire [`TLU_THRD_NUM-1:0] tlu_hintp_en_l_g;
649wire [`TLU_THRD_NUM-1:0] tlu_htba_en_l;
650wire [`TLU_THRD_NUM-1:0] tlu_htickcmp_en_l;
651// wire [`TLU_THRD_NUM-1:0] tlu_set_hintp_g;
652wire [`TLU_THRD_NUM-1:0] tlu_set_hintp_sel_g;
653wire [`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;
656wire [`TLU_THRD_NUM-1:0] tlu_update_hpstate_l_w2;
657wire [`TLU_THRD_NUM-1:0] tlu_wr_hintp_g;
658wire [`TLU_THRD_NUM-1:0] tlu_cpu_mondo_cmp; 
659wire [`TLU_THRD_NUM-1:0] tlu_dev_mondo_cmp; 
660wire [`TLU_THRD_NUM-1:0] tlu_resum_err_cmp; 
661wire [`TLU_THRD_NUM-1:0] tlu_hintp;
662wire [1:0] tlu_hpstate_din_sel0;
663wire [1:0] tlu_hpstate_din_sel1;
664wire [1:0] tlu_hpstate_din_sel2;
665wire [1:0] tlu_hpstate_din_sel3;
666wire [4:0] tlu_hyperv_rdpr_sel;
667wire [2:0] tlu_rdpr_mx1_sel;
668wire [2:0] tlu_rdpr_mx2_sel;
669wire [1:0] tlu_rdpr_mx3_sel;
670wire [1:0] tlu_rdpr_mx4_sel;
671wire [2:0] tlu_rdpr_mx5_sel;
672wire [2:0] tlu_rdpr_mx6_sel;
673wire [3:0] tlu_rdpr_mx7_sel;
674// modified for timing
675// wire tlu_ibrkpt_trap_g;
676wire tlu_ibrkpt_trap_w2;
677// wire tlu_select_htba_g;
678// wire tlu_select_htba_w2;
679wire [2:0] tlu_pc_mxsel_w2;
680// wire       tlu_stickcmp_intdis;
681wire       tlu_htickcmp_intdis;
682// wire       tlu_gl_rw_g;     
683wire       tlu_gl_rw_m;         
684wire [`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;
688wire [`TLU_THRD_NUM-1:0] tlu_thrd_traps_w2; 
689wire tlu_dnrtry0_inst_g, tlu_dnrtry1_inst_g;
690wire tlu_dnrtry2_inst_g, tlu_dnrtry3_inst_g;
691wire tlu_scpd_rd_vld_m; // tlu_scpd_rd_vld_g;
692wire tlu_scpd_wr_vld_g;
693wire tlu_hscpd_dacc_excpt_m;
694wire tlu_qtail_dacc_excpt_m;
695wire [`SCPD_RW_ADDR_WIDTH-1:0]  tlu_scpd_rd_addr_m;
696wire [`SCPD_RW_ADDR_WIDTH-1:0]  tlu_scpd_wr_addr_g;
697wire [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
702wire [3:0]              tlu_asi_rdata_mxsel_g;  // From intctl of sparc_tlu_intctl.v
703wire [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
705wire [3:0]              tlu_local_thrid_g;      // From intctl of sparc_tlu_intctl.v
706wire [3:0]              inc_ind_asi_wr_indr;    // From intctl of sparc_tlu_intctl.v
707wire [3:0]              inc_ind_asi_wr_inrr;    // From intctl of sparc_tlu_intctl.v
708wire [3:0]              inc_ind_indr_grant;     // From intctl of sparc_tlu_intctl.v
709wire [3:0]              inc_ind_ld_int_i1;      // From intctl of sparc_tlu_intctl.v
710wire [3:0]              inc_ind_rstthr_i1;      // From intctl of sparc_tlu_intctl.v
711wire [3:0]              inc_ind_thr_m;  // From intctl of sparc_tlu_intctl.v
712wire [1:0]              inc_indr_req_thrid;     // From intctl of sparc_tlu_intctl.v
713wire                    inc_indr_req_valid;     // From intctl of sparc_tlu_intctl.v
714wire [4:0]              ind_inc_thrid_i1;       // From intdp of sparc_tlu_intdp.v
715wire [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
717wire [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
721wire [12:0]             tlu_tag_access_ctxt_g ;
722wire                    tlu_lng_ltncy_en_l ;
723wire                    tlu_tsb_rd_ps0_sel ;
724wire [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.
739wire [9:0]              dummy_mra_rdata;
740
741//=====================================================================================
742
743
744/*
745sparc_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/*
755sparc_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*/
793sparc_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
826sparc_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
873tlu_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
935tlu_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
1145tlu_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
1275bw_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
1295bw_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
1320tlu_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/*
1325zzinc64 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
1331tlu_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/*
1472tlu_mmu_dp AUTO_TEMPLATE ();
1473*/
1474
1475
1476tlu_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
1543tlu_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/*
1654bw_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
1670bw_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/*
1712tlu_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*/
1737tlu_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/*
1797tlu_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*/
1811bw_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));
1830endmodule
1831// Local Variables:
1832// verilog-library-directories:("." "../../../srams/rtl")
1833// End:
Note: See TracBrowser for help on using the repository browser.