// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: tlu_ras_ctl.v
// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
// For the avoidance of doubt, and except that if any non-GPL license
// choice is available it will apply instead, Sun elects to use only
// the General Public License version 2 (GPLv2) at this time for any
// software where a choice of GPL license versions is made
// available with the language indicating that GPLv2 or any later version
// may be used, or where a choice of which version of the GPL is applied is
// otherwise unspecified.
// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or
// ========== Copyright Header End ============================================
wire [1:0] twocycle_inst_m;
wire twocycle_inst_b_lat_scanin;
wire twocycle_inst_b_lat_scanout;
wire [1:0] ptwocycle_inst_b;
wire [1:0] twocycle_inst_b;
wire inst_valid_b_lat_scanin;
wire inst_valid_b_lat_scanout;
wire [1:0] inst_valid_w_in;
wire inst_valid_w_lat_scanin;
wire inst_valid_w_lat_scanout;
wire [1:0] pre_inst_valid_w;
wire [7:0] block_store_w_in;
wire block_store_w_lat_scanin;
wire block_store_w_lat_scanout;
wire [7:0] pblock_store_w;
wire [7:0] block_store_w;
wire fgu_inst_b_lat_scanin;
wire fgu_inst_b_lat_scanout;
wire fgu_inst_w_lat_scanin;
wire fgu_inst_w_lat_scanout;
wire lsu_inst_b_lat_scanin;
wire lsu_inst_b_lat_scanout;
wire i_isfsr1_b_lat_scanin;
wire i_isfsr1_b_lat_scanout;
wire i_isfsr0_b_lat_scanin;
wire i_isfsr0_b_lat_scanout;
wire i_desr1_b_lat_scanin;
wire i_desr1_b_lat_scanout;
wire i_desr0_b_lat_scanin;
wire i_desr0_b_lat_scanout;
wire irf0_ecc_addr_b_lat_scanin;
wire irf0_ecc_addr_b_lat_scanout;
wire [4:0] irf0_ecc_addr_b;
wire irf1_ecc_addr_b_lat_scanin;
wire irf1_ecc_addr_b_lat_scanout;
wire [4:0] irf1_ecc_addr_b;
wire irf0_ecc_check_b_lat_scanin;
wire irf0_ecc_check_b_lat_scanout;
wire [7:0] irf0_ecc_check_b;
wire irf1_ecc_check_b_lat_scanin;
wire irf1_ecc_check_b_lat_scanout;
wire [7:0] irf1_ecc_check_b;
wire i_isfsr1_w_lat_scanin;
wire i_isfsr1_w_lat_scanout;
wire i_isfsr0_w_lat_scanin;
wire i_isfsr0_w_lat_scanout;
wire i_desr1_w_lat_scanin;
wire i_desr1_w_lat_scanout;
wire i_desr0_w_lat_scanin;
wire i_desr0_w_lat_scanout;
wire seen_bsee_lat_scanin;
wire seen_bsee_lat_scanout;
wire irf0_ecc_addr_w_lat_scanin;
wire irf0_ecc_addr_w_lat_scanout;
wire [4:0] irf0_ecc_addr_w;
wire irf1_ecc_addr_w_lat_scanin;
wire irf1_ecc_addr_w_lat_scanout;
wire [4:0] irf1_ecc_addr_w;
wire irf0_ecc_check_w_lat_scanin;
wire irf0_ecc_check_w_lat_scanout;
wire [7:0] irf0_ecc_check_w;
wire irf1_ecc_check_w_lat_scanin;
wire irf1_ecc_check_w_lat_scanout;
wire [7:0] irf1_ecc_check_w;
wire frf_ecc_addr_w_lat_scanin;
wire frf_ecc_addr_w_lat_scanout;
wire [5:0] frf_ecc_addr_w;
wire frf_ecc_check_w_lat_scanin;
wire frf_ecc_check_w_lat_scanout;
wire [13:0] frf_ecc_check_w;
wire [2:0] pipe_dsfsr1_w;
wire [2:0] pipe_dsfsr0_w;
wire [19:0] pipe_dsfar1_w;
wire [19:0] pipe_dsfar0_w;
wire tid1_w1_lat_scanout;
wire tid0_w1_lat_scanout;
wire pipe_dsfsr1_lat_scanin;
wire pipe_dsfsr1_lat_scanout;
wire pipe_dsfsr0_lat_scanin;
wire pipe_dsfsr0_lat_scanout;
wire pipe_dsfar1_lat_scanin;
wire pipe_dsfar1_lat_scanout;
wire pipe_dsfar0_lat_scanin;
wire pipe_dsfar0_lat_scanout;
wire [19:0] pipe_dsfar_7;
wire [19:0] pipe_dsfar_6;
wire [19:0] pipe_dsfar_5;
wire [19:0] pipe_dsfar_4;
wire [19:0] pipe_dsfar_3;
wire [19:0] pipe_dsfar_2;
wire [19:0] pipe_dsfar_1;
wire [19:0] pipe_dsfar_0;
wire [7:0] dsfar_sel_lsu_va_for_error;
wire load_dsfar_lat_scanin;
wire load_dsfar_lat_scanout;
wire [3:0] i_desr1_w1_in;
wire [3:0] i_desr0_w1_in;
wire i_desr1_w1_lat_scanin;
wire i_desr1_w1_lat_scanout;
wire i_desr0_w1_lat_scanin;
wire i_desr0_w1_lat_scanout;
wire [5:0] pipe_desr_et_7;
wire [5:0] pipe_desr_et_6;
wire [5:0] pipe_desr_et_5;
wire [5:0] pipe_desr_et_4;
wire [5:0] pipe_desr_et_3;
wire [5:0] pipe_desr_et_2;
wire [5:0] pipe_desr_et_1;
wire [5:0] pipe_desr_et_0;
wire excp_way_lat_scanin;
wire excp_way_lat_scanout;
wire [7:0] sel_ftu_excp_way;
wire ic_way7_lat_scanout;
wire ic_way6_lat_scanout;
wire ic_way5_lat_scanout;
wire ic_way4_lat_scanout;
wire ic_way3_lat_scanout;
wire ic_way2_lat_scanout;
wire ic_way1_lat_scanout;
wire ic_way0_lat_scanout;
wire pc_1_w1_lat_scanout;
wire pc_0_w1_lat_scanout;
wire [8:0] pipe_desr_ea_7;
wire [8:0] pipe_desr_ea_6;
wire [8:0] pipe_desr_ea_5;
wire [8:0] pipe_desr_ea_4;
wire [8:0] pipe_desr_ea_3;
wire [8:0] pipe_desr_ea_2;
wire [8:0] pipe_desr_ea_1;
wire [8:0] pipe_desr_ea_0;
wire tca_error_lat_scanin;
wire tca_error_lat_scanout;
wire l_dsfar_lat_scanout;
wire s_dsfar_lat_scanout;
wire stb_flush_lat_scanin;
wire stb_flush_lat_scanout;
wire [7:0] s_dsfsr_dec_tid_raw;
wire [7:0] s_dsfsr_dec_tid;
wire [2:0] isfsr_7_new_in;
wire [2:0] isfsr_6_new_in;
wire [2:0] isfsr_5_new_in;
wire [2:0] isfsr_4_new_in;
wire [2:0] isfsr_3_new_in;
wire [2:0] isfsr_2_new_in;
wire [2:0] isfsr_1_new_in;
wire [2:0] isfsr_0_new_in;
wire [7:0] precise_i_error;
wire isfsr_7_lat_wmr_scanin;
wire isfsr_7_lat_wmr_scanout;
wire isfsr_6_lat_wmr_scanin;
wire isfsr_6_lat_wmr_scanout;
wire isfsr_5_lat_wmr_scanin;
wire isfsr_5_lat_wmr_scanout;
wire isfsr_4_lat_wmr_scanin;
wire isfsr_4_lat_wmr_scanout;
wire isfsr_3_lat_wmr_scanin;
wire isfsr_3_lat_wmr_scanout;
wire isfsr_2_lat_wmr_scanin;
wire isfsr_2_lat_wmr_scanout;
wire isfsr_1_lat_wmr_scanin;
wire isfsr_1_lat_wmr_scanout;
wire isfsr_0_lat_wmr_scanin;
wire isfsr_0_lat_wmr_scanout;
wire [3:0] dsfsr_7_new_in;
wire [3:0] dsfsr_6_new_in;
wire [3:0] dsfsr_5_new_in;
wire [3:0] dsfsr_4_new_in;
wire [3:0] dsfsr_3_new_in;
wire [3:0] dsfsr_2_new_in;
wire [3:0] dsfsr_1_new_in;
wire [3:0] dsfsr_0_new_in;
wire [7:0] precise_d_error;
wire dsfsr_7_lat_wmr_scanin;
wire dsfsr_7_lat_wmr_scanout;
wire dsfsr_6_lat_wmr_scanin;
wire dsfsr_6_lat_wmr_scanout;
wire dsfsr_5_lat_wmr_scanin;
wire dsfsr_5_lat_wmr_scanout;
wire dsfsr_4_lat_wmr_scanin;
wire dsfsr_4_lat_wmr_scanout;
wire dsfsr_3_lat_wmr_scanin;
wire dsfsr_3_lat_wmr_scanout;
wire dsfsr_2_lat_wmr_scanin;
wire dsfsr_2_lat_wmr_scanout;
wire dsfsr_1_lat_wmr_scanin;
wire dsfsr_1_lat_wmr_scanout;
wire dsfsr_0_lat_wmr_scanin;
wire dsfsr_0_lat_wmr_scanout;
wire asi_rd_ctl_lat_scanin;
wire asi_rd_ctl_lat_scanout;
wire [1:0] c_l2_soc_err_type;
wire [7:0] c_l2_soc_dec_tid;
wire mamu_err_lat_scanin;
wire mamu_err_lat_scanout;
wire [5:0] mamu_desr_et_7;
wire [5:0] mamu_desr_et_6;
wire [5:0] mamu_desr_et_5;
wire [5:0] mamu_desr_et_4;
wire [5:0] mamu_desr_et_3;
wire [5:0] mamu_desr_et_2;
wire [5:0] mamu_desr_et_1;
wire [5:0] mamu_desr_et_0;
wire [10:0] mamu_desr_ea_7;
wire [10:0] mamu_desr_ea_6;
wire [10:0] mamu_desr_ea_5;
wire [10:0] mamu_desr_ea_4;
wire [10:0] mamu_desr_ea_3;
wire [10:0] mamu_desr_ea_2;
wire [10:0] mamu_desr_ea_1;
wire [10:0] mamu_desr_ea_0;
wire cwq_tid_lat_scanout;
wire spu_error_lat_scanin;
wire spu_error_lat_scanout;
wire [5:0] cwq_desr_et_7;
wire [5:0] cwq_desr_et_6;
wire [5:0] cwq_desr_et_5;
wire [5:0] cwq_desr_et_4;
wire [5:0] cwq_desr_et_3;
wire [5:0] cwq_desr_et_2;
wire [5:0] cwq_desr_et_1;
wire [5:0] cwq_desr_et_0;
wire [7:0] error_event_1_in;
wire [7:0] error_event_0_in;
wire event_1_lat_scanout;
wire [7:0] error_event_1;
wire event_0_lat_scanout;
wire [7:0] error_event_0;
wire spare10_lat_scanout;
wire spare11_lat_scanout;
wire spare12_lat_scanout;
wire spare13_lat_scanout;
wire spare14_lat_scanout;
wire spare15_lat_scanout;
input spc_aclk_wmr; // Warm reset (non)scan
input lsu_tlu_pmen; // Power management
input [2:0] ftu_excp_way_d;
input [2:0] ftu_excp_tid_d;
input ftu_excp_way_valid_d;
input [1:0] dec_icache_perr_m;
input [1:0] dec_inst_valid_m;
input [1:0] dec_fgu_inst_m;
input [1:0] dec_lsu_inst_m;
input [1:0] fls_irf_cecc_b;
input [1:0] fls_irf_uecc_b;
input [1:0] fls_kill_irf_ecc_w;
input [4:0] exu0_ecc_addr_m;
input [4:0] exu1_ecc_addr_m;
input [7:0] exu0_ecc_check_m;
input [7:0] exu1_ecc_check_m;
input [5:0] fgu_ecc_addr_fx2;
input [13:0] fgu_ecc_check_fx2;
input fgu_pdist_beat2_fx1;
input lsu_tlu_twocycle_m; // LSU takes extra cycle on this inst
input [7:0] lsu_block_store_b; // LSU reads FRF for block store
input [7:0] fls_load_dsfar; // Trap that loads DSFAR
input [1:0] fls_ipe_dme_request; // Update DSFSR/DSFAR for IRF/FRF ECC
input lsu_dttp_err_b; // DTLB tag parity error
input lsu_dtdp_err_b; // DTLB data parity error
input lsu_dtmh_err_b; // DTLB data parity error
input lsu_dcmh_err_g; // LSU data cache multiple hit
input lsu_dcvp_err_g; // LSU data cache valid parity error
input lsu_dctp_err_g; // LSU data cache tag parity error
input lsu_dcdp_err_g; // LSU data cache parity error
input lsu_dcl2c_err_g; // LSU data cache L2 correctable ECC
input lsu_dcl2u_err_g; // LSU data cache L2 uncorrectable ECC
input lsu_dcl2nd_err_g; // LSU data cache L2 NotData
input lsu_dcsoc_err_g; // LSU data cache SOC error
input [2:0] lsu_dcerr_tid_g; // TID for G stage errors (above)
input [8:0] lsu_dcerr_sfar_g; // Contains way and index of the error
input lsu_sbdlc_err_g; // STB RAW error (CE)
input lsu_sbdlu_err_g; // STB RAW error (UE)
input lsu_sbdpc_err_g; // STB read for issue data (CE)
input lsu_sbdpu_err_g; // STB read for issue data (UE)
input lsu_sbapp_err_g; // STB read for issue addr parity error
input lsu_sbdiou_err_g; // STB read for issue IO/ext ASI parity
input [2:0] lsu_stberr_tid_g; // TID of STB error
input [2:0] lsu_stberr_index_g; // Index of STB error
input [1:0] lsu_stberr_priv_g; // Privilege of STB error
input lsu_stb_flush_g; // STB entry flushed STB (capture priv)
input [7:0] cel_syndrome;
input [1:0] tlu_tca_index; // Index for precise TCA errors
input [7:0] tlu_tsac; // Only one per TG can report tsa[cu]
input asi_tsac; // ASI TSA access errors
input [2:0] asi_tsacu_tid; // Only one per TG can report tsa[cu]
input [1:0] tlu_tca_index_0;
input [1:0] tlu_tca_index_1;
input [1:0] fls_disrupting_flush_w;
input mmu_asi_cecc; // Correctable ECC error on ASI read
input mmu_asi_uecc; // Uncorrectable ECC error on ASI read
input [10:0] mmu_asi_index; // Syndrome and index of the failure
input mmu_asi_mra_not_sca; // 1: MRA error 0: Scratchpad error
input [7:0] mmu_i_l2cerr;
input [7:0] mmu_d_l2cerr;
input [7:0] mmu_i_eccerr;
input [7:0] mmu_d_eccerr;
input [2:0] mmu_thr0_err_type;
input [2:0] mmu_thr1_err_type;
input [2:0] mmu_thr2_err_type;
input [2:0] mmu_thr3_err_type;
input [2:0] mmu_thr4_err_type;
input [2:0] mmu_thr5_err_type;
input [2:0] mmu_thr6_err_type;
input [2:0] mmu_thr7_err_type;
input [2:0] mmu_thr0_err_index;
input [2:0] mmu_thr1_err_index;
input [2:0] mmu_thr2_err_index;
input [2:0] mmu_thr3_err_index;
input [2:0] mmu_thr4_err_index;
input [2:0] mmu_thr5_err_index;
input [2:0] mmu_thr6_err_index;
input [2:0] mmu_thr7_err_index;
input spu_tlu_mamu_err_req_v; // SPU MAMEM parity error
input [10:0] spu_tlu_mamu_err_req; // SPU MAMEM index
input [2:0] spu_tlu_ma_int_req; // SPU MA 2:0 thread ID
input [2:0] spu_tlu_cwq_int_req; // SPU CWQ 2:0 thread ID
input [5:0] spu_tlu_l2_error; // MAL2[C,U,ND],CWQL2[C,U,ND]
input cxi_l2_soc_sre; // software_recoverable_error
input [1:0] cxi_l2_soc_err_type; // C=01, UC=10, ND=11
input [2:0] cxi_l2_soc_tid;
input cxi_l2_err; // L2 error reported
input cxi_soc_err; // SOC error reported
input asi_rd_isfsr; // ASI read control in ASI cycle 1
input asi_rd_dsfsr; // but actual read is in ASI cycle 2
input [7:0] asi_wr_isfsr;
input [7:0] asi_wr_dsfsr;
input [1:0] dfd_fesr_priv_0;
input [1:0] dfd_fesr_priv_1;
input [1:0] dfd_fesr_priv_2;
input [1:0] dfd_fesr_priv_3;
input [1:0] dfd_fesr_priv_4;
input [1:0] dfd_fesr_priv_5;
input [1:0] dfd_fesr_priv_6;
input [1:0] dfd_fesr_priv_7;
output [3:0] ras_asi_data;
output [19:0] ras_dsfar_0;
output [19:0] ras_dsfar_1;
output [19:0] ras_dsfar_2;
output [19:0] ras_dsfar_3;
output [19:0] ras_dsfar_4;
output [19:0] ras_dsfar_5;
output [19:0] ras_dsfar_6;
output [19:0] ras_dsfar_7;
output [7:0] ras_dsfar_sel_lsu_va;
output [7:0] ras_dsfar_sel_ras;
output [7:0] ras_dsfar_sel_tsa;
output [7:0] ras_rd_dsfar;
output [61:56] ras_desr_et_0;
output [61:56] ras_desr_et_1;
output [61:56] ras_desr_et_2;
output [61:56] ras_desr_et_3;
output [61:56] ras_desr_et_4;
output [61:56] ras_desr_et_5;
output [61:56] ras_desr_et_6;
output [61:56] ras_desr_et_7;
output [10:0] ras_desr_ea_0;
output [10:0] ras_desr_ea_1;
output [10:0] ras_desr_ea_2;
output [10:0] ras_desr_ea_3;
output [10:0] ras_desr_ea_4;
output [10:0] ras_desr_ea_5;
output [10:0] ras_desr_ea_6;
output [10:0] ras_desr_ea_7;
output [7:0] ras_desr_en;
output [7:0] ras_write_desr_1st;
output [7:0] ras_write_desr_2nd;
output [7:0] ras_rd_desr;
output [61:60] ras_fesr_et_0;
output [61:60] ras_fesr_et_1;
output [61:60] ras_fesr_et_2;
output [61:60] ras_fesr_et_3;
output [61:60] ras_fesr_et_4;
output [61:60] ras_fesr_et_5;
output [61:60] ras_fesr_et_6;
output [61:60] ras_fesr_et_7;
output [59:55] ras_fesr_ea_0;
output [59:55] ras_fesr_ea_1;
output [59:55] ras_fesr_ea_2;
output [59:55] ras_fesr_ea_3;
output [59:55] ras_fesr_ea_4;
output [59:55] ras_fesr_ea_5;
output [59:55] ras_fesr_ea_6;
output [59:55] ras_fesr_ea_7;
output [7:0] ras_fesr_en;
output [7:0] ras_write_fesr;
output [59:58] ras_fesr_priv;
output [7:0] ras_update_priv;
output [7:0] ras_rd_fesr;
output [7:0] ras_precise_error; // For debug events
output [7:0] ras_disrupting_error; // For debug events
output [7:0] ras_deferred_error; // For debug events
//////////////////////////////////////////////////////////////////////////////
assign pce_ov = tcu_pce_ov;
//////////////////////////////////////////////////////////////////////////////
tlu_ras_ctl_l1clkhdr_ctl_macro free_clken (
//////////////////////////////////////////////////////////////////////////////
w_en, w1_en, ~lsu_tlu_pmen});
tlu_ras_ctl_l1clkhdr_ctl_macro b2w_clken (
excp_way_valid | ~lsu_tlu_pmen;
tlu_ras_ctl_l1clkhdr_ctl_macro exc_way_clken (
//////////////////////////////////////////////////////////////////////////////
// Pipe TIDs, etc. for in-pipe errors
assign twocycle_inst_m[1:0] =
{2 {lsu_tlu_twocycle_m}} & dec_lsu_inst_m[1:0] &
tlu_ras_ctl_msff_ctl_macro__width_2 twocycle_inst_b_lat (
.scan_in(twocycle_inst_b_lat_scanin),
.scan_out(twocycle_inst_b_lat_scanout),
.din (twocycle_inst_m [1:0] ),
.dout (ptwocycle_inst_b [1:0] ),
assign twocycle_inst_b[1:0] =
({2 {fgu_pdist_beat2_fx1}} & fgu_inst_b[1:0])) &
~fls_irf_cecc_b[1:0] & ~fls_irf_uecc_b[1:0];
assign inst_valid_m[1:0] =
dec_inst_valid_m[1:0] | twocycle_inst_b[1:0];
tlu_ras_ctl_msff_ctl_macro__width_2 inst_valid_b_lat (
.scan_in(inst_valid_b_lat_scanin),
.scan_out(inst_valid_b_lat_scanout),
.din (inst_valid_m [1:0] ),
.dout (inst_valid_b [1:0] ),
| {inst_valid_b[1:0], lsu_block_store_b[7:0]};
tlu_ras_ctl_msff_ctl_macro__width_1 w_en_lat (
.scan_in(w_en_lat_scanin),
.scan_out(w_en_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 w1_en_lat (
.scan_in(w1_en_lat_scanin),
.scan_out(w1_en_lat_scanout),
{(fls_flush[7] & tid_dec_b[7]) |
(fls_flush[6] & tid_dec_b[6]) |
(fls_flush[5] & tid_dec_b[5]) |
(fls_flush[4] & tid_dec_b[4]),
(fls_flush[3] & tid_dec_b[3]) |
(fls_flush[2] & tid_dec_b[2]) |
(fls_flush[1] & tid_dec_b[1]) |
(fls_flush[0] & tid_dec_b[0])};
assign inst_valid_w_in[1:0] =
inst_valid_b[1:0] & ~dec_flush_b[1:0] & ~flush_b[1:0];
tlu_ras_ctl_msff_ctl_macro__width_2 inst_valid_w_lat (
.scan_in(inst_valid_w_lat_scanin),
.scan_out(inst_valid_w_lat_scanout),
.din (inst_valid_w_in [1:0] ),
.dout (pre_inst_valid_w [1:0] ),
// block_store_b is not actually in B, so it can't be flushed
assign block_store_w_in[7:0] =
tlu_ras_ctl_msff_ctl_macro__width_8 block_store_w_lat (
.scan_in(block_store_w_lat_scanin),
.scan_out(block_store_w_lat_scanout),
.din (block_store_w_in [7:0] ),
.dout (pblock_store_w [7:0] ),
assign block_store_w[7:0] =
pblock_store_w[7:0] & ~{8 {seen_bsee}};
assign inst_valid_w[1:0] =
pre_inst_valid_w[1:0] & ~fls_disrupting_flush_w[1:0];
(dec_tid1_m[1:0] & {2 {~twocycle_inst_b[1]}}) |
( tid1_b[1:0] & {2 { twocycle_inst_b[1]}}) ;
tlu_ras_ctl_msff_ctl_macro__width_2 tid1_b_lat (
.scan_in(tid1_b_lat_scanin),
.scan_out(tid1_b_lat_scanout),
(dec_tid0_m[1:0] & {2 {~twocycle_inst_b[0]}}) |
( tid0_b[1:0] & {2 { twocycle_inst_b[0]}}) ;
tlu_ras_ctl_msff_ctl_macro__width_2 tid0_b_lat (
.scan_in(tid0_b_lat_scanin),
.scan_out(tid0_b_lat_scanout),
~tid0_b[1] & ~tid0_b[0]};
tlu_ras_ctl_msff_ctl_macro__width_2 tid1_w_lat (
.scan_in(tid1_w_lat_scanin),
.scan_out(tid1_w_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_2 tid0_w_lat (
.scan_in(tid0_w_lat_scanin),
.scan_out(tid0_w_lat_scanout),
~tid0_w[1] & ~tid0_w[0]} &
{{4 {inst_valid_w[1]}}, {4 {inst_valid_w[0]}}} |
(dec_fgu_inst_m[1:0] & dec_inst_valid_m[1:0]) |
( fgu_inst_b[1:0] & twocycle_inst_b[1:0]) ;
tlu_ras_ctl_msff_ctl_macro__width_2 fgu_inst_b_lat (
.scan_in(fgu_inst_b_lat_scanin),
.scan_out(fgu_inst_b_lat_scanout),
.din (fgu_inst_m [1:0] ),
.dout (fgu_inst_b [1:0] ),
tlu_ras_ctl_msff_ctl_macro__width_2 fgu_inst_w_lat (
.scan_in(fgu_inst_w_lat_scanin),
.scan_out(fgu_inst_w_lat_scanout),
.din (fgu_inst_b [1:0] ),
.dout (pfgu_inst_w [1:0] ),
pfgu_inst_w[1:0] | {| block_store_w[7:4], | block_store_w[3:0]};
// lsu_inst_m doesn't need twocycle stuff because TLB is only accessed once
dec_lsu_inst_m[1:0] & dec_inst_valid_m[1:0] ;
tlu_ras_ctl_msff_ctl_macro__width_2 lsu_inst_b_lat (
.scan_in(lsu_inst_b_lat_scanin),
.scan_out(lsu_inst_b_lat_scanout),
.din (lsu_inst_m [1:0] ),
.dout (lsu_inst_b [1:0] ),
//////////////////////////////////////////////////////////////////////////////
// In-pipe precise errors from M to B
// Instruction cache and TLB errors
// The precise errors for ISFSR are encoded in the exc bits as
// but architecturally should be
// DESR errors from this source are
// but architecturally should be
{dec_exc1_m[4:0] == 5'b00111,
dec_exc0_m[4:0] == 5'b00111} &
{dec_exc1_m[4:0] == 5'b01001,
dec_exc0_m[4:0] == 5'b01001} &
{dec_exc1_m[4:0] == 5'b11111,
dec_exc0_m[4:0] == 5'b11111} &
{dec_exc1_m[4:0] == 5'b01111 | dec_exc1_m[4:0] == 5'b10111,
dec_exc0_m[4:0] == 5'b01111 | dec_exc0_m[4:0] == 5'b10111} &
{dec_exc1_m[4:0] == 5'b10000 | dec_exc1_m[4:0] == 5'b11000,
dec_exc0_m[4:0] == 5'b10000 | dec_exc0_m[4:0] == 5'b11000} &
({3 { ittm_m[1]}} & 3'b001) |
({3 { ittp_m[1]}} & 3'b010) |
({3 { itdp_m[1]}} & 3'b011) |
({3 { icl2u_m[1]}} & 3'b001) |
({3 {icl2nd_m[1]}} & 3'b010) ;
({3 { ittm_m[0]}} & 3'b001) |
({3 { ittp_m[0]}} & 3'b010) |
({3 { itdp_m[0]}} & 3'b011) |
({3 { icl2u_m[0]}} & 3'b001) |
({3 {icl2nd_m[0]}} & 3'b010) ;
tlu_ras_ctl_msff_ctl_macro__width_3 i_isfsr1_b_lat (
.scan_in(i_isfsr1_b_lat_scanin),
.scan_out(i_isfsr1_b_lat_scanout),
.din (i_isfsr1_m [2:0] ),
.dout (i_isfsr1_b [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 i_isfsr0_b_lat (
.scan_in(i_isfsr0_b_lat_scanin),
.scan_out(i_isfsr0_b_lat_scanout),
.din (i_isfsr0_m [2:0] ),
.dout (i_isfsr0_b [2:0] ),
{dec_exc1_m[4:0] == 5'b01010,
dec_exc0_m[4:0] == 5'b01010} &
{dec_exc1_m[4:0] == 5'b01011,
dec_exc0_m[4:0] == 5'b01011} &
{dec_exc1_m[4:0] == 5'b01100,
dec_exc0_m[4:0] == 5'b01100} &
{dec_exc1_m[4:0] == 5'b01110 | dec_exc1_m[4:0] == 5'b11110,
dec_exc0_m[4:0] == 5'b01110 | dec_exc0_m[4:0] == 5'b11110} &
dec_icache_perr_m[1:0] & ~icvp_m[1:0] & ~ictp_m[1:0] &
~ictm_m[1:0] & ~ittp_m[1:0] & ~ittm_m[1:0] & ~itdp_m[1:0] &
~{( ~dec_exc1_m[2] & dec_exc1_m[1] ) |
( ~dec_exc1_m[2] & dec_exc1_m[0]) |
(~dec_exc1_m[4] & dec_exc1_m[2] & ~dec_exc1_m[1] & ~dec_exc1_m[0]) ,
( ~dec_exc0_m[2] & dec_exc0_m[1] ) |
( ~dec_exc0_m[2] & dec_exc0_m[0]) |
(~dec_exc0_m[4] & dec_exc0_m[2] & ~dec_exc0_m[1] & ~dec_exc0_m[0]) } &
({4 { icvp_m[1]}} & 4'b0001) |
({4 { ictp_m[1]}} & 4'b0010) |
({4 { ictm_m[1]}} & 4'b0011) |
({4 { icdp_m[1]}} & 4'b0100) |
({4 { icl2c_m[1]}} & 4'b1010) ;
({4 { icvp_m[0]}} & 4'b0001) |
({4 { ictp_m[0]}} & 4'b0010) |
({4 { ictm_m[0]}} & 4'b0011) |
({4 { icdp_m[0]}} & 4'b0100) |
({4 { icl2c_m[0]}} & 4'b1010) ;
tlu_ras_ctl_msff_ctl_macro__width_4 i_desr1_b_lat (
.scan_in(i_desr1_b_lat_scanin),
.scan_out(i_desr1_b_lat_scanout),
.dout (i_desr1_b [3:0] ),
tlu_ras_ctl_msff_ctl_macro__width_4 i_desr0_b_lat (
.scan_in(i_desr0_b_lat_scanin),
.scan_out(i_desr0_b_lat_scanout),
.dout (i_desr0_b [3:0] ),
tlu_ras_ctl_msff_ctl_macro__width_5 irf0_ecc_addr_b_lat (
.scan_in(irf0_ecc_addr_b_lat_scanin),
.scan_out(irf0_ecc_addr_b_lat_scanout),
.din (exu0_ecc_addr_m [4:0] ),
.dout (irf0_ecc_addr_b [4:0] ),
tlu_ras_ctl_msff_ctl_macro__width_5 irf1_ecc_addr_b_lat (
.scan_in(irf1_ecc_addr_b_lat_scanin),
.scan_out(irf1_ecc_addr_b_lat_scanout),
.din (exu1_ecc_addr_m [4:0] ),
.dout (irf1_ecc_addr_b [4:0] ),
tlu_ras_ctl_msff_ctl_macro__width_8 irf0_ecc_check_b_lat (
.scan_in(irf0_ecc_check_b_lat_scanin),
.scan_out(irf0_ecc_check_b_lat_scanout),
.din (exu0_ecc_check_m [7:0] ),
.dout (irf0_ecc_check_b [7:0] ),
tlu_ras_ctl_msff_ctl_macro__width_8 irf1_ecc_check_b_lat (
.scan_in(irf1_ecc_check_b_lat_scanin),
.scan_out(irf1_ecc_check_b_lat_scanout),
.din (exu1_ecc_check_m [7:0] ),
.dout (irf1_ecc_check_b [7:0] ),
//////////////////////////////////////////////////////////////////////////////
// Flop in-pipe errors from B to W
tlu_ras_ctl_msff_ctl_macro__width_3 i_isfsr1_w_lat (
.scan_in(i_isfsr1_w_lat_scanin),
.scan_out(i_isfsr1_w_lat_scanout),
.din (i_isfsr1_b [2:0] ),
.dout (i_isfsr1_w [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 i_isfsr0_w_lat (
.scan_in(i_isfsr0_w_lat_scanin),
.scan_out(i_isfsr0_w_lat_scanout),
.din (i_isfsr0_b [2:0] ),
.dout (i_isfsr0_w [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_4 i_desr1_w_lat (
.scan_in(i_desr1_w_lat_scanin),
.scan_out(i_desr1_w_lat_scanout),
.dout (i_desr1_w [3:0] ),
tlu_ras_ctl_msff_ctl_macro__width_4 i_desr0_w_lat (
.scan_in(i_desr0_w_lat_scanin),
.scan_out(i_desr0_w_lat_scanout),
.dout (i_desr0_w [3:0] ),
// Encodings for DSFSR errors
fls_irf_uecc_b[1:0] & inst_valid_b[1:0];
fls_irf_cecc_b[1:0] & inst_valid_b[1:0];
~irfu_b[1:0] & ~irfc_b[1:0] &
lsu_inst_b[1:0] & inst_valid_b[1:0];
~irfu_b[1:0] & ~irfc_b[1:0] &
{2 {~lsu_dtmh_err_b & lsu_dttp_err_b}} & lsu_inst_b[1:0] &
~irfu_b[1:0] & ~irfc_b[1:0] &
{2 {~lsu_dttp_err_b & ~lsu_dtmh_err_b & lsu_dtdp_err_b}} &
lsu_inst_b[1:0] & inst_valid_b[1:0];
tlu_ras_ctl_msff_ctl_macro__width_2 irfu_w_lat (
.scan_in(irfu_w_lat_scanin),
.scan_out(irfu_w_lat_scanout),
pirfu_w[1:0] & ~fls_kill_irf_ecc_w[1:0];
tlu_ras_ctl_msff_ctl_macro__width_2 irfc_w_lat (
.scan_in(irfc_w_lat_scanin),
.scan_out(irfc_w_lat_scanout),
pirfc_w[1:0] & ~fls_kill_irf_ecc_w[1:0];
{2 {fls_f_uecc_w}} & fgu_inst_w[1:0];
{2 {fls_f_cecc_w}} & fgu_inst_w[1:0];
~irfu_w[1:0] & ~irfc_w[1:0]) |
{| block_store_w[7:4], | block_store_w[3:0]});
~irfu_w[1:0] & ~irfc_w[1:0]) |
{| block_store_w[7:4], | block_store_w[3:0]});
// Only capture first FGU ECC error on block store
(| ((pfrfu_w[1:0] | pfrfc_w[1:0]) &
{| block_store_w[7:4], | block_store_w[3:0]})) |
(seen_bsee & (| pblock_store_w[7:0]));
tlu_ras_ctl_msff_ctl_macro__width_1 seen_bsee_lat (
.scan_in(seen_bsee_lat_scanin),
.scan_out(seen_bsee_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_2 dttp_w_lat (
.scan_in(dttp_w_lat_scanin),
.scan_out(dttp_w_lat_scanout),
pdttp_w[1:0] & ~pfrfc_w[1:0] & ~pfrfu_w[1:0];
tlu_ras_ctl_msff_ctl_macro__width_2 dtmh_w_lat (
.scan_in(dtmh_w_lat_scanin),
.scan_out(dtmh_w_lat_scanout),
pdtmh_w[1:0] & ~pfrfc_w[1:0] & ~pfrfu_w[1:0];
tlu_ras_ctl_msff_ctl_macro__width_2 dtdp_w_lat (
.scan_in(dtdp_w_lat_scanin),
.scan_out(dtdp_w_lat_scanout),
pdtdp_w[1:0] & ~pfrfc_w[1:0] & ~pfrfu_w[1:0];
tlu_ras_ctl_msff_ctl_macro__width_5 irf0_ecc_addr_w_lat (
.scan_in(irf0_ecc_addr_w_lat_scanin),
.scan_out(irf0_ecc_addr_w_lat_scanout),
.din (irf0_ecc_addr_b [4:0] ),
.dout (irf0_ecc_addr_w [4:0] ),
tlu_ras_ctl_msff_ctl_macro__width_5 irf1_ecc_addr_w_lat (
.scan_in(irf1_ecc_addr_w_lat_scanin),
.scan_out(irf1_ecc_addr_w_lat_scanout),
.din (irf1_ecc_addr_b [4:0] ),
.dout (irf1_ecc_addr_w [4:0] ),
tlu_ras_ctl_msff_ctl_macro__width_8 irf0_ecc_check_w_lat (
.scan_in(irf0_ecc_check_w_lat_scanin),
.scan_out(irf0_ecc_check_w_lat_scanout),
.din (irf0_ecc_check_b [7:0] ),
.dout (irf0_ecc_check_w [7:0] ),
tlu_ras_ctl_msff_ctl_macro__width_8 irf1_ecc_check_w_lat (
.scan_in(irf1_ecc_check_w_lat_scanin),
.scan_out(irf1_ecc_check_w_lat_scanout),
.din (irf1_ecc_check_b [7:0] ),
.dout (irf1_ecc_check_w [7:0] ),
tlu_ras_ctl_msff_ctl_macro__width_6 frf_ecc_addr_w_lat (
.scan_in(frf_ecc_addr_w_lat_scanin),
.scan_out(frf_ecc_addr_w_lat_scanout),
.din (fgu_ecc_addr_fx2 [5:0] ),
.dout (frf_ecc_addr_w [5:0] ),
tlu_ras_ctl_msff_ctl_macro__width_14 frf_ecc_check_w_lat (
.scan_in(frf_ecc_check_w_lat_scanin),
.scan_out(frf_ecc_check_w_lat_scanout),
.din (fgu_ecc_check_fx2 [13:0] ),
.dout (frf_ecc_check_w [13:0] ),
// Decode in-pipe errors at W
assign pipe_isfsr_7[2:0] =
i_isfsr1_w[2:0] & {3 {tid_dec_w[7]}};
assign pipe_isfsr_6[2:0] =
i_isfsr1_w[2:0] & {3 {tid_dec_w[6]}};
assign pipe_isfsr_5[2:0] =
i_isfsr1_w[2:0] & {3 {tid_dec_w[5]}};
assign pipe_isfsr_4[2:0] =
i_isfsr1_w[2:0] & {3 {tid_dec_w[4]}};
assign pipe_isfsr_3[2:0] =
i_isfsr0_w[2:0] & {3 {tid_dec_w[3]}};
assign pipe_isfsr_2[2:0] =
i_isfsr0_w[2:0] & {3 {tid_dec_w[2]}};
assign pipe_isfsr_1[2:0] =
i_isfsr0_w[2:0] & {3 {tid_dec_w[1]}};
assign pipe_isfsr_0[2:0] =
i_isfsr0_w[2:0] & {3 {tid_dec_w[0]}};
assign pipe_dsfsr1_w[2:0] =
(({3 {irfu_w[1]}} & 3'b001) |
({3 {irfc_w[1]}} & 3'b010) |
({3 {frfu_w[1]}} & 3'b011) |
({3 {frfc_w[1]}} & 3'b100) |
({3 {dtmh_w[1]}} & 3'b001) |
({3 {dttp_w[1]}} & 3'b010) |
({3 {dtdp_w[1]}} & 3'b011) ) &
{3 {fls_ipe_dme_request[1] | (| block_store_w[7:4])}};
assign pipe_dsfsr0_w[2:0] =
(({3 {irfu_w[0]}} & 3'b001) |
({3 {irfc_w[0]}} & 3'b010) |
({3 {frfu_w[0]}} & 3'b011) |
({3 {frfc_w[0]}} & 3'b100) |
({3 {dtmh_w[0]}} & 3'b001) |
({3 {dttp_w[0]}} & 3'b010) |
({3 {dtdp_w[0]}} & 3'b011) ) &
{3 {fls_ipe_dme_request[0] | (| block_store_w[3:0])}};
(trl_gl7[1:0] & {2 {tid_dec_w[7]}}) |
(trl_gl6[1:0] & {2 {tid_dec_w[6]}}) |
(trl_gl5[1:0] & {2 {tid_dec_w[5]}}) |
(trl_gl4[1:0] & {2 {tid_dec_w[4]}}) ;
(trl_gl3[1:0] & {2 {tid_dec_w[3]}}) |
(trl_gl2[1:0] & {2 {tid_dec_w[2]}}) |
(trl_gl1[1:0] & {2 {tid_dec_w[1]}}) |
(trl_gl0[1:0] & {2 {tid_dec_w[0]}}) ;
assign pipe_dsfar1_w[19:0] =
(({20 {irfu_w[1] | irfc_w[1]}} &
{{5 {1'b0}}, irf1_ecc_check_w[7:0], gl1_w[1:0],
({20 {frfu_w[1] | frfc_w[1]}} &
{frf_ecc_check_w[13:0], frf_ecc_addr_w[5:0]})) &
{20 {(| tid_dec_w[7:4]) &
(fls_ipe_dme_request[1] | (| block_store_w[7:4]))}};
assign pipe_dsfar0_w[19:0] =
(({20 {irfu_w[0] | irfc_w[0]}} &
{{5 {1'b0}}, irf0_ecc_check_w[7:0], gl0_w[1:0],
({20 {frfu_w[0] | frfc_w[0]}} &
{frf_ecc_check_w[13:0], frf_ecc_addr_w[5:0]})) &
{20 {(| tid_dec_w[3:0]) &
(fls_ipe_dme_request[0] | (| block_store_w[3:0]))}};
// Carry pipe DSFSR errors out one more cycle so they only update DSFSR/DSFAR
// if they are the highest priority exceptions
irfu_w[1:0] | irfc_w[1:0] | frfu_w[1:0] | frfc_w[1:0];
tlu_ras_ctl_msff_ctl_macro__width_2 ecc_w1_lat (
.scan_in(ecc_w1_lat_scanin),
.scan_out(ecc_w1_lat_scanout),
(tid1_w[1:0] & ~{2 {| block_store_w[7:4]}}) |
{block_store_w[7] | block_store_w[6],
block_store_w[7] | block_store_w[5]};
tlu_ras_ctl_msff_ctl_macro__width_2 tid1_w1_lat (
.scan_in(tid1_w1_lat_scanin),
.scan_out(tid1_w1_lat_scanout),
.din (tid1_w1_in [1:0] ),
(tid0_w[1:0] & ~{2 {| block_store_w[3:0]}}) |
{block_store_w[3] | block_store_w[2],
block_store_w[3] | block_store_w[1]};
tlu_ras_ctl_msff_ctl_macro__width_2 tid0_w1_lat (
.scan_in(tid0_w1_lat_scanin),
.scan_out(tid0_w1_lat_scanout),
.din (tid0_w1_in [1:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 pipe_dsfsr1_lat (
.scan_in(pipe_dsfsr1_lat_scanin),
.scan_out(pipe_dsfsr1_lat_scanout),
.din (pipe_dsfsr1_w [2:0] ),
.dout (pipe_dsfsr1 [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 pipe_dsfsr0_lat (
.scan_in(pipe_dsfsr0_lat_scanin),
.scan_out(pipe_dsfsr0_lat_scanout),
.din (pipe_dsfsr0_w [2:0] ),
.dout (pipe_dsfsr0 [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_20 pipe_dsfar1_lat (
.scan_in(pipe_dsfar1_lat_scanin),
.scan_out(pipe_dsfar1_lat_scanout),
.din (pipe_dsfar1_w [19:0] ),
.dout (pipe_dsfar1 [19:0] ),
tlu_ras_ctl_msff_ctl_macro__width_20 pipe_dsfar0_lat (
.scan_in(pipe_dsfar0_lat_scanin),
.scan_out(pipe_dsfar0_lat_scanout),
.din (pipe_dsfar0_w [19:0] ),
.dout (pipe_dsfar0 [19:0] ),
{ tid1_w1[1] & tid1_w1[0],
tid1_w1[1] & ~tid1_w1[0],
~tid1_w1[1] & tid1_w1[0],
~tid1_w1[1] & ~tid1_w1[0],
tid0_w1[1] & ~tid0_w1[0],
~tid0_w1[1] & tid0_w1[0],
~tid0_w1[1] & ~tid0_w1[0]};
assign pipe_dsfsr_7[2:0] =
pipe_dsfsr1[2:0] & {3 {tid_dec_w1[7]}};
assign pipe_dsfsr_6[2:0] =
pipe_dsfsr1[2:0] & {3 {tid_dec_w1[6]}};
assign pipe_dsfsr_5[2:0] =
pipe_dsfsr1[2:0] & {3 {tid_dec_w1[5]}};
assign pipe_dsfsr_4[2:0] =
pipe_dsfsr1[2:0] & {3 {tid_dec_w1[4]}};
assign pipe_dsfsr_3[2:0] =
pipe_dsfsr0[2:0] & {3 {tid_dec_w1[3]}};
assign pipe_dsfsr_2[2:0] =
pipe_dsfsr0[2:0] & {3 {tid_dec_w1[2]}};
assign pipe_dsfsr_1[2:0] =
pipe_dsfsr0[2:0] & {3 {tid_dec_w1[1]}};
assign pipe_dsfsr_0[2:0] =
pipe_dsfsr0[2:0] & {3 {tid_dec_w1[0]}};
assign pipe_dsfar_7[19:0] =
{20 {ecc_w1[1] & tid_dec_w1[7]}} & pipe_dsfar1[19:0];
assign pipe_dsfar_6[19:0] =
{20 {ecc_w1[1] & tid_dec_w1[6]}} & pipe_dsfar1[19:0];
assign pipe_dsfar_5[19:0] =
{20 {ecc_w1[1] & tid_dec_w1[5]}} & pipe_dsfar1[19:0];
assign pipe_dsfar_4[19:0] =
{20 {ecc_w1[1] & tid_dec_w1[4]}} & pipe_dsfar1[19:0];
assign pipe_dsfar_3[19:0] =
{20 {ecc_w1[0] & tid_dec_w1[3]}} & pipe_dsfar0[19:0];
assign pipe_dsfar_2[19:0] =
{20 {ecc_w1[0] & tid_dec_w1[2]}} & pipe_dsfar0[19:0];
assign pipe_dsfar_1[19:0] =
{20 {ecc_w1[0] & tid_dec_w1[1]}} & pipe_dsfar0[19:0];
assign pipe_dsfar_0[19:0] =
{20 {ecc_w1[0] & tid_dec_w1[0]}} & pipe_dsfar0[19:0];
assign dsfar_sel_lsu_va_for_error[7:0] =
({{4 {~ecc_w1[1] & (| pipe_dsfsr1[2:0])}},
{4 {~ecc_w1[0] & (| pipe_dsfsr0[2:0])}}} & tid_dec_w1[7:0]) ;
tlu_ras_ctl_msff_ctl_macro__width_8 load_dsfar_lat (
.scan_in(load_dsfar_lat_scanin),
.scan_out(load_dsfar_lat_scanout),
.din (fls_load_dsfar [7:0] ),
.dout (load_dsfar [7:0] ),
assign ras_dsfar_sel_lsu_va[7:0] =
dsfar_sel_lsu_va_for_error[7:0] |
assign i_desr1_w1_in[3:0] =
i_desr1_w[3:0] & {4 {| tid_dec_w[7:4]}};
assign i_desr0_w1_in[3:0] =
i_desr0_w[3:0] & {4 {| tid_dec_w[3:0]}};
tlu_ras_ctl_msff_ctl_macro__width_4 i_desr1_w1_lat (
.scan_in(i_desr1_w1_lat_scanin),
.scan_out(i_desr1_w1_lat_scanout),
.din (i_desr1_w1_in [3:0] ),
.dout (i_desr1_w1 [3:0] ),
tlu_ras_ctl_msff_ctl_macro__width_4 i_desr0_w1_lat (
.scan_in(i_desr0_w1_lat_scanin),
.scan_out(i_desr0_w1_lat_scanout),
.din (i_desr0_w1_in [3:0] ),
.dout (i_desr0_w1 [3:0] ),
assign pipe_desr_et_7[5:0] =
{i_desr1_w1[3], 2'b00, i_desr1_w1[2:0]} & {6 {tid_dec_w1[7]}};
assign pipe_desr_et_6[5:0] =
{i_desr1_w1[3], 2'b00, i_desr1_w1[2:0]} & {6 {tid_dec_w1[6]}};
assign pipe_desr_et_5[5:0] =
{i_desr1_w1[3], 2'b00, i_desr1_w1[2:0]} & {6 {tid_dec_w1[5]}};
assign pipe_desr_et_4[5:0] =
{i_desr1_w1[3], 2'b00, i_desr1_w1[2:0]} & {6 {tid_dec_w1[4]}};
assign pipe_desr_et_3[5:0] =
{i_desr0_w1[3], 2'b00, i_desr0_w1[2:0]} & {6 {tid_dec_w1[3]}};
assign pipe_desr_et_2[5:0] =
{i_desr0_w1[3], 2'b00, i_desr0_w1[2:0]} & {6 {tid_dec_w1[2]}};
assign pipe_desr_et_1[5:0] =
{i_desr0_w1[3], 2'b00, i_desr0_w1[2:0]} & {6 {tid_dec_w1[1]}};
assign pipe_desr_et_0[5:0] =
{i_desr0_w1[3], 2'b00, i_desr0_w1[2:0]} & {6 {tid_dec_w1[0]}};
tlu_ras_ctl_msff_ctl_macro__width_7 excp_way_lat (
.scan_in(excp_way_lat_scanin),
.scan_out(excp_way_lat_scanout),
.din ({ftu_excp_tid_d [2:0],
assign sel_ftu_excp_way[7:0] =
{(excp_tid[2:0] == 3'b111) & excp_way_valid,
(excp_tid[2:0] == 3'b110) & excp_way_valid,
(excp_tid[2:0] == 3'b101) & excp_way_valid,
(excp_tid[2:0] == 3'b100) & excp_way_valid,
(excp_tid[2:0] == 3'b011) & excp_way_valid,
(excp_tid[2:0] == 3'b010) & excp_way_valid,
(excp_tid[2:0] == 3'b001) & excp_way_valid,
(excp_tid[2:0] == 3'b000) & excp_way_valid};
(excp_way[2:0] & {3 { sel_ftu_excp_way[7]}}) |
(ic_way7 [2:0] & {3 {~sel_ftu_excp_way[7]}}) ;
(excp_way[2:0] & {3 { sel_ftu_excp_way[6]}}) |
(ic_way6 [2:0] & {3 {~sel_ftu_excp_way[6]}}) ;
(excp_way[2:0] & {3 { sel_ftu_excp_way[5]}}) |
(ic_way5 [2:0] & {3 {~sel_ftu_excp_way[5]}}) ;
(excp_way[2:0] & {3 { sel_ftu_excp_way[4]}}) |
(ic_way4 [2:0] & {3 {~sel_ftu_excp_way[4]}}) ;
(excp_way[2:0] & {3 { sel_ftu_excp_way[3]}}) |
(ic_way3 [2:0] & {3 {~sel_ftu_excp_way[3]}}) ;
(excp_way[2:0] & {3 { sel_ftu_excp_way[2]}}) |
(ic_way2 [2:0] & {3 {~sel_ftu_excp_way[2]}}) ;
(excp_way[2:0] & {3 { sel_ftu_excp_way[1]}}) |
(ic_way1 [2:0] & {3 {~sel_ftu_excp_way[1]}}) ;
(excp_way[2:0] & {3 { sel_ftu_excp_way[0]}}) |
(ic_way0 [2:0] & {3 {~sel_ftu_excp_way[0]}}) ;
tlu_ras_ctl_msff_ctl_macro__width_3 ic_way7_lat (
.scan_in(ic_way7_lat_scanin),
.scan_out(ic_way7_lat_scanout),
.din (ic_way7_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 ic_way6_lat (
.scan_in(ic_way6_lat_scanin),
.scan_out(ic_way6_lat_scanout),
.din (ic_way6_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 ic_way5_lat (
.scan_in(ic_way5_lat_scanin),
.scan_out(ic_way5_lat_scanout),
.din (ic_way5_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 ic_way4_lat (
.scan_in(ic_way4_lat_scanin),
.scan_out(ic_way4_lat_scanout),
.din (ic_way4_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 ic_way3_lat (
.scan_in(ic_way3_lat_scanin),
.scan_out(ic_way3_lat_scanout),
.din (ic_way3_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 ic_way2_lat (
.scan_in(ic_way2_lat_scanin),
.scan_out(ic_way2_lat_scanout),
.din (ic_way2_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 ic_way1_lat (
.scan_in(ic_way1_lat_scanin),
.scan_out(ic_way1_lat_scanout),
.din (ic_way1_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 ic_way0_lat (
.scan_in(ic_way0_lat_scanin),
.scan_out(ic_way0_lat_scanout),
.din (ic_way0_in [2:0] ),
// Hold pipe DESR address to W1
tlu_ras_ctl_msff_ctl_macro__width_6 pc_1_w1_lat (
.scan_in(pc_1_w1_lat_scanin),
.scan_out(pc_1_w1_lat_scanout),
.din (tsd_pc_1_w [10:5] ),
tlu_ras_ctl_msff_ctl_macro__width_6 pc_0_w1_lat (
.scan_in(pc_0_w1_lat_scanin),
.scan_out(pc_0_w1_lat_scanout),
.din (tsd_pc_0_w [10:5] ),
// Force ea to zero for icl2c
assign pipe_desr_ea_7[8:0] =
{ic_way7[2:0], pc_1_w1[10:5]} &
{9 {(| pipe_desr_et_7[2:0]) & ~pipe_desr_et_7[5]}};
assign pipe_desr_ea_6[8:0] =
{ic_way6[2:0], pc_1_w1[10:5]} &
{9 {(| pipe_desr_et_6[2:0]) & ~pipe_desr_et_6[5]}};
assign pipe_desr_ea_5[8:0] =
{ic_way5[2:0], pc_1_w1[10:5]} &
{9 {(| pipe_desr_et_5[2:0]) & ~pipe_desr_et_5[5]}};
assign pipe_desr_ea_4[8:0] =
{ic_way4[2:0], pc_1_w1[10:5]} &
{9 {(| pipe_desr_et_4[2:0]) & ~pipe_desr_et_4[5]}};
assign pipe_desr_ea_3[8:0] =
{ic_way3[2:0], pc_0_w1[10:5]} &
{9 {(| pipe_desr_et_3[2:0]) & ~pipe_desr_et_3[5]}};
assign pipe_desr_ea_2[8:0] =
{ic_way2[2:0], pc_0_w1[10:5]} &
{9 {(| pipe_desr_et_2[2:0]) & ~pipe_desr_et_2[5]}};
assign pipe_desr_ea_1[8:0] =
{ic_way1[2:0], pc_0_w1[10:5]} &
{9 {(| pipe_desr_et_1[2:0]) & ~pipe_desr_et_1[5]}};
assign pipe_desr_ea_0[8:0] =
{ic_way0[2:0], pc_0_w1[10:5]} &
{9 {(| pipe_desr_et_0[2:0]) & ~pipe_desr_et_0[5]}};
//////////////////////////////////////////////////////////////////////////////
// Handle out-of-pipe errors (flop, decode, and record)
assign itmu_7 = mmu_i_eccerr[7] & (mmu_thr7_err_type[2 ] == 1'b1 );
assign itmu_6 = mmu_i_eccerr[6] & (mmu_thr6_err_type[2 ] == 1'b1 );
assign itmu_5 = mmu_i_eccerr[5] & (mmu_thr5_err_type[2 ] == 1'b1 );
assign itmu_4 = mmu_i_eccerr[4] & (mmu_thr4_err_type[2 ] == 1'b1 );
assign itmu_3 = mmu_i_eccerr[3] & (mmu_thr3_err_type[2 ] == 1'b1 );
assign itmu_2 = mmu_i_eccerr[2] & (mmu_thr2_err_type[2 ] == 1'b1 );
assign itmu_1 = mmu_i_eccerr[1] & (mmu_thr1_err_type[2 ] == 1'b1 );
assign itmu_0 = mmu_i_eccerr[0] & (mmu_thr0_err_type[2 ] == 1'b1 );
assign itl2u_7 = mmu_i_eccerr[7] & (mmu_thr7_err_type[2:0] == 3'b010 );
assign itl2u_6 = mmu_i_eccerr[6] & (mmu_thr6_err_type[2:0] == 3'b010 );
assign itl2u_5 = mmu_i_eccerr[5] & (mmu_thr5_err_type[2:0] == 3'b010 );
assign itl2u_4 = mmu_i_eccerr[4] & (mmu_thr4_err_type[2:0] == 3'b010 );
assign itl2u_3 = mmu_i_eccerr[3] & (mmu_thr3_err_type[2:0] == 3'b010 );
assign itl2u_2 = mmu_i_eccerr[2] & (mmu_thr2_err_type[2:0] == 3'b010 );
assign itl2u_1 = mmu_i_eccerr[1] & (mmu_thr1_err_type[2:0] == 3'b010 );
assign itl2u_0 = mmu_i_eccerr[0] & (mmu_thr0_err_type[2:0] == 3'b010 );
assign itl2nd_7 = mmu_i_eccerr[7] & (mmu_thr7_err_type[2:0] == 3'b011 );
assign itl2nd_6 = mmu_i_eccerr[6] & (mmu_thr6_err_type[2:0] == 3'b011 );
assign itl2nd_5 = mmu_i_eccerr[5] & (mmu_thr5_err_type[2:0] == 3'b011 );
assign itl2nd_4 = mmu_i_eccerr[4] & (mmu_thr4_err_type[2:0] == 3'b011 );
assign itl2nd_3 = mmu_i_eccerr[3] & (mmu_thr3_err_type[2:0] == 3'b011 );
assign itl2nd_2 = mmu_i_eccerr[2] & (mmu_thr2_err_type[2:0] == 3'b011 );
assign itl2nd_1 = mmu_i_eccerr[1] & (mmu_thr1_err_type[2:0] == 3'b011 );
assign itl2nd_0 = mmu_i_eccerr[0] & (mmu_thr0_err_type[2:0] == 3'b011 );
({3 { itmu_7}} & 3'b100) |
({3 { itl2u_7}} & 3'b101) |
({3 {itl2nd_7}} & 3'b110) ;
({3 { itmu_6}} & 3'b100) |
({3 { itl2u_6}} & 3'b101) |
({3 {itl2nd_6}} & 3'b110) ;
({3 { itmu_5}} & 3'b100) |
({3 { itl2u_5}} & 3'b101) |
({3 {itl2nd_5}} & 3'b110) ;
({3 { itmu_4}} & 3'b100) |
({3 { itl2u_4}} & 3'b101) |
({3 {itl2nd_4}} & 3'b110) ;
({3 { itmu_3}} & 3'b100) |
({3 { itl2u_3}} & 3'b101) |
({3 {itl2nd_3}} & 3'b110) ;
({3 { itmu_2}} & 3'b100) |
({3 { itl2u_2}} & 3'b101) |
({3 {itl2nd_2}} & 3'b110) ;
({3 { itmu_1}} & 3'b100) |
({3 { itl2u_1}} & 3'b101) |
({3 {itl2nd_1}} & 3'b110) ;
({3 { itmu_0}} & 3'b100) |
({3 { itl2u_0}} & 3'b101) |
({3 {itl2nd_0}} & 3'b110) ;
assign dtmu_7 = mmu_d_eccerr[7] & (mmu_thr7_err_type[2 ] == 1'b1 );
assign dtmu_6 = mmu_d_eccerr[6] & (mmu_thr6_err_type[2 ] == 1'b1 );
assign dtmu_5 = mmu_d_eccerr[5] & (mmu_thr5_err_type[2 ] == 1'b1 );
assign dtmu_4 = mmu_d_eccerr[4] & (mmu_thr4_err_type[2 ] == 1'b1 );
assign dtmu_3 = mmu_d_eccerr[3] & (mmu_thr3_err_type[2 ] == 1'b1 );
assign dtmu_2 = mmu_d_eccerr[2] & (mmu_thr2_err_type[2 ] == 1'b1 );
assign dtmu_1 = mmu_d_eccerr[1] & (mmu_thr1_err_type[2 ] == 1'b1 );
assign dtmu_0 = mmu_d_eccerr[0] & (mmu_thr0_err_type[2 ] == 1'b1 );
assign dtl2u_7 = mmu_d_eccerr[7] & (mmu_thr7_err_type[2:0] == 3'b010);
assign dtl2u_6 = mmu_d_eccerr[6] & (mmu_thr6_err_type[2:0] == 3'b010);
assign dtl2u_5 = mmu_d_eccerr[5] & (mmu_thr5_err_type[2:0] == 3'b010);
assign dtl2u_4 = mmu_d_eccerr[4] & (mmu_thr4_err_type[2:0] == 3'b010);
assign dtl2u_3 = mmu_d_eccerr[3] & (mmu_thr3_err_type[2:0] == 3'b010);
assign dtl2u_2 = mmu_d_eccerr[2] & (mmu_thr2_err_type[2:0] == 3'b010);
assign dtl2u_1 = mmu_d_eccerr[1] & (mmu_thr1_err_type[2:0] == 3'b010);
assign dtl2u_0 = mmu_d_eccerr[0] & (mmu_thr0_err_type[2:0] == 3'b010);
assign dtl2nd_7 = mmu_d_eccerr[7] & (mmu_thr7_err_type[2:0] == 3'b011);
assign dtl2nd_6 = mmu_d_eccerr[6] & (mmu_thr6_err_type[2:0] == 3'b011);
assign dtl2nd_5 = mmu_d_eccerr[5] & (mmu_thr5_err_type[2:0] == 3'b011);
assign dtl2nd_4 = mmu_d_eccerr[4] & (mmu_thr4_err_type[2:0] == 3'b011);
assign dtl2nd_3 = mmu_d_eccerr[3] & (mmu_thr3_err_type[2:0] == 3'b011);
assign dtl2nd_2 = mmu_d_eccerr[2] & (mmu_thr2_err_type[2:0] == 3'b011);
assign dtl2nd_1 = mmu_d_eccerr[1] & (mmu_thr1_err_type[2:0] == 3'b011);
assign dtl2nd_0 = mmu_d_eccerr[0] & (mmu_thr0_err_type[2:0] == 3'b011);
({3 { dtmu_7}} & 3'b100) |
({3 { dtl2u_7}} & 3'b101) |
({3 {dtl2nd_7}} & 3'b110) ;
({3 { dtmu_6}} & 3'b100) |
({3 { dtl2u_6}} & 3'b101) |
({3 {dtl2nd_6}} & 3'b110) ;
({3 { dtmu_5}} & 3'b100) |
({3 { dtl2u_5}} & 3'b101) |
({3 {dtl2nd_5}} & 3'b110) ;
({3 { dtmu_4}} & 3'b100) |
({3 { dtl2u_4}} & 3'b101) |
({3 {dtl2nd_4}} & 3'b110) ;
({3 { dtmu_3}} & 3'b100) |
({3 { dtl2u_3}} & 3'b101) |
({3 {dtl2nd_3}} & 3'b110) ;
({3 { dtmu_2}} & 3'b100) |
({3 { dtl2u_2}} & 3'b101) |
({3 {dtl2nd_2}} & 3'b110) ;
({3 { dtmu_1}} & 3'b100) |
({3 { dtl2u_1}} & 3'b101) |
({3 {dtl2nd_1}} & 3'b110) ;
({3 { dtmu_0}} & 3'b100) |
({3 { dtl2u_0}} & 3'b101) |
({3 {dtl2nd_0}} & 3'b110) ;
mmu_thr7_err_index[2:0] & {3 {mmu_i_eccerr[7] | mmu_d_eccerr[7]}};
mmu_thr6_err_index[2:0] & {3 {mmu_i_eccerr[6] | mmu_d_eccerr[6]}};
mmu_thr5_err_index[2:0] & {3 {mmu_i_eccerr[5] | mmu_d_eccerr[5]}};
mmu_thr4_err_index[2:0] & {3 {mmu_i_eccerr[4] | mmu_d_eccerr[4]}};
mmu_thr3_err_index[2:0] & {3 {mmu_i_eccerr[3] | mmu_d_eccerr[3]}};
mmu_thr2_err_index[2:0] & {3 {mmu_i_eccerr[2] | mmu_d_eccerr[2]}};
mmu_thr1_err_index[2:0] & {3 {mmu_i_eccerr[1] | mmu_d_eccerr[1]}};
mmu_thr0_err_index[2:0] & {3 {mmu_i_eccerr[0] | mmu_d_eccerr[0]}};
tlu_ras_ctl_msff_ctl_macro__width_8 it2lc_lat (
.scan_in(it2lc_lat_scanin),
.scan_out(it2lc_lat_scanout),
.din (mmu_i_l2cerr [7:0] ),
.dout (m_i_l2cerr [7:0] ),
tlu_ras_ctl_msff_ctl_macro__width_8 dt2lc_lat (
.scan_in(dt2lc_lat_scanin),
.scan_out(dt2lc_lat_scanout),
.din (mmu_d_l2cerr [7:0] ),
.dout (m_d_l2cerr [7:0] ),
assign itl2c_7 = m_i_l2cerr[7];
assign itl2c_6 = m_i_l2cerr[6];
assign itl2c_5 = m_i_l2cerr[5];
assign itl2c_4 = m_i_l2cerr[4];
assign itl2c_3 = m_i_l2cerr[3];
assign itl2c_2 = m_i_l2cerr[2];
assign itl2c_1 = m_i_l2cerr[1];
assign itl2c_0 = m_i_l2cerr[0];
assign dtl2c_7 = m_d_l2cerr[7];
assign dtl2c_6 = m_d_l2cerr[6];
assign dtl2c_5 = m_d_l2cerr[5];
assign dtl2c_4 = m_d_l2cerr[4];
assign dtl2c_3 = m_d_l2cerr[3];
assign dtl2c_2 = m_d_l2cerr[2];
assign dtl2c_1 = m_d_l2cerr[1];
assign dtl2c_0 = m_d_l2cerr[0];
assign m_desr_et_7[5:0] =
({6 { itl2c_7}} & 6'b100001) |
({6 { dtl2c_7}} & 6'b100011) ;
assign m_desr_et_6[5:0] =
({6 { itl2c_6}} & 6'b100001) |
({6 { dtl2c_6}} & 6'b100011) ;
assign m_desr_et_5[5:0] =
({6 { itl2c_5}} & 6'b100001) |
({6 { dtl2c_5}} & 6'b100011) ;
assign m_desr_et_4[5:0] =
({6 { itl2c_4}} & 6'b100001) |
({6 { dtl2c_4}} & 6'b100011) ;
assign m_desr_et_3[5:0] =
({6 { itl2c_3}} & 6'b100001) |
({6 { dtl2c_3}} & 6'b100011) ;
assign m_desr_et_2[5:0] =
({6 { itl2c_2}} & 6'b100001) |
({6 { dtl2c_2}} & 6'b100011) ;
assign m_desr_et_1[5:0] =
({6 { itl2c_1}} & 6'b100001) |
({6 { dtl2c_1}} & 6'b100011) ;
assign m_desr_et_0[5:0] =
({6 { itl2c_0}} & 6'b100001) |
({6 { dtl2c_0}} & 6'b100011) ;
// No desr_ea for L2 correctable errors for MMU
// MRA, SCA, and TCA precise but out-of-pipe errors (ASI access)
// Both sources should have same TID
// but TCA errors take a cycle longer to be recorded due to longer path for
{ a_tid[2] & a_tid[1] & a_tid[0],
a_tid[2] & a_tid[1] & ~a_tid[0],
a_tid[2] & ~a_tid[1] & a_tid[0],
a_tid[2] & ~a_tid[1] & ~a_tid[0],
~a_tid[2] & a_tid[1] & a_tid[0],
~a_tid[2] & a_tid[1] & ~a_tid[0],
~a_tid[2] & ~a_tid[1] & a_tid[0],
~a_tid[2] & ~a_tid[1] & ~a_tid[0]} &
{8 {mrau | scac | scau}};
tlu_ras_ctl_msff_ctl_macro__width_5 tca_error_lat (
.scan_in(tca_error_lat_scanin),
.scan_out(tca_error_lat_scanout),
assign tca_dec_tid[7:0] =
{ tca_tid[2] & tca_tid[1] & tca_tid[0],
tca_tid[2] & tca_tid[1] & ~tca_tid[0],
tca_tid[2] & ~tca_tid[1] & tca_tid[0],
tca_tid[2] & ~tca_tid[1] & ~tca_tid[0],
~tca_tid[2] & tca_tid[1] & tca_tid[0],
~tca_tid[2] & tca_tid[1] & ~tca_tid[0],
~tca_tid[2] & ~tca_tid[1] & tca_tid[0],
~tca_tid[2] & ~tca_tid[1] & ~tca_tid[0]} &
mmu_asi_uecc & mmu_asi_mra_not_sca;
mmu_asi_cecc & ~mmu_asi_mra_not_sca;
mmu_asi_uecc & ~mmu_asi_mra_not_sca;
( a_dsfsr[3:0] & {4 { a_dec_tid[7]}}) |
(tca_dsfsr[3:0] & {4 {tca_dec_tid[7]}}) ;
( a_dsfsr[3:0] & {4 { a_dec_tid[6]}}) |
(tca_dsfsr[3:0] & {4 {tca_dec_tid[6]}}) ;
( a_dsfsr[3:0] & {4 { a_dec_tid[5]}}) |
(tca_dsfsr[3:0] & {4 {tca_dec_tid[5]}}) ;
( a_dsfsr[3:0] & {4 { a_dec_tid[4]}}) |
(tca_dsfsr[3:0] & {4 {tca_dec_tid[4]}}) ;
( a_dsfsr[3:0] & {4 { a_dec_tid[3]}}) |
(tca_dsfsr[3:0] & {4 {tca_dec_tid[3]}}) ;
( a_dsfsr[3:0] & {4 { a_dec_tid[2]}}) |
(tca_dsfsr[3:0] & {4 {tca_dec_tid[2]}}) ;
( a_dsfsr[3:0] & {4 { a_dec_tid[1]}}) |
(tca_dsfsr[3:0] & {4 {tca_dec_tid[1]}}) ;
( a_dsfsr[3:0] & {4 { a_dec_tid[0]}}) |
(tca_dsfsr[3:0] & {4 {tca_dec_tid[0]}}) ;
({11 {scac | scau}} & mmu_asi_index[10:0] ) |
({11 {mrau }} &{{8 {1'b0}}, mmu_asi_index[2:0]}) ;
{1'b0, cel_syndrome[7:0], tlu_tca_index[1:0]}) ;
( a_dsfar[10:0] & {11 { a_dec_tid[7]}}) |
(tca_dsfar[10:0] & {11 {tca_dec_tid[7]}}) ;
( a_dsfar[10:0] & {11 { a_dec_tid[6]}}) |
(tca_dsfar[10:0] & {11 {tca_dec_tid[6]}}) ;
( a_dsfar[10:0] & {11 { a_dec_tid[5]}}) |
(tca_dsfar[10:0] & {11 {tca_dec_tid[5]}}) ;
( a_dsfar[10:0] & {11 { a_dec_tid[4]}}) |
(tca_dsfar[10:0] & {11 {tca_dec_tid[4]}}) ;
( a_dsfar[10:0] & {11 { a_dec_tid[3]}}) |
(tca_dsfar[10:0] & {11 {tca_dec_tid[3]}}) ;
( a_dsfar[10:0] & {11 { a_dec_tid[2]}}) |
(tca_dsfar[10:0] & {11 {tca_dec_tid[2]}}) ;
( a_dsfar[10:0] & {11 { a_dec_tid[1]}}) |
(tca_dsfar[10:0] & {11 {tca_dec_tid[1]}}) ;
( a_dsfar[10:0] & {11 { a_dec_tid[0]}}) |
(tca_dsfar[10:0] & {11 {tca_dec_tid[0]}}) ;
// TSA precise but out-of-pipe errors (ASI access and done and retry)
{ asi_tsacu_tid[2] & asi_tsacu_tid[1] & asi_tsacu_tid[0],
asi_tsacu_tid[2] & asi_tsacu_tid[1] & ~asi_tsacu_tid[0],
asi_tsacu_tid[2] & ~asi_tsacu_tid[1] & asi_tsacu_tid[0],
asi_tsacu_tid[2] & ~asi_tsacu_tid[1] & ~asi_tsacu_tid[0],
~asi_tsacu_tid[2] & asi_tsacu_tid[1] & asi_tsacu_tid[0],
~asi_tsacu_tid[2] & asi_tsacu_tid[1] & ~asi_tsacu_tid[0],
~asi_tsacu_tid[2] & ~asi_tsacu_tid[1] & asi_tsacu_tid[0],
~asi_tsacu_tid[2] & ~asi_tsacu_tid[1] & ~asi_tsacu_tid[0]};
tlu_tsac[7:0] | ({8 {asi_tsac}} & ta_dec_tid[7:0]);
tlu_tsau[7:0] | ({8 {asi_tsau}} & ta_dec_tid[7:0]);
assign ras_dsfar_sel_tsa[7:0] =
({4 {tsac[7]}} & 4'b1000) |
({4 {tsau[7]}} & 4'b1001) ;
({4 {tsac[6]}} & 4'b1000) |
({4 {tsau[6]}} & 4'b1001) ;
({4 {tsac[5]}} & 4'b1000) |
({4 {tsau[5]}} & 4'b1001) ;
({4 {tsac[4]}} & 4'b1000) |
({4 {tsau[4]}} & 4'b1001) ;
({4 {tsac[3]}} & 4'b1000) |
({4 {tsau[3]}} & 4'b1001) ;
({4 {tsac[2]}} & 4'b1000) |
({4 {tsau[2]}} & 4'b1001) ;
({4 {tsac[1]}} & 4'b1000) |
({4 {tsau[1]}} & 4'b1001) ;
({4 {tsac[0]}} & 4'b1000) |
({4 {tsau[0]}} & 4'b1001) ;
// DSFAR for TSA errors handled in tlu_dfd_dp
// Data cache errors on L2
tlu_ras_ctl_msff_ctl_macro__width_9 l_dsfar_lat (
.scan_in(l_dsfar_lat_scanin),
.scan_out(l_dsfar_lat_scanout),
.din (lsu_dcerr_sfar_g [8:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 l_tid_lat (
.scan_in(l_tid_lat_scanin),
.scan_out(l_tid_lat_scanout),
.din (lsu_dcerr_tid_g [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_1 dcl2c_lat (
.scan_in(dcl2c_lat_scanin),
.scan_out(dcl2c_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 dcl2u_lat (
.scan_in(dcl2u_lat_scanin),
.scan_out(dcl2u_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 dcl2nd_lat (
.scan_in(dcl2nd_lat_scanin),
.scan_out(dcl2nd_lat_scanout),
.din (lsu_dcl2nd_err_g ),
tlu_ras_ctl_msff_ctl_macro__width_1 dcsoc_lat (
.scan_in(dcsoc_lat_scanin),
.scan_out(dcsoc_lat_scanout),
{ l_tid[2] & l_tid[1] & l_tid[0],
l_tid[2] & l_tid[1] & ~l_tid[0],
l_tid[2] & ~l_tid[1] & l_tid[0],
l_tid[2] & ~l_tid[1] & ~l_tid[0],
~l_tid[2] & l_tid[1] & l_tid[0],
~l_tid[2] & l_tid[1] & ~l_tid[0],
~l_tid[2] & ~l_tid[1] & l_tid[0],
~l_tid[2] & ~l_tid[1] & ~l_tid[0]} & {8 {dcl2c | dcl2u | dcl2nd}};
({3 {dcl2u & ~dcsoc}} & 3'b001) |
({3 {dcl2nd & ~dcsoc}} & 3'b010) |
({3 {dcl2u & dcsoc}} & 3'b100) ;
l_dsfsr[2:0] & {3 {l_dec_tid[7]}};
l_dsfsr[2:0] & {3 {l_dec_tid[6]}};
l_dsfsr[2:0] & {3 {l_dec_tid[5]}};
l_dsfsr[2:0] & {3 {l_dec_tid[4]}};
l_dsfsr[2:0] & {3 {l_dec_tid[3]}};
l_dsfsr[2:0] & {3 {l_dec_tid[2]}};
l_dsfsr[2:0] & {3 {l_dec_tid[1]}};
l_dsfsr[2:0] & {3 {l_dec_tid[0]}};
l_dsfar[8:0] & {9 {l_dec_tid[7]}};
l_dsfar[8:0] & {9 {l_dec_tid[6]}};
l_dsfar[8:0] & {9 {l_dec_tid[5]}};
l_dsfar[8:0] & {9 {l_dec_tid[4]}};
l_dsfar[8:0] & {9 {l_dec_tid[3]}};
l_dsfar[8:0] & {9 {l_dec_tid[2]}};
l_dsfar[8:0] & {9 {l_dec_tid[1]}};
l_dsfar[8:0] & {9 {l_dec_tid[0]}};
({6 {dcl2c & dcsoc}} & 6'b001011) |
({6 {dcl2c & ~dcsoc}} & 6'b100100) ;
assign l_desr_et_7[5:0] =
l_desr_et[5:0] & {6 {l_dec_tid[7]}};
assign l_desr_et_6[5:0] =
l_desr_et[5:0] & {6 {l_dec_tid[6]}};
assign l_desr_et_5[5:0] =
l_desr_et[5:0] & {6 {l_dec_tid[5]}};
assign l_desr_et_4[5:0] =
l_desr_et[5:0] & {6 {l_dec_tid[4]}};
assign l_desr_et_3[5:0] =
l_desr_et[5:0] & {6 {l_dec_tid[3]}};
assign l_desr_et_2[5:0] =
l_desr_et[5:0] & {6 {l_dec_tid[2]}};
assign l_desr_et_1[5:0] =
l_desr_et[5:0] & {6 {l_dec_tid[1]}};
assign l_desr_et_0[5:0] =
l_desr_et[5:0] & {6 {l_dec_tid[0]}};
// Precise but out-of-pipe store buffer errors
tlu_ras_ctl_msff_ctl_macro__width_5 s_dsfar_lat (
.scan_in(s_dsfar_lat_scanin),
.scan_out(s_dsfar_lat_scanout),
.din ({lsu_stberr_priv_g [1:0],
lsu_stberr_index_g [2:0]}),
tlu_ras_ctl_msff_ctl_macro__width_3 s_tid_lat (
.scan_in(s_tid_lat_scanin),
.scan_out(s_tid_lat_scanout),
.din (lsu_stberr_tid_g [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_1 stb_flush_lat (
.scan_in(stb_flush_lat_scanin),
.scan_out(stb_flush_lat_scanout),
assign update_priv[7:0] =
{8 {stb_flush}} & s_dsfsr_dec_tid_raw[7:0] &
{(fesr_priv[1] & ~dfd_fesr_priv_7[1] ) |
(fesr_priv[0] & ~dfd_fesr_priv_7[1] & ~dfd_fesr_priv_7[0]),
(fesr_priv[1] & ~dfd_fesr_priv_6[1] ) |
(fesr_priv[0] & ~dfd_fesr_priv_6[1] & ~dfd_fesr_priv_6[0]),
(fesr_priv[1] & ~dfd_fesr_priv_5[1] ) |
(fesr_priv[0] & ~dfd_fesr_priv_5[1] & ~dfd_fesr_priv_5[0]),
(fesr_priv[1] & ~dfd_fesr_priv_4[1] ) |
(fesr_priv[0] & ~dfd_fesr_priv_4[1] & ~dfd_fesr_priv_4[0]),
(fesr_priv[1] & ~dfd_fesr_priv_3[1] ) |
(fesr_priv[0] & ~dfd_fesr_priv_3[1] & ~dfd_fesr_priv_3[0]),
(fesr_priv[1] & ~dfd_fesr_priv_2[1] ) |
(fesr_priv[0] & ~dfd_fesr_priv_2[1] & ~dfd_fesr_priv_2[0]),
(fesr_priv[1] & ~dfd_fesr_priv_1[1] ) |
(fesr_priv[0] & ~dfd_fesr_priv_1[1] & ~dfd_fesr_priv_1[0]),
(fesr_priv[1] & ~dfd_fesr_priv_0[1] ) |
(fesr_priv[0] & ~dfd_fesr_priv_0[1] & ~dfd_fesr_priv_0[0]) };
assign ras_update_priv[7:0] =
assign ras_fesr_priv[59:58] =
tlu_ras_ctl_msff_ctl_macro__width_1 sbdlc_lat (
.scan_in(sbdlc_lat_scanin),
.scan_out(sbdlc_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 sbdlu_lat (
.scan_in(sbdlu_lat_scanin),
.scan_out(sbdlu_lat_scanout),
assign s_dsfsr_dec_tid_raw[7:0] =
{ s_tid[2] & s_tid[1] & s_tid[0],
s_tid[2] & s_tid[1] & ~s_tid[0],
s_tid[2] & ~s_tid[1] & s_tid[0],
s_tid[2] & ~s_tid[1] & ~s_tid[0],
~s_tid[2] & s_tid[1] & s_tid[0],
~s_tid[2] & s_tid[1] & ~s_tid[0],
~s_tid[2] & ~s_tid[1] & s_tid[0],
~s_tid[2] & ~s_tid[1] & ~s_tid[0]} ;
assign s_dsfsr_dec_tid[7:0] =
s_dsfsr_dec_tid_raw[7:0] &
s_dsfsr[2:0] & {3 {s_dsfsr_dec_tid[7]}};
s_dsfsr[2:0] & {3 {s_dsfsr_dec_tid[6]}};
s_dsfsr[2:0] & {3 {s_dsfsr_dec_tid[5]}};
s_dsfsr[2:0] & {3 {s_dsfsr_dec_tid[4]}};
s_dsfsr[2:0] & {3 {s_dsfsr_dec_tid[3]}};
s_dsfsr[2:0] & {3 {s_dsfsr_dec_tid[2]}};
s_dsfsr[2:0] & {3 {s_dsfsr_dec_tid[1]}};
s_dsfsr[2:0] & {3 {s_dsfsr_dec_tid[0]}};
s_dsfar[2:0] & {3 {s_dsfsr_dec_tid[7]}};
s_dsfar[2:0] & {3 {s_dsfsr_dec_tid[6]}};
s_dsfar[2:0] & {3 {s_dsfsr_dec_tid[5]}};
s_dsfar[2:0] & {3 {s_dsfsr_dec_tid[4]}};
s_dsfar[2:0] & {3 {s_dsfsr_dec_tid[3]}};
s_dsfar[2:0] & {3 {s_dsfsr_dec_tid[2]}};
s_dsfar[2:0] & {3 {s_dsfsr_dec_tid[1]}};
s_dsfar[2:0] & {3 {s_dsfsr_dec_tid[0]}};
//////////////////////////////////////////////////////////////////////////////
assign isfsr_7_new_in[2:0] =
pipe_isfsr_7[2:0] | m_isfsr_7[2:0] ;
assign isfsr_6_new_in[2:0] =
pipe_isfsr_6[2:0] | m_isfsr_6[2:0] ;
assign isfsr_5_new_in[2:0] =
pipe_isfsr_5[2:0] | m_isfsr_5[2:0] ;
assign isfsr_4_new_in[2:0] =
pipe_isfsr_4[2:0] | m_isfsr_4[2:0] ;
assign isfsr_3_new_in[2:0] =
pipe_isfsr_3[2:0] | m_isfsr_3[2:0] ;
assign isfsr_2_new_in[2:0] =
pipe_isfsr_2[2:0] | m_isfsr_2[2:0] ;
assign isfsr_1_new_in[2:0] =
pipe_isfsr_1[2:0] | m_isfsr_1[2:0] ;
assign isfsr_0_new_in[2:0] =
pipe_isfsr_0[2:0] | m_isfsr_0[2:0] ;
(isfsr_7_new_in[2:0] & {3 {~asi_wr_isfsr[7]}}) |
(isfsr_7[2:0] & ~{3 {| {asi_wr_isfsr[7], isfsr_7_new_in[2:0]}}}) |
(asi_wr_data[2:0] & {3 { asi_wr_isfsr[7]}}) ;
(isfsr_6_new_in[2:0] & {3 {~asi_wr_isfsr[6]}}) |
(isfsr_6[2:0] & ~{3 {| {asi_wr_isfsr[6], isfsr_6_new_in[2:0]}}}) |
(asi_wr_data[2:0] & {3 { asi_wr_isfsr[6]}}) ;
(isfsr_5_new_in[2:0] & {3 {~asi_wr_isfsr[5]}}) |
(isfsr_5[2:0] & ~{3 {| {asi_wr_isfsr[5], isfsr_5_new_in[2:0]}}}) |
(asi_wr_data[2:0] & {3 { asi_wr_isfsr[5]}}) ;
(isfsr_4_new_in[2:0] & {3 {~asi_wr_isfsr[4]}}) |
(isfsr_4[2:0] & ~{3 {| {asi_wr_isfsr[4], isfsr_4_new_in[2:0]}}}) |
(asi_wr_data[2:0] & {3 { asi_wr_isfsr[4]}}) ;
(isfsr_3_new_in[2:0] & {3 {~asi_wr_isfsr[3]}}) |
(isfsr_3[2:0] & ~{3 {| {asi_wr_isfsr[3], isfsr_3_new_in[2:0]}}}) |
(asi_wr_data[2:0] & {3 { asi_wr_isfsr[3]}}) ;
(isfsr_2_new_in[2:0] & {3 {~asi_wr_isfsr[2]}}) |
(isfsr_2[2:0] & ~{3 {| {asi_wr_isfsr[2], isfsr_2_new_in[2:0]}}}) |
(asi_wr_data[2:0] & {3 { asi_wr_isfsr[2]}}) ;
(isfsr_1_new_in[2:0] & {3 {~asi_wr_isfsr[1]}}) |
(isfsr_1[2:0] & ~{3 {| {asi_wr_isfsr[1], isfsr_1_new_in[2:0]}}}) |
(asi_wr_data[2:0] & {3 { asi_wr_isfsr[1]}}) ;
(isfsr_0_new_in[2:0] & {3 {~asi_wr_isfsr[0]}}) |
(isfsr_0[2:0] & ~{3 {| {asi_wr_isfsr[0], isfsr_0_new_in[2:0]}}}) |
(asi_wr_data[2:0] & {3 { asi_wr_isfsr[0]}}) ;
assign precise_i_error[7:0] =
{ | {pipe_isfsr_7[2:0], m_isfsr_7[2:0]},
| {pipe_isfsr_6[2:0], m_isfsr_6[2:0]},
| {pipe_isfsr_5[2:0], m_isfsr_5[2:0]},
| {pipe_isfsr_4[2:0], m_isfsr_4[2:0]},
| {pipe_isfsr_3[2:0], m_isfsr_3[2:0]},
| {pipe_isfsr_2[2:0], m_isfsr_2[2:0]},
| {pipe_isfsr_1[2:0], m_isfsr_1[2:0]},
| {pipe_isfsr_0[2:0], m_isfsr_0[2:0]} };
tlu_ras_ctl_msff_ctl_macro__width_3 isfsr_7_lat (
.scan_in(isfsr_7_lat_wmr_scanin),
.scan_out(isfsr_7_lat_wmr_scanout),
.din (isfsr_7_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 isfsr_6_lat (
.scan_in(isfsr_6_lat_wmr_scanin),
.scan_out(isfsr_6_lat_wmr_scanout),
.din (isfsr_6_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 isfsr_5_lat (
.scan_in(isfsr_5_lat_wmr_scanin),
.scan_out(isfsr_5_lat_wmr_scanout),
.din (isfsr_5_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 isfsr_4_lat (
.scan_in(isfsr_4_lat_wmr_scanin),
.scan_out(isfsr_4_lat_wmr_scanout),
.din (isfsr_4_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 isfsr_3_lat (
.scan_in(isfsr_3_lat_wmr_scanin),
.scan_out(isfsr_3_lat_wmr_scanout),
.din (isfsr_3_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 isfsr_2_lat (
.scan_in(isfsr_2_lat_wmr_scanin),
.scan_out(isfsr_2_lat_wmr_scanout),
.din (isfsr_2_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 isfsr_1_lat (
.scan_in(isfsr_1_lat_wmr_scanin),
.scan_out(isfsr_1_lat_wmr_scanout),
.din (isfsr_1_in [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 isfsr_0_lat (
.scan_in(isfsr_0_lat_wmr_scanin),
.scan_out(isfsr_0_lat_wmr_scanout),
.din (isfsr_0_in [2:0] ),
//////////////////////////////////////////////////////////////////////////////
assign dsfsr_7_new_in[3:0] =
{1'b0, pipe_dsfsr_7[2:0]} | {1'b0, m_dsfsr_7[2:0]} |
a_dsfsr_7[3:0] | t_dsfsr_7[3:0] | {{1 {1'b0}}, l_dsfsr_7[2:0]} |
assign dsfsr_6_new_in[3:0] =
{1'b0, pipe_dsfsr_6[2:0]} | {1'b0, m_dsfsr_6[2:0]} |
a_dsfsr_6[3:0] | t_dsfsr_6[3:0] | {{1 {1'b0}}, l_dsfsr_6[2:0]} |
assign dsfsr_5_new_in[3:0] =
{1'b0, pipe_dsfsr_5[2:0]} | {1'b0, m_dsfsr_5[2:0]} |
a_dsfsr_5[3:0] | t_dsfsr_5[3:0] | {{1 {1'b0}}, l_dsfsr_5[2:0]} |
assign dsfsr_4_new_in[3:0] =
{1'b0, pipe_dsfsr_4[2:0]} | {1'b0, m_dsfsr_4[2:0]} |
a_dsfsr_4[3:0] | t_dsfsr_4[3:0] | {{1 {1'b0}}, l_dsfsr_4[2:0]} |
assign dsfsr_3_new_in[3:0] =
{1'b0, pipe_dsfsr_3[2:0]} | {1'b0, m_dsfsr_3[2:0]} |
a_dsfsr_3[3:0] | t_dsfsr_3[3:0] | {{1 {1'b0}}, l_dsfsr_3[2:0]} |
assign dsfsr_2_new_in[3:0] =
{1'b0, pipe_dsfsr_2[2:0]} | {1'b0, m_dsfsr_2[2:0]} |
a_dsfsr_2[3:0] | t_dsfsr_2[3:0] | {{1 {1'b0}}, l_dsfsr_2[2:0]} |
assign dsfsr_1_new_in[3:0] =
{1'b0, pipe_dsfsr_1[2:0]} | {1'b0, m_dsfsr_1[2:0]} |
a_dsfsr_1[3:0] | t_dsfsr_1[3:0] | {{1 {1'b0}}, l_dsfsr_1[2:0]} |
assign dsfsr_0_new_in[3:0] =
{1'b0, pipe_dsfsr_0[2:0]} | {1'b0, m_dsfsr_0[2:0]} |
a_dsfsr_0[3:0] | t_dsfsr_0[3:0] | {{1 {1'b0}}, l_dsfsr_0[2:0]} |
(dsfsr_7_new_in[3:0] & {4 {~asi_wr_dsfsr[7]}}) |
(dsfsr_7[3:0] & ~{4 {| {asi_wr_dsfsr[7], dsfsr_7_new_in[3:0]}}}) |
(asi_wr_data[3:0] & {4 { asi_wr_dsfsr[7]}}) ;
(dsfsr_6_new_in[3:0] & {4 {~asi_wr_dsfsr[6]}}) |
(dsfsr_6[3:0] & ~{4 {| {asi_wr_dsfsr[6], dsfsr_6_new_in[3:0]}}}) |
(asi_wr_data[3:0] & {4 { asi_wr_dsfsr[6]}}) ;
(dsfsr_5_new_in[3:0] & {4 {~asi_wr_dsfsr[5]}}) |
(dsfsr_5[3:0] & ~{4 {| {asi_wr_dsfsr[5], dsfsr_5_new_in[3:0]}}}) |
(asi_wr_data[3:0] & {4 { asi_wr_dsfsr[5]}}) ;
(dsfsr_4_new_in[3:0] & {4 {~asi_wr_dsfsr[4]}}) |
(dsfsr_4[3:0] & ~{4 {| {asi_wr_dsfsr[4], dsfsr_4_new_in[3:0]}}}) |
(asi_wr_data[3:0] & {4 { asi_wr_dsfsr[4]}}) ;
(dsfsr_3_new_in[3:0] & {4 {~asi_wr_dsfsr[3]}}) |
(dsfsr_3[3:0] & ~{4 {| {asi_wr_dsfsr[3], dsfsr_3_new_in[3:0]}}}) |
(asi_wr_data[3:0] & {4 { asi_wr_dsfsr[3]}}) ;
(dsfsr_2_new_in[3:0] & {4 {~asi_wr_dsfsr[2]}}) |
(dsfsr_2[3:0] & ~{4 {| {asi_wr_dsfsr[2], dsfsr_2_new_in[3:0]}}}) |
(asi_wr_data[3:0] & {4 { asi_wr_dsfsr[2]}}) ;
(dsfsr_1_new_in[3:0] & {4 {~asi_wr_dsfsr[1]}}) |
(dsfsr_1[3:0] & ~{4 {| {asi_wr_dsfsr[1], dsfsr_1_new_in[3:0]}}}) |
(asi_wr_data[3:0] & {4 { asi_wr_dsfsr[1]}}) ;
(dsfsr_0_new_in[3:0] & {4 {~asi_wr_dsfsr[0]}}) |
(dsfsr_0[3:0] & ~{4 {| {asi_wr_dsfsr[0], dsfsr_0_new_in[3:0]}}}) |
(asi_wr_data[3:0] & {4 { asi_wr_dsfsr[0]}}) ;
assign precise_d_error[7:0] =
{ | {pipe_dsfsr_7[2:0], m_dsfsr_7[2:0], a_dsfsr_7[3:0],
t_dsfsr_7[3:0], l_dsfsr_7[2:0], s_dsfsr_7[2:0]},
| {pipe_dsfsr_6[2:0], m_dsfsr_6[2:0], a_dsfsr_6[3:0],
t_dsfsr_6[3:0], l_dsfsr_6[2:0], s_dsfsr_6[2:0]},
| {pipe_dsfsr_5[2:0], m_dsfsr_5[2:0], a_dsfsr_5[3:0],
t_dsfsr_5[3:0], l_dsfsr_5[2:0], s_dsfsr_5[2:0]},
| {pipe_dsfsr_4[2:0], m_dsfsr_4[2:0], a_dsfsr_4[3:0],
t_dsfsr_4[3:0], l_dsfsr_4[2:0], s_dsfsr_4[2:0]},
| {pipe_dsfsr_3[2:0], m_dsfsr_3[2:0], a_dsfsr_3[3:0],
t_dsfsr_3[3:0], l_dsfsr_3[2:0], s_dsfsr_3[2:0]},
| {pipe_dsfsr_2[2:0], m_dsfsr_2[2:0], a_dsfsr_2[3:0],
t_dsfsr_2[3:0], l_dsfsr_2[2:0], s_dsfsr_2[2:0]},
| {pipe_dsfsr_1[2:0], m_dsfsr_1[2:0], a_dsfsr_1[3:0],
t_dsfsr_1[3:0], l_dsfsr_1[2:0], s_dsfsr_1[2:0]},
| {pipe_dsfsr_0[2:0], m_dsfsr_0[2:0], a_dsfsr_0[3:0],
t_dsfsr_0[3:0], l_dsfsr_0[2:0], s_dsfsr_0[2:0]}};
tlu_ras_ctl_msff_ctl_macro__width_4 dsfsr_7_lat (
.scan_in(dsfsr_7_lat_wmr_scanin),
.scan_out(dsfsr_7_lat_wmr_scanout),
.din (dsfsr_7_in [3:0] ),
tlu_ras_ctl_msff_ctl_macro__width_4 dsfsr_6_lat (
.scan_in(dsfsr_6_lat_wmr_scanin),
.scan_out(dsfsr_6_lat_wmr_scanout),
.din (dsfsr_6_in [3:0] ),
tlu_ras_ctl_msff_ctl_macro__width_4 dsfsr_5_lat (
.scan_in(dsfsr_5_lat_wmr_scanin),
.scan_out(dsfsr_5_lat_wmr_scanout),
.din (dsfsr_5_in [3:0] ),
tlu_ras_ctl_msff_ctl_macro__width_4 dsfsr_4_lat (
.scan_in(dsfsr_4_lat_wmr_scanin),
.scan_out(dsfsr_4_lat_wmr_scanout),
.din (dsfsr_4_in [3:0] ),
tlu_ras_ctl_msff_ctl_macro__width_4 dsfsr_3_lat (
.scan_in(dsfsr_3_lat_wmr_scanin),
.scan_out(dsfsr_3_lat_wmr_scanout),
.din (dsfsr_3_in [3:0] ),
tlu_ras_ctl_msff_ctl_macro__width_4 dsfsr_2_lat (
.scan_in(dsfsr_2_lat_wmr_scanin),
.scan_out(dsfsr_2_lat_wmr_scanout),
.din (dsfsr_2_in [3:0] ),
tlu_ras_ctl_msff_ctl_macro__width_4 dsfsr_1_lat (
.scan_in(dsfsr_1_lat_wmr_scanin),
.scan_out(dsfsr_1_lat_wmr_scanout),
.din (dsfsr_1_in [3:0] ),
tlu_ras_ctl_msff_ctl_macro__width_4 dsfsr_0_lat (
.scan_in(dsfsr_0_lat_wmr_scanin),
.scan_out(dsfsr_0_lat_wmr_scanout),
.din (dsfsr_0_in [3:0] ),
//////////////////////////////////////////////////////////////////////////////
tlu_ras_ctl_msff_ctl_macro__width_8 asi_rd_ctl_lat (
.scan_in(asi_rd_ctl_lat_scanin),
.scan_out(asi_rd_ctl_lat_scanout),
{ rd_tid[2] & rd_tid[1] & rd_tid[0],
rd_tid[2] & rd_tid[1] & ~rd_tid[0],
rd_tid[2] & ~rd_tid[1] & rd_tid[0],
rd_tid[2] & ~rd_tid[1] & ~rd_tid[0],
~rd_tid[2] & rd_tid[1] & rd_tid[0],
~rd_tid[2] & rd_tid[1] & ~rd_tid[0],
~rd_tid[2] & ~rd_tid[1] & rd_tid[0],
~rd_tid[2] & ~rd_tid[1] & ~rd_tid[0]};
assign rd_isfsr_dec[7:0] =
{8 {rd_isfsr}} & rd_tid_dec[7:0];
assign rd_dsfsr_dec[7:0] =
{8 {rd_dsfsr}} & rd_tid_dec[7:0];
assign rd_desr_dec[7:0] =
{8 {rd_desr}} & rd_tid_dec[7:0];
assign ras_rd_dsfar[7:0] =
{8 {rd_dsfar}} & rd_tid_dec[7:0];
assign ras_rd_desr[7:0] =
{8 {rd_desr}} & rd_tid_dec[7:0];
assign ras_rd_fesr[7:0] =
{8 {rd_fesr}} & rd_tid_dec[7:0];
assign ras_asi_data[3:0] =
({1'b0, isfsr_7[2:0]} & {4 {rd_isfsr_dec[7]}}) |
({1'b0, isfsr_6[2:0]} & {4 {rd_isfsr_dec[6]}}) |
({1'b0, isfsr_5[2:0]} & {4 {rd_isfsr_dec[5]}}) |
({1'b0, isfsr_4[2:0]} & {4 {rd_isfsr_dec[4]}}) |
({1'b0, isfsr_3[2:0]} & {4 {rd_isfsr_dec[3]}}) |
({1'b0, isfsr_2[2:0]} & {4 {rd_isfsr_dec[2]}}) |
({1'b0, isfsr_1[2:0]} & {4 {rd_isfsr_dec[1]}}) |
({1'b0, isfsr_0[2:0]} & {4 {rd_isfsr_dec[0]}}) |
( dsfsr_7[3:0] & {4 {rd_dsfsr_dec[7]}}) |
( dsfsr_6[3:0] & {4 {rd_dsfsr_dec[6]}}) |
( dsfsr_5[3:0] & {4 {rd_dsfsr_dec[5]}}) |
( dsfsr_4[3:0] & {4 {rd_dsfsr_dec[4]}}) |
( dsfsr_3[3:0] & {4 {rd_dsfsr_dec[3]}}) |
( dsfsr_2[3:0] & {4 {rd_dsfsr_dec[2]}}) |
( dsfsr_1[3:0] & {4 {rd_dsfsr_dec[1]}}) |
( dsfsr_0[3:0] & {4 {rd_dsfsr_dec[0]}}) ;
//////////////////////////////////////////////////////////////////////////////
assign ras_dsfar_7[19:0] =
{{17 {1'b0}}, m_dsfar_7[2:0]} |
{{ 9 {1'b0}}, a_dsfar_7[10:0]} |
{{11 {1'b0}}, l_dsfar_7[8:0]} |
{{17 {1'b0}}, s_dsfar_7[2:0]} ;
assign ras_dsfar_6[19:0] =
{{17 {1'b0}}, m_dsfar_6[2:0]} |
{{ 9 {1'b0}}, a_dsfar_6[10:0]} |
{{11 {1'b0}}, l_dsfar_6[8:0]} |
{{17 {1'b0}}, s_dsfar_6[2:0]} ;
assign ras_dsfar_5[19:0] =
{{17 {1'b0}}, m_dsfar_5[2:0]} |
{{ 9 {1'b0}}, a_dsfar_5[10:0]} |
{{11 {1'b0}}, l_dsfar_5[8:0]} |
{{17 {1'b0}}, s_dsfar_5[2:0]} ;
assign ras_dsfar_4[19:0] =
{{17 {1'b0}}, m_dsfar_4[2:0]} |
{{ 9 {1'b0}}, a_dsfar_4[10:0]} |
{{11 {1'b0}}, l_dsfar_4[8:0]} |
{{17 {1'b0}}, s_dsfar_4[2:0]} ;
assign ras_dsfar_3[19:0] =
{{17 {1'b0}}, m_dsfar_3[2:0]} |
{{ 9 {1'b0}}, a_dsfar_3[10:0]} |
{{11 {1'b0}}, l_dsfar_3[8:0]} |
{{17 {1'b0}}, s_dsfar_3[2:0]} ;
assign ras_dsfar_2[19:0] =
{{17 {1'b0}}, m_dsfar_2[2:0]} |
{{ 9 {1'b0}}, a_dsfar_2[10:0]} |
{{11 {1'b0}}, l_dsfar_2[8:0]} |
{{17 {1'b0}}, s_dsfar_2[2:0]} ;
assign ras_dsfar_1[19:0] =
{{17 {1'b0}}, m_dsfar_1[2:0]} |
{{ 9 {1'b0}}, a_dsfar_1[10:0]} |
{{11 {1'b0}}, l_dsfar_1[8:0]} |
{{17 {1'b0}}, s_dsfar_1[2:0]} ;
assign ras_dsfar_0[19:0] =
{{17 {1'b0}}, m_dsfar_0[2:0]} |
{{ 9 {1'b0}}, a_dsfar_0[10:0]} |
{{11 {1'b0}}, l_dsfar_0[8:0]} |
{{17 {1'b0}}, s_dsfar_0[2:0]} ;
assign ras_dsfar_sel_ras[7:0] =
{| {dsfsr_7_new_in[3:0], itmu_7, dtmu_7},
| {dsfsr_6_new_in[3:0], itmu_6, dtmu_6},
| {dsfsr_5_new_in[3:0], itmu_5, dtmu_5},
| {dsfsr_4_new_in[3:0], itmu_4, dtmu_4},
| {dsfsr_3_new_in[3:0], itmu_3, dtmu_3},
| {dsfsr_2_new_in[3:0], itmu_2, dtmu_2},
| {dsfsr_1_new_in[3:0], itmu_1, dtmu_1},
| {dsfsr_0_new_in[3:0], itmu_0, dtmu_0}} &
~dsfar_sel_lsu_va_for_error[7:0];
//////////////////////////////////////////////////////////////////////////////
// Handle disrupting errors
// Data cache errors -- long latency and implemented as precise but
// technically disrupting
tlu_ras_ctl_msff_ctl_macro__width_1 dcvp_lat (
.scan_in(dcvp_lat_scanin),
.scan_out(dcvp_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 dctp_lat (
.scan_in(dctp_lat_scanin),
.scan_out(dctp_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 dctm_lat (
.scan_in(dctm_lat_scanin),
.scan_out(dctm_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 dcdp_lat (
.scan_in(dcdp_lat_scanin),
.scan_out(dcdp_lat_scanout),
{ l_tid[2] & l_tid[1] & l_tid[0],
l_tid[2] & l_tid[1] & ~l_tid[0],
l_tid[2] & ~l_tid[1] & l_tid[0],
l_tid[2] & ~l_tid[1] & ~l_tid[0],
~l_tid[2] & l_tid[1] & l_tid[0],
~l_tid[2] & l_tid[1] & ~l_tid[0],
~l_tid[2] & ~l_tid[1] & l_tid[0],
~l_tid[2] & ~l_tid[1] & ~l_tid[0]} & {8 {dcvp | dctp | dctm | dcdp}};
assign d_desr_et_7[3:0] =
d_desr_et[3:0] & {4 {d_dec_tid[7]}};
assign d_desr_et_6[3:0] =
d_desr_et[3:0] & {4 {d_dec_tid[6]}};
assign d_desr_et_5[3:0] =
d_desr_et[3:0] & {4 {d_dec_tid[5]}};
assign d_desr_et_4[3:0] =
d_desr_et[3:0] & {4 {d_dec_tid[4]}};
assign d_desr_et_3[3:0] =
d_desr_et[3:0] & {4 {d_dec_tid[3]}};
assign d_desr_et_2[3:0] =
d_desr_et[3:0] & {4 {d_dec_tid[2]}};
assign d_desr_et_1[3:0] =
d_desr_et[3:0] & {4 {d_dec_tid[1]}};
assign d_desr_et_0[3:0] =
d_desr_et[3:0] & {4 {d_dec_tid[0]}};
assign d_desr_ea_7[8:0] =
l_dsfar[8:0] & {9 {d_dec_tid[7]}};
assign d_desr_ea_6[8:0] =
l_dsfar[8:0] & {9 {d_dec_tid[6]}};
assign d_desr_ea_5[8:0] =
l_dsfar[8:0] & {9 {d_dec_tid[5]}};
assign d_desr_ea_4[8:0] =
l_dsfar[8:0] & {9 {d_dec_tid[4]}};
assign d_desr_ea_3[8:0] =
l_dsfar[8:0] & {9 {d_dec_tid[3]}};
assign d_desr_ea_2[8:0] =
l_dsfar[8:0] & {9 {d_dec_tid[2]}};
assign d_desr_ea_1[8:0] =
l_dsfar[8:0] & {9 {d_dec_tid[1]}};
assign d_desr_ea_0[8:0] =
l_dsfar[8:0] & {9 {d_dec_tid[0]}};
// l2ch and soc has S = 0, others have S = 1
tlu_ras_ctl_msff_ctl_macro__width_8 cxi_lat (
.scan_in(cxi_lat_scanin),
.scan_out(cxi_lat_scanout),
cxi_l2_soc_err_type [1:0],
assign c_l2_soc_dec_tid[7:0] =
{ c_l2_soc_tid[2] & c_l2_soc_tid[1] & c_l2_soc_tid[0],
c_l2_soc_tid[2] & c_l2_soc_tid[1] & ~c_l2_soc_tid[0],
c_l2_soc_tid[2] & ~c_l2_soc_tid[1] & c_l2_soc_tid[0],
c_l2_soc_tid[2] & ~c_l2_soc_tid[1] & ~c_l2_soc_tid[0],
~c_l2_soc_tid[2] & c_l2_soc_tid[1] & c_l2_soc_tid[0],
~c_l2_soc_tid[2] & c_l2_soc_tid[1] & ~c_l2_soc_tid[0],
~c_l2_soc_tid[2] & ~c_l2_soc_tid[1] & c_l2_soc_tid[0],
~c_l2_soc_tid[2] & ~c_l2_soc_tid[1] & ~c_l2_soc_tid[0]};
{8 {l2_err}} & c_l2_soc_dec_tid[7:0];
{8 {soc_err}} & c_l2_soc_dec_tid[7:0];
c_l2_err[7:0] | c_soc_err[7:0];
(c_l2_soc_err_type[1:0] == 2'b01) & l2_err & ~c_l2_soc_sre;
(c_l2_soc_err_type[1:0] == 2'b01) & l2_err & c_l2_soc_sre;
(c_l2_soc_err_type[1:0] == 2'b01) & soc_err;
(c_l2_soc_err_type[1:0] == 2'b10) & l2_err;
(c_l2_soc_err_type[1:0] == 2'b10) & soc_err;
(c_l2_soc_err_type[1:0] == 2'b11) & l2_err;
({6 {l2ch}} & 6'b001001) |
({6 {l2u }} & 6'b110000) |
({6 {l2nd}} & 6'b110001) |
({6 {soc }} & 6'b001011) |
({6 {sou }} & 6'b110011) |
({6 {l2cs}} & 6'b110100) ;
assign l2_desr_et_7[5:0] =
l2_desr_et[5:0] & {6 {l2_dec_tid[7]}};
assign l2_desr_et_6[5:0] =
l2_desr_et[5:0] & {6 {l2_dec_tid[6]}};
assign l2_desr_et_5[5:0] =
l2_desr_et[5:0] & {6 {l2_dec_tid[5]}};
assign l2_desr_et_4[5:0] =
l2_desr_et[5:0] & {6 {l2_dec_tid[4]}};
assign l2_desr_et_3[5:0] =
l2_desr_et[5:0] & {6 {l2_dec_tid[3]}};
assign l2_desr_et_2[5:0] =
l2_desr_et[5:0] & {6 {l2_dec_tid[2]}};
assign l2_desr_et_1[5:0] =
l2_desr_et[5:0] & {6 {l2_dec_tid[1]}};
assign l2_desr_et_0[5:0] =
l2_desr_et[5:0] & {6 {l2_dec_tid[0]}};
// No data stored in DESR.EA for L2 or SOC errors
tlu_ras_ctl_msff_ctl_macro__width_1 sbdpc_lat (
.scan_in(sbdpc_lat_scanin),
.scan_out(sbdpc_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 sbdpu_lat (
.scan_in(sbdpu_lat_scanin),
.scan_out(sbdpu_lat_scanout),
s_tid[2:0] == 3'b000} & {8 {sbdpc | sbdpu}};
{sbdpu, 1'b0, sbdpc, sbdpu, sbdpu | sbdpc, 1'b0};
assign s_desr_et_7[5:0] =
s_desr_et[5:0] & {6 {sb_dec_tid[7]}};
assign s_desr_et_6[5:0] =
s_desr_et[5:0] & {6 {sb_dec_tid[6]}};
assign s_desr_et_5[5:0] =
s_desr_et[5:0] & {6 {sb_dec_tid[5]}};
assign s_desr_et_4[5:0] =
s_desr_et[5:0] & {6 {sb_dec_tid[4]}};
assign s_desr_et_3[5:0] =
s_desr_et[5:0] & {6 {sb_dec_tid[3]}};
assign s_desr_et_2[5:0] =
s_desr_et[5:0] & {6 {sb_dec_tid[2]}};
assign s_desr_et_1[5:0] =
s_desr_et[5:0] & {6 {sb_dec_tid[1]}};
assign s_desr_et_0[5:0] =
s_desr_et[5:0] & {6 {sb_dec_tid[0]}};
assign s_desr_ea_7[2:0] =
s_dsfar[2:0] & {3 {sb_dec_tid[7]}};
assign s_desr_ea_6[2:0] =
s_dsfar[2:0] & {3 {sb_dec_tid[6]}};
assign s_desr_ea_5[2:0] =
s_dsfar[2:0] & {3 {sb_dec_tid[5]}};
assign s_desr_ea_4[2:0] =
s_dsfar[2:0] & {3 {sb_dec_tid[4]}};
assign s_desr_ea_3[2:0] =
s_dsfar[2:0] & {3 {sb_dec_tid[3]}};
assign s_desr_ea_2[2:0] =
s_dsfar[2:0] & {3 {sb_dec_tid[2]}};
assign s_desr_ea_1[2:0] =
s_dsfar[2:0] & {3 {sb_dec_tid[1]}};
assign s_desr_ea_0[2:0] =
s_dsfar[2:0] & {3 {sb_dec_tid[0]}};
// 10 - ma_copy; 9:8 - syndrome; 7:0 - MA index
tlu_ras_ctl_msff_ctl_macro__width_12 mamu_err_lat (
.scan_in(mamu_err_lat_scanin),
.scan_out(mamu_err_lat_scanout),
.din ({spu_tlu_mamu_err_req_v ,
spu_tlu_mamu_err_req [10:0]}),
assign mamu_dec_tid[7:0] =
ma_dec_tid[7:0] & {8 {mamu_err_v}};
assign mamu_desr_et[5:0] =
assign mamu_desr_et_7[5:0] =
mamu_desr_et[5:0] & {6 {mamu_dec_tid[7]}};
assign mamu_desr_et_6[5:0] =
mamu_desr_et[5:0] & {6 {mamu_dec_tid[6]}};
assign mamu_desr_et_5[5:0] =
mamu_desr_et[5:0] & {6 {mamu_dec_tid[5]}};
assign mamu_desr_et_4[5:0] =
mamu_desr_et[5:0] & {6 {mamu_dec_tid[4]}};
assign mamu_desr_et_3[5:0] =
mamu_desr_et[5:0] & {6 {mamu_dec_tid[3]}};
assign mamu_desr_et_2[5:0] =
mamu_desr_et[5:0] & {6 {mamu_dec_tid[2]}};
assign mamu_desr_et_1[5:0] =
mamu_desr_et[5:0] & {6 {mamu_dec_tid[1]}};
assign mamu_desr_et_0[5:0] =
mamu_desr_et[5:0] & {6 {mamu_dec_tid[0]}};
assign mamu_desr_ea_7[10:0] =
mamu_err[10:0] & {11 {mamu_dec_tid[7]}};
assign mamu_desr_ea_6[10:0] =
mamu_err[10:0] & {11 {mamu_dec_tid[6]}};
assign mamu_desr_ea_5[10:0] =
mamu_err[10:0] & {11 {mamu_dec_tid[5]}};
assign mamu_desr_ea_4[10:0] =
mamu_err[10:0] & {11 {mamu_dec_tid[4]}};
assign mamu_desr_ea_3[10:0] =
mamu_err[10:0] & {11 {mamu_dec_tid[3]}};
assign mamu_desr_ea_2[10:0] =
mamu_err[10:0] & {11 {mamu_dec_tid[2]}};
assign mamu_desr_ea_1[10:0] =
mamu_err[10:0] & {11 {mamu_dec_tid[1]}};
assign mamu_desr_ea_0[10:0] =
mamu_err[10:0] & {11 {mamu_dec_tid[0]}};
tlu_ras_ctl_msff_ctl_macro__width_3 ma_tid_lat (
.scan_in(ma_tid_lat_scanin),
.scan_out(ma_tid_lat_scanout),
.din (spu_tlu_ma_int_req [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_3 cwq_tid_lat (
.scan_in(cwq_tid_lat_scanin),
.scan_out(cwq_tid_lat_scanout),
.din (spu_tlu_cwq_int_req [2:0] ),
tlu_ras_ctl_msff_ctl_macro__width_6 spu_error_lat (
.scan_in(spu_error_lat_scanin),
.scan_out(spu_error_lat_scanout),
.din (spu_tlu_l2_error [5:0] ),
.dout (spu_error [5:0] ),
assign cwq_dec_tid[7:0] =
({6 {mal2c }} & 6'b101000) |
({6 {mal2u }} & 6'b101001) |
({6 {mal2nd }} & 6'b101010) ;
assign cwq_desr_et[5:0] =
({6 {cwql2c }} & 6'b101011) |
({6 {cwql2u }} & 6'b101100) |
({6 {cwql2nd}} & 6'b101101) ;
assign ma_desr_et_7[5:0] =
ma_desr_et[5:0] & {6 {ma_dec_tid[7]}};
assign ma_desr_et_6[5:0] =
ma_desr_et[5:0] & {6 {ma_dec_tid[6]}};
assign ma_desr_et_5[5:0] =
ma_desr_et[5:0] & {6 {ma_dec_tid[5]}};
assign ma_desr_et_4[5:0] =
ma_desr_et[5:0] & {6 {ma_dec_tid[4]}};
assign ma_desr_et_3[5:0] =
ma_desr_et[5:0] & {6 {ma_dec_tid[3]}};
assign ma_desr_et_2[5:0] =
ma_desr_et[5:0] & {6 {ma_dec_tid[2]}};
assign ma_desr_et_1[5:0] =
ma_desr_et[5:0] & {6 {ma_dec_tid[1]}};
assign ma_desr_et_0[5:0] =
ma_desr_et[5:0] & {6 {ma_dec_tid[0]}};
assign cwq_desr_et_7[5:0] =
cwq_desr_et[5:0] & {6 {cwq_dec_tid[7]}};
assign cwq_desr_et_6[5:0] =
cwq_desr_et[5:0] & {6 {cwq_dec_tid[6]}};
assign cwq_desr_et_5[5:0] =
cwq_desr_et[5:0] & {6 {cwq_dec_tid[5]}};
assign cwq_desr_et_4[5:0] =
cwq_desr_et[5:0] & {6 {cwq_dec_tid[4]}};
assign cwq_desr_et_3[5:0] =
cwq_desr_et[5:0] & {6 {cwq_dec_tid[3]}};
assign cwq_desr_et_2[5:0] =
cwq_desr_et[5:0] & {6 {cwq_dec_tid[2]}};
assign cwq_desr_et_1[5:0] =
cwq_desr_et[5:0] & {6 {cwq_dec_tid[1]}};
assign cwq_desr_et_0[5:0] =
cwq_desr_et[5:0] & {6 {cwq_dec_tid[0]}};
// ma and cwq are all L2 errors so no DESR.EA for them
assign t_desr_et_7[5:0] =
({6 {tlu_tccd[7]}} & 6'b101110) |
({6 {tlu_tcud[7]}} & 6'b101111) ;
assign t_desr_et_6[5:0] =
({6 {tlu_tccd[6]}} & 6'b101110) |
({6 {tlu_tcud[6]}} & 6'b101111) ;
assign t_desr_et_5[5:0] =
({6 {tlu_tccd[5]}} & 6'b101110) |
({6 {tlu_tcud[5]}} & 6'b101111) ;
assign t_desr_et_4[5:0] =
({6 {tlu_tccd[4]}} & 6'b101110) |
({6 {tlu_tcud[4]}} & 6'b101111) ;
assign t_desr_et_3[5:0] =
({6 {tlu_tccd[3]}} & 6'b101110) |
({6 {tlu_tcud[3]}} & 6'b101111) ;
assign t_desr_et_2[5:0] =
({6 {tlu_tccd[2]}} & 6'b101110) |
({6 {tlu_tcud[2]}} & 6'b101111) ;
assign t_desr_et_1[5:0] =
({6 {tlu_tccd[1]}} & 6'b101110) |
({6 {tlu_tcud[1]}} & 6'b101111) ;
assign t_desr_et_0[5:0] =
({6 {tlu_tccd[0]}} & 6'b101110) |
({6 {tlu_tcud[0]}} & 6'b101111) ;
assign t_desr_ea_7[9:0] =
{10 {tlu_tccd[7] | tlu_tcud[7]}} &
{cel_syndrome[7:0], tlu_tca_index_1[1:0]};
assign t_desr_ea_6[9:0] =
{10 {tlu_tccd[6] | tlu_tcud[6]}} &
{cel_syndrome[7:0], tlu_tca_index_1[1:0]};
assign t_desr_ea_5[9:0] =
{10 {tlu_tccd[5] | tlu_tcud[5]}} &
{cel_syndrome[7:0], tlu_tca_index_1[1:0]};
assign t_desr_ea_4[9:0] =
{10 {tlu_tccd[4] | tlu_tcud[4]}} &
{cel_syndrome[7:0], tlu_tca_index_1[1:0]};
assign t_desr_ea_3[9:0] =
{10 {tlu_tccd[3] | tlu_tcud[3]}} &
{cel_syndrome[7:0], tlu_tca_index_0[1:0]};
assign t_desr_ea_2[9:0] =
{10 {tlu_tccd[2] | tlu_tcud[2]}} &
{cel_syndrome[7:0], tlu_tca_index_0[1:0]};
assign t_desr_ea_1[9:0] =
{10 {tlu_tccd[1] | tlu_tcud[1]}} &
{cel_syndrome[7:0], tlu_tca_index_0[1:0]};
assign t_desr_ea_0[9:0] =
{10 {tlu_tccd[0] | tlu_tcud[0]}} &
{cel_syndrome[7:0], tlu_tca_index_0[1:0]};
// Prioritize DESR exceptions
// S = 0, type 1-4, priority 11
// and S = 1, type 2, priority 6
assign pipe_desr_exc_7 = (| pipe_desr_et_7[5:0]);
assign pipe_desr_exc_6 = (| pipe_desr_et_6[5:0]);
assign pipe_desr_exc_5 = (| pipe_desr_et_5[5:0]);
assign pipe_desr_exc_4 = (| pipe_desr_et_4[5:0]);
assign pipe_desr_exc_3 = (| pipe_desr_et_3[5:0]);
assign pipe_desr_exc_2 = (| pipe_desr_et_2[5:0]);
assign pipe_desr_exc_1 = (| pipe_desr_et_1[5:0]);
assign pipe_desr_exc_0 = (| pipe_desr_et_0[5:0]);
// S = 1, type 1&3, priority 6
assign m_desr_exc_7 = m_desr_et_7[5];
assign m_desr_exc_6 = m_desr_et_6[5];
assign m_desr_exc_5 = m_desr_et_5[5];
assign m_desr_exc_4 = m_desr_et_4[5];
assign m_desr_exc_3 = m_desr_et_3[5];
assign m_desr_exc_2 = m_desr_et_2[5];
assign m_desr_exc_1 = m_desr_et_1[5];
assign m_desr_exc_0 = m_desr_et_0[5];
// S = 1, type 4, priority 6
// and S = 0, type 11, priority 15 (shared with l2)
assign l_desr_exc_7 = (| l_desr_et_7[5:0]);
assign l_desr_exc_6 = (| l_desr_et_6[5:0]);
assign l_desr_exc_5 = (| l_desr_et_5[5:0]);
assign l_desr_exc_4 = (| l_desr_et_4[5:0]);
assign l_desr_exc_3 = (| l_desr_et_3[5:0]);
assign l_desr_exc_2 = (| l_desr_et_2[5:0]);
assign l_desr_exc_1 = (| l_desr_et_1[5:0]);
assign l_desr_exc_0 = (| l_desr_et_0[5:0]);
// S = 0, type 5-8, priority 12
assign d_desr_exc_7 = (| d_desr_et_7[3:0]);
assign d_desr_exc_6 = (| d_desr_et_6[3:0]);
assign d_desr_exc_5 = (| d_desr_et_5[3:0]);
assign d_desr_exc_4 = (| d_desr_et_4[3:0]);
assign d_desr_exc_3 = (| d_desr_et_3[3:0]);
assign d_desr_exc_2 = (| d_desr_et_2[3:0]);
assign d_desr_exc_1 = (| d_desr_et_1[3:0]);
assign d_desr_exc_0 = (| d_desr_et_0[3:0]);
// S = 0, type 9, priority 13
// and S = 0, type 11, priority 15 (shared with l)
// and S = 1, type 16-17, priority 5
// and S = 1, type 18-19, priority 7
assign l2_desr_exc_7 = (| l2_desr_et_7[5:0]);
assign l2_desr_exc_6 = (| l2_desr_et_6[5:0]);
assign l2_desr_exc_5 = (| l2_desr_et_5[5:0]);
assign l2_desr_exc_4 = (| l2_desr_et_4[5:0]);
assign l2_desr_exc_3 = (| l2_desr_et_3[5:0]);
assign l2_desr_exc_2 = (| l2_desr_et_2[5:0]);
assign l2_desr_exc_1 = (| l2_desr_et_1[5:0]);
assign l2_desr_exc_0 = (| l2_desr_et_0[5:0]);
// S = 0, type 10, priority 14
// and S = 1, type 6, priority 1
assign s_desr_exc_7 = (| s_desr_et_7[5:0]);
assign s_desr_exc_6 = (| s_desr_et_6[5:0]);
assign s_desr_exc_5 = (| s_desr_et_5[5:0]);
assign s_desr_exc_4 = (| s_desr_et_4[5:0]);
assign s_desr_exc_3 = (| s_desr_et_3[5:0]);
assign s_desr_exc_2 = (| s_desr_et_2[5:0]);
assign s_desr_exc_1 = (| s_desr_et_1[5:0]);
assign s_desr_exc_0 = (| s_desr_et_0[5:0]);
// S = 1, type 7, priority 3
assign mamu_desr_exc_7 = mamu_desr_et_7[5];
assign mamu_desr_exc_6 = mamu_desr_et_6[5];
assign mamu_desr_exc_5 = mamu_desr_et_5[5];
assign mamu_desr_exc_4 = mamu_desr_et_4[5];
assign mamu_desr_exc_3 = mamu_desr_et_3[5];
assign mamu_desr_exc_2 = mamu_desr_et_2[5];
assign mamu_desr_exc_1 = mamu_desr_et_1[5];
assign mamu_desr_exc_0 = mamu_desr_et_0[5];
// S = 1, type 8-10, priority 3
assign ma_desr_exc_7 = ma_desr_et_7[5];
assign ma_desr_exc_6 = ma_desr_et_6[5];
assign ma_desr_exc_5 = ma_desr_et_5[5];
assign ma_desr_exc_4 = ma_desr_et_4[5];
assign ma_desr_exc_3 = ma_desr_et_3[5];
assign ma_desr_exc_2 = ma_desr_et_2[5];
assign ma_desr_exc_1 = ma_desr_et_1[5];
assign ma_desr_exc_0 = ma_desr_et_0[5];
// S = 1, type 11-13, priority 4
assign cwq_desr_exc_7 = cwq_desr_et_7[5];
assign cwq_desr_exc_6 = cwq_desr_et_6[5];
assign cwq_desr_exc_5 = cwq_desr_et_5[5];
assign cwq_desr_exc_4 = cwq_desr_et_4[5];
assign cwq_desr_exc_3 = cwq_desr_et_3[5];
assign cwq_desr_exc_2 = cwq_desr_et_2[5];
assign cwq_desr_exc_1 = cwq_desr_et_1[5];
assign cwq_desr_exc_0 = cwq_desr_et_0[5];
// S = 1, type 14-15, priority 2
assign t_desr_exc_7 = t_desr_et_7[5];
assign t_desr_exc_6 = t_desr_et_6[5];
assign t_desr_exc_5 = t_desr_et_5[5];
assign t_desr_exc_4 = t_desr_et_4[5];
assign t_desr_exc_3 = t_desr_et_3[5];
assign t_desr_exc_2 = t_desr_et_2[5];
assign t_desr_exc_1 = t_desr_et_1[5];
assign t_desr_exc_0 = t_desr_et_0[5];
pipe_desr_exc_7 | m_desr_exc_7 | l_desr_exc_7 | d_desr_exc_7 |
l2_desr_exc_7 | s_desr_exc_7 | mamu_desr_exc_7 | ma_desr_exc_7 |
cwq_desr_exc_7 | t_desr_exc_7 | rd_desr_dec[7];
pipe_desr_exc_6 | m_desr_exc_6 | l_desr_exc_6 | d_desr_exc_6 |
l2_desr_exc_6 | s_desr_exc_6 | mamu_desr_exc_6 | ma_desr_exc_6 |
cwq_desr_exc_6 | t_desr_exc_6 | rd_desr_dec[6];
pipe_desr_exc_5 | m_desr_exc_5 | l_desr_exc_5 | d_desr_exc_5 |
l2_desr_exc_5 | s_desr_exc_5 | mamu_desr_exc_5 | ma_desr_exc_5 |
cwq_desr_exc_5 | t_desr_exc_5 | rd_desr_dec[5];
pipe_desr_exc_4 | m_desr_exc_4 | l_desr_exc_4 | d_desr_exc_4 |
l2_desr_exc_4 | s_desr_exc_4 | mamu_desr_exc_4 | ma_desr_exc_4 |
cwq_desr_exc_4 | t_desr_exc_4 | rd_desr_dec[4];
pipe_desr_exc_3 | m_desr_exc_3 | l_desr_exc_3 | d_desr_exc_3 |
l2_desr_exc_3 | s_desr_exc_3 | mamu_desr_exc_3 | ma_desr_exc_3 |
cwq_desr_exc_3 | t_desr_exc_3 | rd_desr_dec[3];
pipe_desr_exc_2 | m_desr_exc_2 | l_desr_exc_2 | d_desr_exc_2 |
l2_desr_exc_2 | s_desr_exc_2 | mamu_desr_exc_2 | ma_desr_exc_2 |
cwq_desr_exc_2 | t_desr_exc_2 | rd_desr_dec[2];
pipe_desr_exc_1 | m_desr_exc_1 | l_desr_exc_1 | d_desr_exc_1 |
l2_desr_exc_1 | s_desr_exc_1 | mamu_desr_exc_1 | ma_desr_exc_1 |
cwq_desr_exc_1 | t_desr_exc_1 | rd_desr_dec[1];
pipe_desr_exc_0 | m_desr_exc_0 | l_desr_exc_0 | d_desr_exc_0 |
l2_desr_exc_0 | s_desr_exc_0 | mamu_desr_exc_0 | ma_desr_exc_0 |
cwq_desr_exc_0 | t_desr_exc_0 | rd_desr_dec[0];
// Third term is to catch the case of simultaneous
// SBDPC (type 10, priority 14) and SOCC (type 11, priority 15)
(s_desr_exc_7 & ~l2_desr_exc_7 & ~d_desr_exc_7 & ~pipe_desr_exc_7 & no_desr_s_7) |
(s_desr_exc_7 & l2_desr_et_7[1] & ~d_desr_exc_7 & ~pipe_desr_exc_7 & no_desr_s_7) ;
(s_desr_exc_6 & ~l2_desr_exc_6 & ~d_desr_exc_6 & ~pipe_desr_exc_6 & no_desr_s_6) |
(s_desr_exc_6 & l2_desr_et_6[1] & ~d_desr_exc_6 & ~pipe_desr_exc_6 & no_desr_s_6) ;
(s_desr_exc_5 & ~l2_desr_exc_5 & ~d_desr_exc_5 & ~pipe_desr_exc_5 & no_desr_s_5) |
(s_desr_exc_5 & l2_desr_et_5[1] & ~d_desr_exc_5 & ~pipe_desr_exc_5 & no_desr_s_5) ;
(s_desr_exc_4 & ~l2_desr_exc_4 & ~d_desr_exc_4 & ~pipe_desr_exc_4 & no_desr_s_4) |
(s_desr_exc_4 & l2_desr_et_4[1] & ~d_desr_exc_4 & ~pipe_desr_exc_4 & no_desr_s_4) ;
(s_desr_exc_3 & ~l2_desr_exc_3 & ~d_desr_exc_3 & ~pipe_desr_exc_3 & no_desr_s_3) |
(s_desr_exc_3 & l2_desr_et_3[1] & ~d_desr_exc_3 & ~pipe_desr_exc_3 & no_desr_s_3) ;
(s_desr_exc_2 & ~l2_desr_exc_2 & ~d_desr_exc_2 & ~pipe_desr_exc_2 & no_desr_s_2) |
(s_desr_exc_2 & l2_desr_et_2[1] & ~d_desr_exc_2 & ~pipe_desr_exc_2 & no_desr_s_2) ;
(s_desr_exc_1 & ~l2_desr_exc_1 & ~d_desr_exc_1 & ~pipe_desr_exc_1 & no_desr_s_1) |
(s_desr_exc_1 & l2_desr_et_1[1] & ~d_desr_exc_1 & ~pipe_desr_exc_1 & no_desr_s_1) ;
(s_desr_exc_0 & ~l2_desr_exc_0 & ~d_desr_exc_0 & ~pipe_desr_exc_0 & no_desr_s_0) |
(s_desr_exc_0 & l2_desr_et_0[1] & ~d_desr_exc_0 & ~pipe_desr_exc_0 & no_desr_s_0) ;
assign take_t_7 = t_desr_exc_7 & ~s_desr_et_7[5];
assign take_t_6 = t_desr_exc_6 & ~s_desr_et_6[5];
assign take_t_5 = t_desr_exc_5 & ~s_desr_et_5[5];
assign take_t_4 = t_desr_exc_4 & ~s_desr_et_4[5];
assign take_t_3 = t_desr_exc_3 & ~s_desr_et_3[5];
assign take_t_2 = t_desr_exc_2 & ~s_desr_et_2[5];
assign take_t_1 = t_desr_exc_1 & ~s_desr_et_1[5];
assign take_t_0 = t_desr_exc_0 & ~s_desr_et_0[5];
assign take_ma_7 = ma_desr_exc_7 & ~t_desr_et_7[5] & ~s_desr_et_7[5];
assign take_ma_6 = ma_desr_exc_6 & ~t_desr_et_6[5] & ~s_desr_et_6[5];
assign take_ma_5 = ma_desr_exc_5 & ~t_desr_et_5[5] & ~s_desr_et_5[5];
assign take_ma_4 = ma_desr_exc_4 & ~t_desr_et_4[5] & ~s_desr_et_4[5];
assign take_ma_3 = ma_desr_exc_3 & ~t_desr_et_3[5] & ~s_desr_et_3[5];
assign take_ma_2 = ma_desr_exc_2 & ~t_desr_et_2[5] & ~s_desr_et_2[5];
assign take_ma_1 = ma_desr_exc_1 & ~t_desr_et_1[5] & ~s_desr_et_1[5];
assign take_ma_0 = ma_desr_exc_0 & ~t_desr_et_0[5] & ~s_desr_et_0[5];
assign take_mamu_7 = mamu_desr_exc_7 & ~ma_desr_exc_7 & ~t_desr_et_7[5] & ~s_desr_et_7[5];
assign take_mamu_6 = mamu_desr_exc_6 & ~ma_desr_exc_6 & ~t_desr_et_6[5] & ~s_desr_et_6[5];
assign take_mamu_5 = mamu_desr_exc_5 & ~ma_desr_exc_5 & ~t_desr_et_5[5] & ~s_desr_et_5[5];
assign take_mamu_4 = mamu_desr_exc_4 & ~ma_desr_exc_4 & ~t_desr_et_4[5] & ~s_desr_et_4[5];
assign take_mamu_3 = mamu_desr_exc_3 & ~ma_desr_exc_3 & ~t_desr_et_3[5] & ~s_desr_et_3[5];
assign take_mamu_2 = mamu_desr_exc_2 & ~ma_desr_exc_2 & ~t_desr_et_2[5] & ~s_desr_et_2[5];
assign take_mamu_1 = mamu_desr_exc_1 & ~ma_desr_exc_1 & ~t_desr_et_1[5] & ~s_desr_et_1[5];
assign take_mamu_0 = mamu_desr_exc_0 & ~ma_desr_exc_0 & ~t_desr_et_0[5] & ~s_desr_et_0[5];
assign take_cwq_7 = cwq_desr_exc_7 & ~mamu_desr_et_7[5] & ~ma_desr_et_7[5] & ~t_desr_et_7[5] & ~s_desr_et_7[5];
assign take_cwq_6 = cwq_desr_exc_6 & ~mamu_desr_et_6[5] & ~ma_desr_et_6[5] & ~t_desr_et_6[5] & ~s_desr_et_6[5];
assign take_cwq_5 = cwq_desr_exc_5 & ~mamu_desr_et_5[5] & ~ma_desr_et_5[5] & ~t_desr_et_5[5] & ~s_desr_et_5[5];
assign take_cwq_4 = cwq_desr_exc_4 & ~mamu_desr_et_4[5] & ~ma_desr_et_4[5] & ~t_desr_et_4[5] & ~s_desr_et_4[5];
assign take_cwq_3 = cwq_desr_exc_3 & ~mamu_desr_et_3[5] & ~ma_desr_et_3[5] & ~t_desr_et_3[5] & ~s_desr_et_3[5];
assign take_cwq_2 = cwq_desr_exc_2 & ~mamu_desr_et_2[5] & ~ma_desr_et_2[5] & ~t_desr_et_2[5] & ~s_desr_et_2[5];
assign take_cwq_1 = cwq_desr_exc_1 & ~mamu_desr_et_1[5] & ~ma_desr_et_1[5] & ~t_desr_et_1[5] & ~s_desr_et_1[5];
assign take_cwq_0 = cwq_desr_exc_0 & ~mamu_desr_et_0[5] & ~ma_desr_et_0[5] & ~t_desr_et_0[5] & ~s_desr_et_0[5];
assign take_l2_7 = (l2_desr_et_7[5] & ~l2_desr_et_7[1] & ~cwq_desr_et_7[5] & ~mamu_desr_et_7[5] & ~ma_desr_et_7[5] & ~t_desr_et_7[5] & ~s_desr_et_7[5]) |
(l2_desr_et_7[5] & l2_desr_et_7[1] & ~pipe_desr_et_7[5] & ~m_desr_et_7[5] & ~l_desr_et_7[5] & ~cwq_desr_et_7[5] & ~mamu_desr_et_7[5] & ~ma_desr_et_7[5] & ~t_desr_et_7[5] & ~s_desr_et_7[5]) |
(l2_desr_exc_7 & ~l2_desr_et_7[1] & ~d_desr_exc_7 & ~pipe_desr_exc_7 & no_desr_s_7) |
(l2_desr_exc_7 & l2_desr_et_7[1] & ~s_desr_exc_7 & ~d_desr_exc_7 & ~pipe_desr_exc_7 & no_desr_s_7) ;
assign take_l2_6 = (l2_desr_et_6[5] & ~l2_desr_et_6[1] & ~cwq_desr_et_6[5] & ~mamu_desr_et_6[5] & ~ma_desr_et_6[5] & ~t_desr_et_6[5] & ~s_desr_et_6[5]) |
(l2_desr_et_6[5] & l2_desr_et_6[1] & ~pipe_desr_et_6[5] & ~m_desr_et_6[5] & ~l_desr_et_6[5] & ~cwq_desr_et_6[5] & ~mamu_desr_et_6[5] & ~ma_desr_et_6[5] & ~t_desr_et_6[5] & ~s_desr_et_6[5]) |
(l2_desr_exc_6 & ~l2_desr_et_6[1] & ~d_desr_exc_6 & ~pipe_desr_exc_6 & no_desr_s_6) |
(l2_desr_exc_6 & l2_desr_et_6[1] & ~s_desr_exc_6 & ~d_desr_exc_6 & ~pipe_desr_exc_6 & no_desr_s_6) ;
assign take_l2_5 = (l2_desr_et_5[5] & ~l2_desr_et_5[1] & ~cwq_desr_et_5[5] & ~mamu_desr_et_5[5] & ~ma_desr_et_5[5] & ~t_desr_et_5[5] & ~s_desr_et_5[5]) |
(l2_desr_et_5[5] & l2_desr_et_5[1] & ~pipe_desr_et_5[5] & ~m_desr_et_5[5] & ~l_desr_et_5[5] & ~cwq_desr_et_5[5] & ~mamu_desr_et_5[5] & ~ma_desr_et_5[5] & ~t_desr_et_5[5] & ~s_desr_et_5[5]) |
(l2_desr_exc_5 & ~l2_desr_et_5[1] & ~d_desr_exc_5 & ~pipe_desr_exc_5 & no_desr_s_5) |
(l2_desr_exc_5 & l2_desr_et_5[1] & ~s_desr_exc_5 & ~d_desr_exc_5 & ~pipe_desr_exc_5 & no_desr_s_5) ;
assign take_l2_4 = (l2_desr_et_4[5] & ~l2_desr_et_4[1] & ~cwq_desr_et_4[5] & ~mamu_desr_et_4[5] & ~ma_desr_et_4[5] & ~t_desr_et_4[5] & ~s_desr_et_4[5]) |
(l2_desr_et_4[5] & l2_desr_et_4[1] & ~pipe_desr_et_4[5] & ~m_desr_et_4[5] & ~l_desr_et_4[5] & ~cwq_desr_et_4[5] & ~mamu_desr_et_4[5] & ~ma_desr_et_4[5] & ~t_desr_et_4[5] & ~s_desr_et_4[5]) |
(l2_desr_exc_4 & ~l2_desr_et_4[1] & ~d_desr_exc_4 & ~pipe_desr_exc_4 & no_desr_s_4) |
(l2_desr_exc_4 & l2_desr_et_4[1] & ~s_desr_exc_4 & ~d_desr_exc_4 & ~pipe_desr_exc_4 & no_desr_s_4) ;
assign take_l2_3 = (l2_desr_et_3[5] & ~l2_desr_et_3[1] & ~cwq_desr_et_3[5] & ~mamu_desr_et_3[5] & ~ma_desr_et_3[5] & ~t_desr_et_3[5] & ~s_desr_et_3[5]) |
(l2_desr_et_3[5] & l2_desr_et_3[1] & ~pipe_desr_et_3[5] & ~m_desr_et_3[5] & ~l_desr_et_3[5] & ~cwq_desr_et_3[5] & ~mamu_desr_et_3[5] & ~ma_desr_et_3[5] & ~t_desr_et_3[5] & ~s_desr_et_3[5]) |
(l2_desr_exc_3 & ~l2_desr_et_3[1] & ~d_desr_exc_3 & ~pipe_desr_exc_3 & no_desr_s_3) |
(l2_desr_exc_3 & l2_desr_et_3[1] & ~s_desr_exc_3 & ~d_desr_exc_3 & ~pipe_desr_exc_3 & no_desr_s_3) ;
assign take_l2_2 = (l2_desr_et_2[5] & ~l2_desr_et_2[1] & ~cwq_desr_et_2[5] & ~mamu_desr_et_2[5] & ~ma_desr_et_2[5] & ~t_desr_et_2[5] & ~s_desr_et_2[5]) |
(l2_desr_et_2[5] & l2_desr_et_2[1] & ~pipe_desr_et_2[5] & ~m_desr_et_2[5] & ~l_desr_et_2[5] & ~cwq_desr_et_2[5] & ~mamu_desr_et_2[5] & ~ma_desr_et_2[5] & ~t_desr_et_2[5] & ~s_desr_et_2[5]) |
(l2_desr_exc_2 & ~l2_desr_et_2[1] & ~d_desr_exc_2 & ~pipe_desr_exc_2 & no_desr_s_2) |
(l2_desr_exc_2 & l2_desr_et_2[1] & ~s_desr_exc_2 & ~d_desr_exc_2 & ~pipe_desr_exc_2 & no_desr_s_2) ;
assign take_l2_1 = (l2_desr_et_1[5] & ~l2_desr_et_1[1] & ~cwq_desr_et_1[5] & ~mamu_desr_et_1[5] & ~ma_desr_et_1[5] & ~t_desr_et_1[5] & ~s_desr_et_1[5]) |
(l2_desr_et_1[5] & l2_desr_et_1[1] & ~pipe_desr_et_1[5] & ~m_desr_et_1[5] & ~l_desr_et_1[5] & ~cwq_desr_et_1[5] & ~mamu_desr_et_1[5] & ~ma_desr_et_1[5] & ~t_desr_et_1[5] & ~s_desr_et_1[5]) |
(l2_desr_exc_1 & ~l2_desr_et_1[1] & ~d_desr_exc_1 & ~pipe_desr_exc_1 & no_desr_s_1) |
(l2_desr_exc_1 & l2_desr_et_1[1] & ~s_desr_exc_1 & ~d_desr_exc_1 & ~pipe_desr_exc_1 & no_desr_s_1) ;
assign take_l2_0 = (l2_desr_et_0[5] & ~l2_desr_et_0[1] & ~cwq_desr_et_0[5] & ~mamu_desr_et_0[5] & ~ma_desr_et_0[5] & ~t_desr_et_0[5] & ~s_desr_et_0[5]) |
(l2_desr_et_0[5] & l2_desr_et_0[1] & ~pipe_desr_et_0[5] & ~m_desr_et_0[5] & ~l_desr_et_0[5] & ~cwq_desr_et_0[5] & ~mamu_desr_et_0[5] & ~ma_desr_et_0[5] & ~t_desr_et_0[5] & ~s_desr_et_0[5]) |
(l2_desr_exc_0 & ~l2_desr_et_0[1] & ~d_desr_exc_0 & ~pipe_desr_exc_0 & no_desr_s_0) |
(l2_desr_exc_0 & l2_desr_et_0[1] & ~s_desr_exc_0 & ~d_desr_exc_0 & ~pipe_desr_exc_0 & no_desr_s_0) ;
assign take_pipe_7 = (pipe_desr_et_7[5] & ~l2_desr_et_7[5] & ~m_desr_et_7[5] & ~l_desr_et_7[5] & ~cwq_desr_et_7[5] & ~mamu_desr_et_7[5] & ~ma_desr_et_7[5] & ~t_desr_et_7[5] & ~s_desr_et_7[5]) |
(pipe_desr_et_7[5] & l2_desr_et_7[1] & ~m_desr_et_7[5] & ~l_desr_et_7[5] & ~cwq_desr_et_7[5] & ~mamu_desr_et_7[5] & ~ma_desr_et_7[5] & ~t_desr_et_7[5] & ~s_desr_et_7[5]) |
(pipe_desr_exc_7 & no_desr_s_7);
assign take_pipe_6 = (pipe_desr_et_6[5] & ~l2_desr_et_6[5] & ~m_desr_et_6[5] & ~l_desr_et_6[5] & ~cwq_desr_et_6[5] & ~mamu_desr_et_6[5] & ~ma_desr_et_6[5] & ~t_desr_et_6[5] & ~s_desr_et_6[5]) |
(pipe_desr_et_6[5] & l2_desr_et_6[1] & ~m_desr_et_6[5] & ~l_desr_et_6[5] & ~cwq_desr_et_6[5] & ~mamu_desr_et_6[5] & ~ma_desr_et_6[5] & ~t_desr_et_6[5] & ~s_desr_et_6[5]) |
(pipe_desr_exc_6 & no_desr_s_6);
assign take_pipe_5 = (pipe_desr_et_5[5] & ~l2_desr_et_5[5] & ~m_desr_et_5[5] & ~l_desr_et_5[5] & ~cwq_desr_et_5[5] & ~mamu_desr_et_5[5] & ~ma_desr_et_5[5] & ~t_desr_et_5[5] & ~s_desr_et_5[5]) |
(pipe_desr_et_5[5] & l2_desr_et_5[1] & ~m_desr_et_5[5] & ~l_desr_et_5[5] & ~cwq_desr_et_5[5] & ~mamu_desr_et_5[5] & ~ma_desr_et_5[5] & ~t_desr_et_5[5] & ~s_desr_et_5[5]) |
(pipe_desr_exc_5 & no_desr_s_5);
assign take_pipe_4 = (pipe_desr_et_4[5] & ~l2_desr_et_4[5] & ~m_desr_et_4[5] & ~l_desr_et_4[5] & ~cwq_desr_et_4[5] & ~mamu_desr_et_4[5] & ~ma_desr_et_4[5] & ~t_desr_et_4[5] & ~s_desr_et_4[5]) |
(pipe_desr_et_4[5] & l2_desr_et_4[1] & ~m_desr_et_4[5] & ~l_desr_et_4[5] & ~cwq_desr_et_4[5] & ~mamu_desr_et_4[5] & ~ma_desr_et_4[5] & ~t_desr_et_4[5] & ~s_desr_et_4[5]) |
(pipe_desr_exc_4 & no_desr_s_4);
assign take_pipe_3 = (pipe_desr_et_3[5] & ~l2_desr_et_3[5] & ~m_desr_et_3[5] & ~l_desr_et_3[5] & ~cwq_desr_et_3[5] & ~mamu_desr_et_3[5] & ~ma_desr_et_3[5] & ~t_desr_et_3[5] & ~s_desr_et_3[5]) |
(pipe_desr_et_3[5] & l2_desr_et_3[1] & ~m_desr_et_3[5] & ~l_desr_et_3[5] & ~cwq_desr_et_3[5] & ~mamu_desr_et_3[5] & ~ma_desr_et_3[5] & ~t_desr_et_3[5] & ~s_desr_et_3[5]) |
(pipe_desr_exc_3 & no_desr_s_3);
assign take_pipe_2 = (pipe_desr_et_2[5] & ~l2_desr_et_2[5] & ~m_desr_et_2[5] & ~l_desr_et_2[5] & ~cwq_desr_et_2[5] & ~mamu_desr_et_2[5] & ~ma_desr_et_2[5] & ~t_desr_et_2[5] & ~s_desr_et_2[5]) |
(pipe_desr_et_2[5] & l2_desr_et_2[1] & ~m_desr_et_2[5] & ~l_desr_et_2[5] & ~cwq_desr_et_2[5] & ~mamu_desr_et_2[5] & ~ma_desr_et_2[5] & ~t_desr_et_2[5] & ~s_desr_et_2[5]) |
(pipe_desr_exc_2 & no_desr_s_2);
assign take_pipe_1 = (pipe_desr_et_1[5] & ~l2_desr_et_1[5] & ~m_desr_et_1[5] & ~l_desr_et_1[5] & ~cwq_desr_et_1[5] & ~mamu_desr_et_1[5] & ~ma_desr_et_1[5] & ~t_desr_et_1[5] & ~s_desr_et_1[5]) |
(pipe_desr_et_1[5] & l2_desr_et_1[1] & ~m_desr_et_1[5] & ~l_desr_et_1[5] & ~cwq_desr_et_1[5] & ~mamu_desr_et_1[5] & ~ma_desr_et_1[5] & ~t_desr_et_1[5] & ~s_desr_et_1[5]) |
(pipe_desr_exc_1 & no_desr_s_1);
assign take_pipe_0 = (pipe_desr_et_0[5] & ~l2_desr_et_0[5] & ~m_desr_et_0[5] & ~l_desr_et_0[5] & ~cwq_desr_et_0[5] & ~mamu_desr_et_0[5] & ~ma_desr_et_0[5] & ~t_desr_et_0[5] & ~s_desr_et_0[5]) |
(pipe_desr_et_0[5] & l2_desr_et_0[1] & ~m_desr_et_0[5] & ~l_desr_et_0[5] & ~cwq_desr_et_0[5] & ~mamu_desr_et_0[5] & ~ma_desr_et_0[5] & ~t_desr_et_0[5] & ~s_desr_et_0[5]) |
(pipe_desr_exc_0 & no_desr_s_0);
assign take_m_7 = (m_desr_et_7[5] & ~l2_desr_et_7[5] & ~l_desr_et_7[5] & ~cwq_desr_et_7[5] & ~mamu_desr_et_7[5] & ~ma_desr_et_7[5] & ~t_desr_et_7[5] & ~s_desr_et_7[5]) |
(m_desr_et_7[5] & l2_desr_et_7[1] & ~l_desr_et_7[5] & ~cwq_desr_et_7[5] & ~mamu_desr_et_7[5] & ~ma_desr_et_7[5] & ~t_desr_et_7[5] & ~s_desr_et_7[5]) ;
assign take_m_6 = (m_desr_et_6[5] & ~l2_desr_et_6[5] & ~l_desr_et_6[5] & ~cwq_desr_et_6[5] & ~mamu_desr_et_6[5] & ~ma_desr_et_6[5] & ~t_desr_et_6[5] & ~s_desr_et_6[5]) |
(m_desr_et_6[5] & l2_desr_et_6[1] & ~l_desr_et_6[5] & ~cwq_desr_et_6[5] & ~mamu_desr_et_6[5] & ~ma_desr_et_6[5] & ~t_desr_et_6[5] & ~s_desr_et_6[5]) ;
assign take_m_5 = (m_desr_et_5[5] & ~l2_desr_et_5[5] & ~l_desr_et_5[5] & ~cwq_desr_et_5[5] & ~mamu_desr_et_5[5] & ~ma_desr_et_5[5] & ~t_desr_et_5[5] & ~s_desr_et_5[5]) |
(m_desr_et_5[5] & l2_desr_et_5[1] & ~l_desr_et_5[5] & ~cwq_desr_et_5[5] & ~mamu_desr_et_5[5] & ~ma_desr_et_5[5] & ~t_desr_et_5[5] & ~s_desr_et_5[5]) ;
assign take_m_4 = (m_desr_et_4[5] & ~l2_desr_et_4[5] & ~l_desr_et_4[5] & ~cwq_desr_et_4[5] & ~mamu_desr_et_4[5] & ~ma_desr_et_4[5] & ~t_desr_et_4[5] & ~s_desr_et_4[5]) |
(m_desr_et_4[5] & l2_desr_et_4[1] & ~l_desr_et_4[5] & ~cwq_desr_et_4[5] & ~mamu_desr_et_4[5] & ~ma_desr_et_4[5] & ~t_desr_et_4[5] & ~s_desr_et_4[5]) ;
assign take_m_3 = (m_desr_et_3[5] & ~l2_desr_et_3[5] & ~l_desr_et_3[5] & ~cwq_desr_et_3[5] & ~mamu_desr_et_3[5] & ~ma_desr_et_3[5] & ~t_desr_et_3[5] & ~s_desr_et_3[5]) |
(m_desr_et_3[5] & l2_desr_et_3[1] & ~l_desr_et_3[5] & ~cwq_desr_et_3[5] & ~mamu_desr_et_3[5] & ~ma_desr_et_3[5] & ~t_desr_et_3[5] & ~s_desr_et_3[5]) ;
assign take_m_2 = (m_desr_et_2[5] & ~l2_desr_et_2[5] & ~l_desr_et_2[5] & ~cwq_desr_et_2[5] & ~mamu_desr_et_2[5] & ~ma_desr_et_2[5] & ~t_desr_et_2[5] & ~s_desr_et_2[5]) |
(m_desr_et_2[5] & l2_desr_et_2[1] & ~l_desr_et_2[5] & ~cwq_desr_et_2[5] & ~mamu_desr_et_2[5] & ~ma_desr_et_2[5] & ~t_desr_et_2[5] & ~s_desr_et_2[5]) ;
assign take_m_1 = (m_desr_et_1[5] & ~l2_desr_et_1[5] & ~l_desr_et_1[5] & ~cwq_desr_et_1[5] & ~mamu_desr_et_1[5] & ~ma_desr_et_1[5] & ~t_desr_et_1[5] & ~s_desr_et_1[5]) |
(m_desr_et_1[5] & l2_desr_et_1[1] & ~l_desr_et_1[5] & ~cwq_desr_et_1[5] & ~mamu_desr_et_1[5] & ~ma_desr_et_1[5] & ~t_desr_et_1[5] & ~s_desr_et_1[5]) ;
assign take_m_0 = (m_desr_et_0[5] & ~l2_desr_et_0[5] & ~l_desr_et_0[5] & ~cwq_desr_et_0[5] & ~mamu_desr_et_0[5] & ~ma_desr_et_0[5] & ~t_desr_et_0[5] & ~s_desr_et_0[5]) |
(m_desr_et_0[5] & l2_desr_et_0[1] & ~l_desr_et_0[5] & ~cwq_desr_et_0[5] & ~mamu_desr_et_0[5] & ~ma_desr_et_0[5] & ~t_desr_et_0[5] & ~s_desr_et_0[5]) ;
assign take_l_7 = (l_desr_et_7[5] & ~l2_desr_et_7[5] & ~cwq_desr_et_7[5] & ~mamu_desr_et_7[5] & ~ma_desr_et_7[5] & ~t_desr_et_7[5] & ~s_desr_et_7[5]) |
(l_desr_et_7[5] & l2_desr_et_7[1] & ~cwq_desr_et_7[5] & ~mamu_desr_et_7[5] & ~ma_desr_et_7[5] & ~t_desr_et_7[5] & ~s_desr_et_7[5]) |
(l_desr_exc_7 & ~l2_desr_exc_7 & ~s_desr_exc_7 & ~d_desr_exc_7 & ~pipe_desr_exc_7 & no_desr_s_7);
assign take_l_6 = (l_desr_et_6[5] & ~l2_desr_et_6[5] & ~cwq_desr_et_6[5] & ~mamu_desr_et_6[5] & ~ma_desr_et_6[5] & ~t_desr_et_6[5] & ~s_desr_et_6[5]) |
(l_desr_et_6[5] & l2_desr_et_6[1] & ~cwq_desr_et_6[5] & ~mamu_desr_et_6[5] & ~ma_desr_et_6[5] & ~t_desr_et_6[5] & ~s_desr_et_6[5]) |
(l_desr_exc_6 & ~l2_desr_exc_6 & ~s_desr_exc_6 & ~d_desr_exc_6 & ~pipe_desr_exc_6 & no_desr_s_6);
assign take_l_5 = (l_desr_et_5[5] & ~l2_desr_et_5[5] & ~cwq_desr_et_5[5] & ~mamu_desr_et_5[5] & ~ma_desr_et_5[5] & ~t_desr_et_5[5] & ~s_desr_et_5[5]) |
(l_desr_et_5[5] & l2_desr_et_5[1] & ~cwq_desr_et_5[5] & ~mamu_desr_et_5[5] & ~ma_desr_et_5[5] & ~t_desr_et_5[5] & ~s_desr_et_5[5]) |
(l_desr_exc_5 & ~l2_desr_exc_5 & ~s_desr_exc_5 & ~d_desr_exc_5 & ~pipe_desr_exc_5 & no_desr_s_5);
assign take_l_4 = (l_desr_et_4[5] & ~l2_desr_et_4[5] & ~cwq_desr_et_4[5] & ~mamu_desr_et_4[5] & ~ma_desr_et_4[5] & ~t_desr_et_4[5] & ~s_desr_et_4[5]) |
(l_desr_et_4[5] & l2_desr_et_4[1] & ~cwq_desr_et_4[5] & ~mamu_desr_et_4[5] & ~ma_desr_et_4[5] & ~t_desr_et_4[5] & ~s_desr_et_4[5]) |
(l_desr_exc_4 & ~l2_desr_exc_4 & ~s_desr_exc_4 & ~d_desr_exc_4 & ~pipe_desr_exc_4 & no_desr_s_4);
assign take_l_3 = (l_desr_et_3[5] & ~l2_desr_et_3[5] & ~cwq_desr_et_3[5] & ~mamu_desr_et_3[5] & ~ma_desr_et_3[5] & ~t_desr_et_3[5] & ~s_desr_et_3[5]) |
(l_desr_et_3[5] & l2_desr_et_3[1] & ~cwq_desr_et_3[5] & ~mamu_desr_et_3[5] & ~ma_desr_et_3[5] & ~t_desr_et_3[5] & ~s_desr_et_3[5]) |
(l_desr_exc_3 & ~l2_desr_exc_3 & ~s_desr_exc_3 & ~d_desr_exc_3 & ~pipe_desr_exc_3 & no_desr_s_3);
assign take_l_2 = (l_desr_et_2[5] & ~l2_desr_et_2[5] & ~cwq_desr_et_2[5] & ~mamu_desr_et_2[5] & ~ma_desr_et_2[5] & ~t_desr_et_2[5] & ~s_desr_et_2[5]) |
(l_desr_et_2[5] & l2_desr_et_2[1] & ~cwq_desr_et_2[5] & ~mamu_desr_et_2[5] & ~ma_desr_et_2[5] & ~t_desr_et_2[5] & ~s_desr_et_2[5]) |
(l_desr_exc_2 & ~l2_desr_exc_2 & ~s_desr_exc_2 & ~d_desr_exc_2 & ~pipe_desr_exc_2 & no_desr_s_2);
assign take_l_1 = (l_desr_et_1[5] & ~l2_desr_et_1[5] & ~cwq_desr_et_1[5] & ~mamu_desr_et_1[5] & ~ma_desr_et_1[5] & ~t_desr_et_1[5] & ~s_desr_et_1[5]) |
(l_desr_et_1[5] & l2_desr_et_1[1] & ~cwq_desr_et_1[5] & ~mamu_desr_et_1[5] & ~ma_desr_et_1[5] & ~t_desr_et_1[5] & ~s_desr_et_1[5]) |
(l_desr_exc_1 & ~l2_desr_exc_1 & ~s_desr_exc_1 & ~d_desr_exc_1 & ~pipe_desr_exc_1 & no_desr_s_1);
assign take_l_0 = (l_desr_et_0[5] & ~l2_desr_et_0[5] & ~cwq_desr_et_0[5] & ~mamu_desr_et_0[5] & ~ma_desr_et_0[5] & ~t_desr_et_0[5] & ~s_desr_et_0[5]) |
(l_desr_et_0[5] & l2_desr_et_0[1] & ~cwq_desr_et_0[5] & ~mamu_desr_et_0[5] & ~ma_desr_et_0[5] & ~t_desr_et_0[5] & ~s_desr_et_0[5]) |
(l_desr_exc_0 & ~l2_desr_exc_0 & ~s_desr_exc_0 & ~d_desr_exc_0 & ~pipe_desr_exc_0 & no_desr_s_0);
assign take_d_7 = d_desr_exc_7 & ~pipe_desr_exc_7 & no_desr_s_7;
assign take_d_6 = d_desr_exc_6 & ~pipe_desr_exc_6 & no_desr_s_6;
assign take_d_5 = d_desr_exc_5 & ~pipe_desr_exc_5 & no_desr_s_5;
assign take_d_4 = d_desr_exc_4 & ~pipe_desr_exc_4 & no_desr_s_4;
assign take_d_3 = d_desr_exc_3 & ~pipe_desr_exc_3 & no_desr_s_3;
assign take_d_2 = d_desr_exc_2 & ~pipe_desr_exc_2 & no_desr_s_2;
assign take_d_1 = d_desr_exc_1 & ~pipe_desr_exc_1 & no_desr_s_1;
assign take_d_0 = d_desr_exc_0 & ~pipe_desr_exc_0 & no_desr_s_0;
~(pipe_desr_et_7[5] | m_desr_et_7[5] | l_desr_et_7[5] |
l2_desr_et_7[5] | s_desr_et_7[5] | mamu_desr_et_7[5] |
ma_desr_et_7[5] | cwq_desr_et_7[5] | t_desr_et_7[5]);
~(pipe_desr_et_6[5] | m_desr_et_6[5] | l_desr_et_6[5] |
l2_desr_et_6[5] | s_desr_et_6[5] | mamu_desr_et_6[5] |
ma_desr_et_6[5] | cwq_desr_et_6[5] | t_desr_et_6[5]);
~(pipe_desr_et_5[5] | m_desr_et_5[5] | l_desr_et_5[5] |
l2_desr_et_5[5] | s_desr_et_5[5] | mamu_desr_et_5[5] |
ma_desr_et_5[5] | cwq_desr_et_5[5] | t_desr_et_5[5]);
~(pipe_desr_et_4[5] | m_desr_et_4[5] | l_desr_et_4[5] |
l2_desr_et_4[5] | s_desr_et_4[5] | mamu_desr_et_4[5] |
ma_desr_et_4[5] | cwq_desr_et_4[5] | t_desr_et_4[5]);
~(pipe_desr_et_3[5] | m_desr_et_3[5] | l_desr_et_3[5] |
l2_desr_et_3[5] | s_desr_et_3[5] | mamu_desr_et_3[5] |
ma_desr_et_3[5] | cwq_desr_et_3[5] | t_desr_et_3[5]);
~(pipe_desr_et_2[5] | m_desr_et_2[5] | l_desr_et_2[5] |
l2_desr_et_2[5] | s_desr_et_2[5] | mamu_desr_et_2[5] |
ma_desr_et_2[5] | cwq_desr_et_2[5] | t_desr_et_2[5]);
~(pipe_desr_et_1[5] | m_desr_et_1[5] | l_desr_et_1[5] |
l2_desr_et_1[5] | s_desr_et_1[5] | mamu_desr_et_1[5] |
ma_desr_et_1[5] | cwq_desr_et_1[5] | t_desr_et_1[5]);
~(pipe_desr_et_0[5] | m_desr_et_0[5] | l_desr_et_0[5] |
l2_desr_et_0[5] | s_desr_et_0[5] | mamu_desr_et_0[5] |
ma_desr_et_0[5] | cwq_desr_et_0[5] | t_desr_et_0[5]);
assign ras_desr_et_7[61:56] =
( pipe_desr_et_7[5:0] & {6 {take_pipe_7}}) |
( m_desr_et_7[5:0] & {6 { take_m_7}}) |
( l_desr_et_7[5:0] & {6 { take_l_7}}) |
({1'b0, {1 {1'b0}}, d_desr_et_7[3:0]} & {6 { take_d_7}}) |
( l2_desr_et_7[5:0] & {6 { take_l2_7}}) |
( s_desr_et_7[5:0] & {6 { take_s_7}}) |
( mamu_desr_et_7[5:0] & {6 {take_mamu_7}}) |
( ma_desr_et_7[5:0] & {6 { take_ma_7}}) |
( cwq_desr_et_7[5:0] & {6 { take_cwq_7}}) |
( t_desr_et_7[5:0] & {6 { take_t_7}}) ;
assign ras_desr_et_6[61:56] =
( pipe_desr_et_6[5:0] & {6 {take_pipe_6}}) |
( m_desr_et_6[5:0] & {6 { take_m_6}}) |
( l_desr_et_6[5:0] & {6 { take_l_6}}) |
({1'b0, {1 {1'b0}}, d_desr_et_6[3:0]} & {6 { take_d_6}}) |
( l2_desr_et_6[5:0] & {6 { take_l2_6}}) |
( s_desr_et_6[5:0] & {6 { take_s_6}}) |
( mamu_desr_et_6[5:0] & {6 {take_mamu_6}}) |
( ma_desr_et_6[5:0] & {6 { take_ma_6}}) |
( cwq_desr_et_6[5:0] & {6 { take_cwq_6}}) |
( t_desr_et_6[5:0] & {6 { take_t_6}}) ;
assign ras_desr_et_5[61:56] =
( pipe_desr_et_5[5:0] & {6 {take_pipe_5}}) |
( m_desr_et_5[5:0] & {6 { take_m_5}}) |
( l_desr_et_5[5:0] & {6 { take_l_5}}) |
({1'b0, {1 {1'b0}}, d_desr_et_5[3:0]} & {6 { take_d_5}}) |
( l2_desr_et_5[5:0] & {6 { take_l2_5}}) |
( s_desr_et_5[5:0] & {6 { take_s_5}}) |
( mamu_desr_et_5[5:0] & {6 {take_mamu_5}}) |
( ma_desr_et_5[5:0] & {6 { take_ma_5}}) |
( cwq_desr_et_5[5:0] & {6 { take_cwq_5}}) |
( t_desr_et_5[5:0] & {6 { take_t_5}}) ;
assign ras_desr_et_4[61:56] =
( pipe_desr_et_4[5:0] & {6 {take_pipe_4}}) |
( m_desr_et_4[5:0] & {6 { take_m_4}}) |
( l_desr_et_4[5:0] & {6 { take_l_4}}) |
({1'b0, {1 {1'b0}}, d_desr_et_4[3:0]} & {6 { take_d_4}}) |
( l2_desr_et_4[5:0] & {6 { take_l2_4}}) |
( s_desr_et_4[5:0] & {6 { take_s_4}}) |
( mamu_desr_et_4[5:0] & {6 {take_mamu_4}}) |
( ma_desr_et_4[5:0] & {6 { take_ma_4}}) |
( cwq_desr_et_4[5:0] & {6 { take_cwq_4}}) |
( t_desr_et_4[5:0] & {6 { take_t_4}}) ;
assign ras_desr_et_3[61:56] =
( pipe_desr_et_3[5:0] & {6 {take_pipe_3}}) |
( m_desr_et_3[5:0] & {6 { take_m_3}}) |
( l_desr_et_3[5:0] & {6 { take_l_3}}) |
({1'b0, {1 {1'b0}}, d_desr_et_3[3:0]} & {6 { take_d_3}}) |
( l2_desr_et_3[5:0] & {6 { take_l2_3}}) |
( s_desr_et_3[5:0] & {6 { take_s_3}}) |
( mamu_desr_et_3[5:0] & {6 {take_mamu_3}}) |
( ma_desr_et_3[5:0] & {6 { take_ma_3}}) |
( cwq_desr_et_3[5:0] & {6 { take_cwq_3}}) |
( t_desr_et_3[5:0] & {6 { take_t_3}}) ;
assign ras_desr_et_2[61:56] =
( pipe_desr_et_2[5:0] & {6 {take_pipe_2}}) |
( m_desr_et_2[5:0] & {6 { take_m_2}}) |
( l_desr_et_2[5:0] & {6 { take_l_2}}) |
({1'b0, {1 {1'b0}}, d_desr_et_2[3:0]} & {6 { take_d_2}}) |
( l2_desr_et_2[5:0] & {6 { take_l2_2}}) |
( s_desr_et_2[5:0] & {6 { take_s_2}}) |
( mamu_desr_et_2[5:0] & {6 {take_mamu_2}}) |
( ma_desr_et_2[5:0] & {6 { take_ma_2}}) |
( cwq_desr_et_2[5:0] & {6 { take_cwq_2}}) |
( t_desr_et_2[5:0] & {6 { take_t_2}}) ;
assign ras_desr_et_1[61:56] =
( pipe_desr_et_1[5:0] & {6 {take_pipe_1}}) |
( m_desr_et_1[5:0] & {6 { take_m_1}}) |
( l_desr_et_1[5:0] & {6 { take_l_1}}) |
({1'b0, {1 {1'b0}}, d_desr_et_1[3:0]} & {6 { take_d_1}}) |
( l2_desr_et_1[5:0] & {6 { take_l2_1}}) |
( s_desr_et_1[5:0] & {6 { take_s_1}}) |
( mamu_desr_et_1[5:0] & {6 {take_mamu_1}}) |
( ma_desr_et_1[5:0] & {6 { take_ma_1}}) |
( cwq_desr_et_1[5:0] & {6 { take_cwq_1}}) |
( t_desr_et_1[5:0] & {6 { take_t_1}}) ;
assign ras_desr_et_0[61:56] =
( pipe_desr_et_0[5:0] & {6 {take_pipe_0}}) |
( m_desr_et_0[5:0] & {6 { take_m_0}}) |
( l_desr_et_0[5:0] & {6 { take_l_0}}) |
({1'b0, {1 {1'b0}}, d_desr_et_0[3:0]} & {6 { take_d_0}}) |
( l2_desr_et_0[5:0] & {6 { take_l2_0}}) |
( s_desr_et_0[5:0] & {6 { take_s_0}}) |
( mamu_desr_et_0[5:0] & {6 {take_mamu_0}}) |
( ma_desr_et_0[5:0] & {6 { take_ma_0}}) |
( cwq_desr_et_0[5:0] & {6 { take_cwq_0}}) |
( t_desr_et_0[5:0] & {6 { take_t_0}}) ;
assign write_desr_s[7:0] =
assign ras_write_desr_1st[7:0] =
(write_desr [7:0] & ~dfd_desr_f[7:0]) |
(write_desr_s[7:0] & ~dfd_desr_s[7:0]) |
(write_desr [7:0] & rd_desr_dec[7:0]) ;
assign ras_write_desr_2nd[7:0] =
(write_desr[7:0] & ~write_desr_s[7:0] & dfd_desr_f[7:0]) |
( write_desr_s[7:0] & dfd_desr_s[7:0]) ;
(({{3 {1'b0}}, pipe_desr_exc_7} +
{{3 {1'b0}}, m_desr_exc_7} +
{{3 {1'b0}}, l_desr_exc_7} +
{{3 {1'b0}}, d_desr_exc_7} +
{{3 {1'b0}}, l2_desr_exc_7} +
{{3 {1'b0}}, s_desr_exc_7} +
{{3 {1'b0}}, mamu_desr_exc_7} +
{{3 {1'b0}}, ma_desr_exc_7} +
{{3 {1'b0}}, cwq_desr_exc_7} +
{{3 {1'b0}}, t_desr_exc_7}) > 4'b0001) |
(dfd_desr_f[7] & ~rd_desr_dec[7]);
(({{3 {1'b0}}, pipe_desr_exc_6} +
{{3 {1'b0}}, m_desr_exc_6} +
{{3 {1'b0}}, l_desr_exc_6} +
{{3 {1'b0}}, d_desr_exc_6} +
{{3 {1'b0}}, l2_desr_exc_6} +
{{3 {1'b0}}, s_desr_exc_6} +
{{3 {1'b0}}, mamu_desr_exc_6} +
{{3 {1'b0}}, ma_desr_exc_6} +
{{3 {1'b0}}, cwq_desr_exc_6} +
{{3 {1'b0}}, t_desr_exc_6}) > 4'b0001) |
(dfd_desr_f[6] & ~rd_desr_dec[6]);
(({{3 {1'b0}}, pipe_desr_exc_5} +
{{3 {1'b0}}, m_desr_exc_5} +
{{3 {1'b0}}, l_desr_exc_5} +
{{3 {1'b0}}, d_desr_exc_5} +
{{3 {1'b0}}, l2_desr_exc_5} +
{{3 {1'b0}}, s_desr_exc_5} +
{{3 {1'b0}}, mamu_desr_exc_5} +
{{3 {1'b0}}, ma_desr_exc_5} +
{{3 {1'b0}}, cwq_desr_exc_5} +
{{3 {1'b0}}, t_desr_exc_5}) > 4'b0001) |
(dfd_desr_f[5] & ~rd_desr_dec[5]);
(({{3 {1'b0}}, pipe_desr_exc_4} +
{{3 {1'b0}}, m_desr_exc_4} +
{{3 {1'b0}}, l_desr_exc_4} +
{{3 {1'b0}}, d_desr_exc_4} +
{{3 {1'b0}}, l2_desr_exc_4} +
{{3 {1'b0}}, s_desr_exc_4} +
{{3 {1'b0}}, mamu_desr_exc_4} +
{{3 {1'b0}}, ma_desr_exc_4} +
{{3 {1'b0}}, cwq_desr_exc_4} +
{{3 {1'b0}}, t_desr_exc_4}) > 4'b0001) |
(dfd_desr_f[4] & ~rd_desr_dec[4]);
(({{3 {1'b0}}, pipe_desr_exc_3} +
{{3 {1'b0}}, m_desr_exc_3} +
{{3 {1'b0}}, l_desr_exc_3} +
{{3 {1'b0}}, d_desr_exc_3} +
{{3 {1'b0}}, l2_desr_exc_3} +
{{3 {1'b0}}, s_desr_exc_3} +
{{3 {1'b0}}, mamu_desr_exc_3} +
{{3 {1'b0}}, ma_desr_exc_3} +
{{3 {1'b0}}, cwq_desr_exc_3} +
{{3 {1'b0}}, t_desr_exc_3}) > 4'b0001) |
(dfd_desr_f[3] & ~rd_desr_dec[3]);
(({{3 {1'b0}}, pipe_desr_exc_2} +
{{3 {1'b0}}, m_desr_exc_2} +
{{3 {1'b0}}, l_desr_exc_2} +
{{3 {1'b0}}, d_desr_exc_2} +
{{3 {1'b0}}, l2_desr_exc_2} +
{{3 {1'b0}}, s_desr_exc_2} +
{{3 {1'b0}}, mamu_desr_exc_2} +
{{3 {1'b0}}, ma_desr_exc_2} +
{{3 {1'b0}}, cwq_desr_exc_2} +
{{3 {1'b0}}, t_desr_exc_2}) > 4'b0001) |
(dfd_desr_f[2] & ~rd_desr_dec[2]);
(({{3 {1'b0}}, pipe_desr_exc_1} +
{{3 {1'b0}}, m_desr_exc_1} +
{{3 {1'b0}}, l_desr_exc_1} +
{{3 {1'b0}}, d_desr_exc_1} +
{{3 {1'b0}}, l2_desr_exc_1} +
{{3 {1'b0}}, s_desr_exc_1} +
{{3 {1'b0}}, mamu_desr_exc_1} +
{{3 {1'b0}}, ma_desr_exc_1} +
{{3 {1'b0}}, cwq_desr_exc_1} +
{{3 {1'b0}}, t_desr_exc_1}) > 4'b0001) |
(dfd_desr_f[1] & ~rd_desr_dec[1]);
(({{3 {1'b0}}, pipe_desr_exc_0} +
{{3 {1'b0}}, m_desr_exc_0} +
{{3 {1'b0}}, l_desr_exc_0} +
{{3 {1'b0}}, d_desr_exc_0} +
{{3 {1'b0}}, l2_desr_exc_0} +
{{3 {1'b0}}, s_desr_exc_0} +
{{3 {1'b0}}, mamu_desr_exc_0} +
{{3 {1'b0}}, ma_desr_exc_0} +
{{3 {1'b0}}, cwq_desr_exc_0} +
{{3 {1'b0}}, t_desr_exc_0}) > 4'b0001) |
(dfd_desr_f[0] & ~rd_desr_dec[0]);
assign ras_desr_ea_7[10:0] =
({{2 {1'b0}}, pipe_desr_ea_7[8:0]} & {11 {take_pipe_7}}) |
({{2 {1'b0}}, d_desr_ea_7[8:0]} & {11 { take_d_7}}) |
({{8 {1'b0}}, s_desr_ea_7[2:0]} & {11 { take_s_7}}) |
( mamu_desr_ea_7[10:0] & {11 {take_mamu_7}}) |
({{1 {1'b0}}, t_desr_ea_7[9:0]} & {11 { take_t_7}}) ;
assign ras_desr_ea_6[10:0] =
({{2 {1'b0}}, pipe_desr_ea_6[8:0]} & {11 {take_pipe_6}}) |
({{2 {1'b0}}, d_desr_ea_6[8:0]} & {11 { take_d_6}}) |
({{8 {1'b0}}, s_desr_ea_6[2:0]} & {11 { take_s_6}}) |
( mamu_desr_ea_6[10:0] & {11 {take_mamu_6}}) |
({{1 {1'b0}}, t_desr_ea_6[9:0]} & {11 { take_t_6}}) ;
assign ras_desr_ea_5[10:0] =
({{2 {1'b0}}, pipe_desr_ea_5[8:0]} & {11 {take_pipe_5}}) |
({{2 {1'b0}}, d_desr_ea_5[8:0]} & {11 { take_d_5}}) |
({{8 {1'b0}}, s_desr_ea_5[2:0]} & {11 { take_s_5}}) |
( mamu_desr_ea_5[10:0] & {11 {take_mamu_5}}) |
({{1 {1'b0}}, t_desr_ea_5[9:0]} & {11 { take_t_5}}) ;
assign ras_desr_ea_4[10:0] =
({{2 {1'b0}}, pipe_desr_ea_4[8:0]} & {11 {take_pipe_4}}) |
({{2 {1'b0}}, d_desr_ea_4[8:0]} & {11 { take_d_4}}) |
({{8 {1'b0}}, s_desr_ea_4[2:0]} & {11 { take_s_4}}) |
( mamu_desr_ea_4[10:0] & {11 {take_mamu_4}}) |
({{1 {1'b0}}, t_desr_ea_4[9:0]} & {11 { take_t_4}}) ;
assign ras_desr_ea_3[10:0] =
({{2 {1'b0}}, pipe_desr_ea_3[8:0]} & {11 {take_pipe_3}}) |
({{2 {1'b0}}, d_desr_ea_3[8:0]} & {11 { take_d_3}}) |
({{8 {1'b0}}, s_desr_ea_3[2:0]} & {11 { take_s_3}}) |
( mamu_desr_ea_3[10:0] & {11 {take_mamu_3}}) |
({{1 {1'b0}}, t_desr_ea_3[9:0]} & {11 { take_t_3}}) ;
assign ras_desr_ea_2[10:0] =
({{2 {1'b0}}, pipe_desr_ea_2[8:0]} & {11 {take_pipe_2}}) |
({{2 {1'b0}}, d_desr_ea_2[8:0]} & {11 { take_d_2}}) |
({{8 {1'b0}}, s_desr_ea_2[2:0]} & {11 { take_s_2}}) |
( mamu_desr_ea_2[10:0] & {11 {take_mamu_2}}) |
({{1 {1'b0}}, t_desr_ea_2[9:0]} & {11 { take_t_2}}) ;
assign ras_desr_ea_1[10:0] =
({{2 {1'b0}}, pipe_desr_ea_1[8:0]} & {11 {take_pipe_1}}) |
({{2 {1'b0}}, d_desr_ea_1[8:0]} & {11 { take_d_1}}) |
({{8 {1'b0}}, s_desr_ea_1[2:0]} & {11 { take_s_1}}) |
( mamu_desr_ea_1[10:0] & {11 {take_mamu_1}}) |
({{1 {1'b0}}, t_desr_ea_1[9:0]} & {11 { take_t_1}}) ;
assign ras_desr_ea_0[10:0] =
({{2 {1'b0}}, pipe_desr_ea_0[8:0]} & {11 {take_pipe_0}}) |
({{2 {1'b0}}, d_desr_ea_0[8:0]} & {11 { take_d_0}}) |
({{8 {1'b0}}, s_desr_ea_0[2:0]} & {11 { take_s_0}}) |
( mamu_desr_ea_0[10:0] & {11 {take_mamu_0}}) |
({{1 {1'b0}}, t_desr_ea_0[9:0]} & {11 { take_t_0}}) ;
//////////////////////////////////////////////////////////////////////////////
tlu_ras_ctl_msff_ctl_macro__width_1 sbdiou_lat (
.scan_in(sbdiou_lat_scanin),
.scan_out(sbdiou_lat_scanout),
.din (lsu_sbdiou_err_g ),
tlu_ras_ctl_msff_ctl_macro__width_1 sbapp_lat (
.scan_in(sbapp_lat_scanin),
.scan_out(sbapp_lat_scanout),
{ s_tid[2] & s_tid[1] & s_tid[0],
s_tid[2] & s_tid[1] & ~s_tid[0],
s_tid[2] & ~s_tid[1] & s_tid[0],
s_tid[2] & ~s_tid[1] & ~s_tid[0],
~s_tid[2] & s_tid[1] & s_tid[0],
~s_tid[2] & s_tid[1] & ~s_tid[0],
~s_tid[2] & ~s_tid[1] & s_tid[0],
~s_tid[2] & ~s_tid[1] & ~s_tid[0]} &
assign ras_fesr_et_7[61:60] =
{sbapp, sbdiou} & {2 {f_dec_tid[7]}};
assign ras_fesr_et_6[61:60] =
{sbapp, sbdiou} & {2 {f_dec_tid[6]}};
assign ras_fesr_et_5[61:60] =
{sbapp, sbdiou} & {2 {f_dec_tid[5]}};
assign ras_fesr_et_4[61:60] =
{sbapp, sbdiou} & {2 {f_dec_tid[4]}};
assign ras_fesr_et_3[61:60] =
{sbapp, sbdiou} & {2 {f_dec_tid[3]}};
assign ras_fesr_et_2[61:60] =
{sbapp, sbdiou} & {2 {f_dec_tid[2]}};
assign ras_fesr_et_1[61:60] =
{sbapp, sbdiou} & {2 {f_dec_tid[1]}};
assign ras_fesr_et_0[61:60] =
{sbapp, sbdiou} & {2 {f_dec_tid[0]}};
assign ras_fesr_en[7:0] =
write_fesr[7:0] | ras_rd_fesr[7:0] | update_priv[7:0];
assign ras_write_fesr[7:0] =
write_fesr[7:0] & (~dfd_fesr_f[7:0] | ras_rd_fesr[7:0]);
assign ras_fesr_ea_7[59:55] =
{fesr_priv[1:0], s_dsfar[2:0]} & {5 {f_dec_tid[7]}};
assign ras_fesr_ea_6[59:55] =
{fesr_priv[1:0], s_dsfar[2:0]} & {5 {f_dec_tid[6]}};
assign ras_fesr_ea_5[59:55] =
{fesr_priv[1:0], s_dsfar[2:0]} & {5 {f_dec_tid[5]}};
assign ras_fesr_ea_4[59:55] =
{fesr_priv[1:0], s_dsfar[2:0]} & {5 {f_dec_tid[4]}};
assign ras_fesr_ea_3[59:55] =
{fesr_priv[1:0], s_dsfar[2:0]} & {5 {f_dec_tid[3]}};
assign ras_fesr_ea_2[59:55] =
{fesr_priv[1:0], s_dsfar[2:0]} & {5 {f_dec_tid[2]}};
assign ras_fesr_ea_1[59:55] =
{fesr_priv[1:0], s_dsfar[2:0]} & {5 {f_dec_tid[1]}};
assign ras_fesr_ea_0[59:55] =
{fesr_priv[1:0], s_dsfar[2:0]} & {5 {f_dec_tid[0]}};
//////////////////////////////////////////////////////////////////////////////
// Support debug event control register function
// error_event_1 error_event_0 meaning
assign error_event_1_in[7:0] =
assign error_event_0_in[7:0] =
precise_i_error[7:0] | precise_d_error[7:0] |
tlu_ras_ctl_msff_ctl_macro__width_8 event_1_lat (
.scan_in(event_1_lat_scanin),
.scan_out(event_1_lat_scanout),
.din (error_event_1_in [7:0] ),
.dout (error_event_1 [7:0] ),
tlu_ras_ctl_msff_ctl_macro__width_8 event_0_lat (
.scan_in(event_0_lat_scanin),
.scan_out(event_0_lat_scanout),
.din (error_event_0_in [7:0] ),
.dout (error_event_0 [7:0] ),
assign ras_precise_error[7:0] =
~error_event_1[7:0] & error_event_0[7:0];
assign ras_disrupting_error[7:0] =
error_event_1[7:0] & ~error_event_0[7:0];
assign ras_deferred_error[7:0] =
error_event_1[7:0] & error_event_0[7:0];
//////////////////////////////////////////////////////////////////////////////
// Each pack has one flop
tlu_ras_ctl_spare_ctl_macro__num_16 spares (
.scan_out(spares_scanout),
// sparex_lat gets placed with spare pack x
tlu_ras_ctl_msff_ctl_macro__width_1 spare0_lat (
.scan_in(spare0_lat_scanin),
.scan_out(spare0_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare1_lat (
.scan_in(spare1_lat_scanin),
.scan_out(spare1_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare2_lat (
.scan_in(spare2_lat_scanin),
.scan_out(spare2_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare3_lat (
.scan_in(spare3_lat_scanin),
.scan_out(spare3_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare4_lat (
.scan_in(spare4_lat_scanin),
.scan_out(spare4_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare5_lat (
.scan_in(spare5_lat_scanin),
.scan_out(spare5_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare6_lat (
.scan_in(spare6_lat_scanin),
.scan_out(spare6_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare7_lat (
.scan_in(spare7_lat_scanin),
.scan_out(spare7_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare8_lat (
.scan_in(spare8_lat_scanin),
.scan_out(spare8_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare9_lat (
.scan_in(spare9_lat_scanin),
.scan_out(spare9_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare10_lat (
.scan_in(spare10_lat_scanin),
.scan_out(spare10_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare11_lat (
.scan_in(spare11_lat_scanin),
.scan_out(spare11_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare12_lat (
.scan_in(spare12_lat_scanin),
.scan_out(spare12_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare13_lat (
.scan_in(spare13_lat_scanin),
.scan_out(spare13_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare14_lat (
.scan_in(spare14_lat_scanin),
.scan_out(spare14_lat_scanout),
tlu_ras_ctl_msff_ctl_macro__width_1 spare15_lat (
.scan_in(spare15_lat_scanin),
.scan_out(spare15_lat_scanout),
supply0 vss; // <- port for ground
supply1 vdd; // <- port for power
assign twocycle_inst_b_lat_scanin = scan_in ;
assign inst_valid_b_lat_scanin = twocycle_inst_b_lat_scanout;
assign w_en_lat_scanin = inst_valid_b_lat_scanout ;
assign w1_en_lat_scanin = w_en_lat_scanout ;
assign inst_valid_w_lat_scanin = w1_en_lat_scanout ;
assign block_store_w_lat_scanin = inst_valid_w_lat_scanout ;
assign tid1_b_lat_scanin = block_store_w_lat_scanout;
assign tid0_b_lat_scanin = tid1_b_lat_scanout ;
assign tid1_w_lat_scanin = tid0_b_lat_scanout ;
assign tid0_w_lat_scanin = tid1_w_lat_scanout ;
assign fgu_inst_b_lat_scanin = tid0_w_lat_scanout ;
assign fgu_inst_w_lat_scanin = fgu_inst_b_lat_scanout ;
assign lsu_inst_b_lat_scanin = fgu_inst_w_lat_scanout ;
assign i_isfsr1_b_lat_scanin = lsu_inst_b_lat_scanout ;
assign i_isfsr0_b_lat_scanin = i_isfsr1_b_lat_scanout ;
assign i_desr1_b_lat_scanin = i_isfsr0_b_lat_scanout ;
assign i_desr0_b_lat_scanin = i_desr1_b_lat_scanout ;
assign irf0_ecc_addr_b_lat_scanin = i_desr0_b_lat_scanout ;
assign irf1_ecc_addr_b_lat_scanin = irf0_ecc_addr_b_lat_scanout;
assign irf0_ecc_check_b_lat_scanin = irf1_ecc_addr_b_lat_scanout;
assign irf1_ecc_check_b_lat_scanin = irf0_ecc_check_b_lat_scanout;
assign i_isfsr1_w_lat_scanin = irf1_ecc_check_b_lat_scanout;
assign i_isfsr0_w_lat_scanin = i_isfsr1_w_lat_scanout ;
assign i_desr1_w_lat_scanin = i_isfsr0_w_lat_scanout ;
assign i_desr0_w_lat_scanin = i_desr1_w_lat_scanout ;
assign irfu_w_lat_scanin = i_desr0_w_lat_scanout ;
assign irfc_w_lat_scanin = irfu_w_lat_scanout ;
assign seen_bsee_lat_scanin = irfc_w_lat_scanout ;
assign dttp_w_lat_scanin = seen_bsee_lat_scanout ;
assign dtmh_w_lat_scanin = dttp_w_lat_scanout ;
assign dtdp_w_lat_scanin = dtmh_w_lat_scanout ;
assign irf0_ecc_addr_w_lat_scanin = dtdp_w_lat_scanout ;
assign irf1_ecc_addr_w_lat_scanin = irf0_ecc_addr_w_lat_scanout;
assign irf0_ecc_check_w_lat_scanin = irf1_ecc_addr_w_lat_scanout;
assign irf1_ecc_check_w_lat_scanin = irf0_ecc_check_w_lat_scanout;
assign frf_ecc_addr_w_lat_scanin = irf1_ecc_check_w_lat_scanout;
assign frf_ecc_check_w_lat_scanin = frf_ecc_addr_w_lat_scanout;
assign ecc_w1_lat_scanin = frf_ecc_check_w_lat_scanout;
assign tid1_w1_lat_scanin = ecc_w1_lat_scanout ;
assign tid0_w1_lat_scanin = tid1_w1_lat_scanout ;
assign pipe_dsfsr1_lat_scanin = tid0_w1_lat_scanout ;
assign pipe_dsfsr0_lat_scanin = pipe_dsfsr1_lat_scanout ;
assign pipe_dsfar1_lat_scanin = pipe_dsfsr0_lat_scanout ;
assign pipe_dsfar0_lat_scanin = pipe_dsfar1_lat_scanout ;
assign load_dsfar_lat_scanin = pipe_dsfar0_lat_scanout ;
assign i_desr1_w1_lat_scanin = load_dsfar_lat_scanout ;
assign i_desr0_w1_lat_scanin = i_desr1_w1_lat_scanout ;
assign excp_way_lat_scanin = i_desr0_w1_lat_scanout ;
assign ic_way7_lat_scanin = excp_way_lat_scanout ;
assign ic_way6_lat_scanin = ic_way7_lat_scanout ;
assign ic_way5_lat_scanin = ic_way6_lat_scanout ;
assign ic_way4_lat_scanin = ic_way5_lat_scanout ;
assign ic_way3_lat_scanin = ic_way4_lat_scanout ;
assign ic_way2_lat_scanin = ic_way3_lat_scanout ;
assign ic_way1_lat_scanin = ic_way2_lat_scanout ;
assign ic_way0_lat_scanin = ic_way1_lat_scanout ;
assign pc_1_w1_lat_scanin = ic_way0_lat_scanout ;
assign pc_0_w1_lat_scanin = pc_1_w1_lat_scanout ;
assign it2lc_lat_scanin = pc_0_w1_lat_scanout ;
assign dt2lc_lat_scanin = it2lc_lat_scanout ;
assign tca_error_lat_scanin = dt2lc_lat_scanout ;
assign l_dsfar_lat_scanin = tca_error_lat_scanout ;
assign l_tid_lat_scanin = l_dsfar_lat_scanout ;
assign dcl2c_lat_scanin = l_tid_lat_scanout ;
assign dcl2u_lat_scanin = dcl2c_lat_scanout ;
assign dcl2nd_lat_scanin = dcl2u_lat_scanout ;
assign dcsoc_lat_scanin = dcl2nd_lat_scanout ;
assign s_dsfar_lat_scanin = dcsoc_lat_scanout ;
assign s_tid_lat_scanin = s_dsfar_lat_scanout ;
assign stb_flush_lat_scanin = s_tid_lat_scanout ;
assign sbdlc_lat_scanin = stb_flush_lat_scanout ;
assign sbdlu_lat_scanin = sbdlc_lat_scanout ;
assign asi_rd_ctl_lat_scanin = sbdlu_lat_scanout ;
assign dcvp_lat_scanin = asi_rd_ctl_lat_scanout ;
assign dctp_lat_scanin = dcvp_lat_scanout ;
assign dctm_lat_scanin = dctp_lat_scanout ;
assign dcdp_lat_scanin = dctm_lat_scanout ;
assign cxi_lat_scanin = dcdp_lat_scanout ;
assign sbdpc_lat_scanin = cxi_lat_scanout ;
assign sbdpu_lat_scanin = sbdpc_lat_scanout ;
assign mamu_err_lat_scanin = sbdpu_lat_scanout ;
assign ma_tid_lat_scanin = mamu_err_lat_scanout ;
assign cwq_tid_lat_scanin = ma_tid_lat_scanout ;
assign spu_error_lat_scanin = cwq_tid_lat_scanout ;
assign sbdiou_lat_scanin = spu_error_lat_scanout ;
assign sbapp_lat_scanin = sbdiou_lat_scanout ;
assign event_1_lat_scanin = sbapp_lat_scanout ;
assign event_0_lat_scanin = event_1_lat_scanout ;
assign spares_scanin = event_0_lat_scanout ;
assign spare0_lat_scanin = spares_scanout ;
assign spare1_lat_scanin = spare0_lat_scanout ;
assign spare2_lat_scanin = spare1_lat_scanout ;
assign spare3_lat_scanin = spare2_lat_scanout ;
assign spare4_lat_scanin = spare3_lat_scanout ;
assign spare5_lat_scanin = spare4_lat_scanout ;
assign spare6_lat_scanin = spare5_lat_scanout ;
assign spare7_lat_scanin = spare6_lat_scanout ;
assign spare8_lat_scanin = spare7_lat_scanout ;
assign spare9_lat_scanin = spare8_lat_scanout ;
assign spare10_lat_scanin = spare9_lat_scanout ;
assign spare11_lat_scanin = spare10_lat_scanout ;
assign spare12_lat_scanin = spare11_lat_scanout ;
assign spare13_lat_scanin = spare12_lat_scanout ;
assign spare14_lat_scanin = spare13_lat_scanout ;
assign spare15_lat_scanin = spare14_lat_scanout ;
assign scan_out = spare15_lat_scanout ;
assign isfsr_7_lat_wmr_scanin = wmr_scan_in ;
assign isfsr_6_lat_wmr_scanin = isfsr_7_lat_wmr_scanout ;
assign isfsr_5_lat_wmr_scanin = isfsr_6_lat_wmr_scanout ;
assign isfsr_4_lat_wmr_scanin = isfsr_5_lat_wmr_scanout ;
assign isfsr_3_lat_wmr_scanin = isfsr_4_lat_wmr_scanout ;
assign isfsr_2_lat_wmr_scanin = isfsr_3_lat_wmr_scanout ;
assign isfsr_1_lat_wmr_scanin = isfsr_2_lat_wmr_scanout ;
assign isfsr_0_lat_wmr_scanin = isfsr_1_lat_wmr_scanout ;
assign dsfsr_7_lat_wmr_scanin = isfsr_0_lat_wmr_scanout ;
assign dsfsr_6_lat_wmr_scanin = dsfsr_7_lat_wmr_scanout ;
assign dsfsr_5_lat_wmr_scanin = dsfsr_6_lat_wmr_scanout ;
assign dsfsr_4_lat_wmr_scanin = dsfsr_5_lat_wmr_scanout ;
assign dsfsr_3_lat_wmr_scanin = dsfsr_4_lat_wmr_scanout ;
assign dsfsr_2_lat_wmr_scanin = dsfsr_3_lat_wmr_scanout ;
assign dsfsr_1_lat_wmr_scanin = dsfsr_2_lat_wmr_scanout ;
assign dsfsr_0_lat_wmr_scanin = dsfsr_1_lat_wmr_scanout ;
assign wmr_scan_out = dsfsr_0_lat_wmr_scanout ;
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_l1clkhdr_ctl_macro (
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_2 (
assign fdin[1:0] = din[1:0];
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_1 (
assign fdin[0:0] = din[0:0];
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_8 (
assign fdin[7:0] = din[7:0];
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_3 (
assign fdin[2:0] = din[2:0];
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_4 (
assign fdin[3:0] = din[3:0];
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_5 (
assign fdin[4:0] = din[4:0];
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_6 (
assign fdin[5:0] = din[5:0];
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_14 (
assign fdin[13:0] = din[13:0];
.so({so[12:0],scan_out}),
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_20 (
assign fdin[19:0] = din[19:0];
.so({so[18:0],scan_out}),
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_7 (
assign fdin[6:0] = din[6:0];
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_9 (
assign fdin[8:0] = din[8:0];
// any PARAMS parms go into naming of macro
module tlu_ras_ctl_msff_ctl_macro__width_12 (
assign fdin[11:0] = din[11:0];
.so({so[10:0],scan_out}),
// Description: Spare gate macro for control blocks
// Param num controls the number of times the macro is added
// flops=0 can be used to use only combination spare logic
module tlu_ras_ctl_spare_ctl_macro__num_16 (
wire spare0_buf_32x_unused;
wire spare0_nand3_8x_unused;
wire spare0_inv_8x_unused;
wire spare0_aoi22_4x_unused;
wire spare0_buf_8x_unused;
wire spare0_oai22_4x_unused;
wire spare0_inv_16x_unused;
wire spare0_nand2_16x_unused;
wire spare0_nor3_4x_unused;
wire spare0_nand2_8x_unused;
wire spare0_buf_16x_unused;
wire spare0_nor2_16x_unused;
wire spare0_inv_32x_unused;
wire spare1_buf_32x_unused;
wire spare1_nand3_8x_unused;
wire spare1_inv_8x_unused;
wire spare1_aoi22_4x_unused;
wire spare1_buf_8x_unused;
wire spare1_oai22_4x_unused;
wire spare1_inv_16x_unused;
wire spare1_nand2_16x_unused;
wire spare1_nor3_4x_unused;
wire spare1_nand2_8x_unused;
wire spare1_buf_16x_unused;
wire spare1_nor2_16x_unused;
wire spare1_inv_32x_unused;
wire spare2_buf_32x_unused;
wire spare2_nand3_8x_unused;
wire spare2_inv_8x_unused;
wire spare2_aoi22_4x_unused;
wire spare2_buf_8x_unused;
wire spare2_oai22_4x_unused;
wire spare2_inv_16x_unused;
wire spare2_nand2_16x_unused;
wire spare2_nor3_4x_unused;
wire spare2_nand2_8x_unused;
wire spare2_buf_16x_unused;
wire spare2_nor2_16x_unused;
wire spare2_inv_32x_unused;
wire spare3_buf_32x_unused;
wire spare3_nand3_8x_unused;
wire spare3_inv_8x_unused;
wire spare3_aoi22_4x_unused;
wire spare3_buf_8x_unused;
wire spare3_oai22_4x_unused;
wire spare3_inv_16x_unused;
wire spare3_nand2_16x_unused;
wire spare3_nor3_4x_unused;
wire spare3_nand2_8x_unused;
wire spare3_buf_16x_unused;
wire spare3_nor2_16x_unused;
wire spare3_inv_32x_unused;
wire spare4_buf_32x_unused;
wire spare4_nand3_8x_unused;
wire spare4_inv_8x_unused;
wire spare4_aoi22_4x_unused;
wire spare4_buf_8x_unused;
wire spare4_oai22_4x_unused;
wire spare4_inv_16x_unused;
wire spare4_nand2_16x_unused;
wire spare4_nor3_4x_unused;
wire spare4_nand2_8x_unused;
wire spare4_buf_16x_unused;
wire spare4_nor2_16x_unused;
wire spare4_inv_32x_unused;
wire spare5_buf_32x_unused;
wire spare5_nand3_8x_unused;
wire spare5_inv_8x_unused;
wire spare5_aoi22_4x_unused;
wire spare5_buf_8x_unused;
wire spare5_oai22_4x_unused;
wire spare5_inv_16x_unused;
wire spare5_nand2_16x_unused;
wire spare5_nor3_4x_unused;
wire spare5_nand2_8x_unused;
wire spare5_buf_16x_unused;
wire spare5_nor2_16x_unused;
wire spare5_inv_32x_unused;
wire spare6_buf_32x_unused;
wire spare6_nand3_8x_unused;
wire spare6_inv_8x_unused;
wire spare6_aoi22_4x_unused;
wire spare6_buf_8x_unused;
wire spare6_oai22_4x_unused;
wire spare6_inv_16x_unused;
wire spare6_nand2_16x_unused;
wire spare6_nor3_4x_unused;
wire spare6_nand2_8x_unused;
wire spare6_buf_16x_unused;
wire spare6_nor2_16x_unused;
wire spare6_inv_32x_unused;
wire spare7_buf_32x_unused;
wire spare7_nand3_8x_unused;
wire spare7_inv_8x_unused;
wire spare7_aoi22_4x_unused;
wire spare7_buf_8x_unused;
wire spare7_oai22_4x_unused;
wire spare7_inv_16x_unused;
wire spare7_nand2_16x_unused;
wire spare7_nor3_4x_unused;
wire spare7_nand2_8x_unused;
wire spare7_buf_16x_unused;
wire spare7_nor2_16x_unused;
wire spare7_inv_32x_unused;
wire spare8_buf_32x_unused;
wire spare8_nand3_8x_unused;
wire spare8_inv_8x_unused;
wire spare8_aoi22_4x_unused;
wire spare8_buf_8x_unused;
wire spare8_oai22_4x_unused;
wire spare8_inv_16x_unused;
wire spare8_nand2_16x_unused;
wire spare8_nor3_4x_unused;
wire spare8_nand2_8x_unused;
wire spare8_buf_16x_unused;
wire spare8_nor2_16x_unused;
wire spare8_inv_32x_unused;
wire spare9_buf_32x_unused;
wire spare9_nand3_8x_unused;
wire spare9_inv_8x_unused;
wire spare9_aoi22_4x_unused;
wire spare9_buf_8x_unused;
wire spare9_oai22_4x_unused;
wire spare9_inv_16x_unused;
wire spare9_nand2_16x_unused;
wire spare9_nor3_4x_unused;
wire spare9_nand2_8x_unused;
wire spare9_buf_16x_unused;
wire spare9_nor2_16x_unused;
wire spare9_inv_32x_unused;
wire spare10_flop_unused;
wire spare10_buf_32x_unused;
wire spare10_nand3_8x_unused;
wire spare10_inv_8x_unused;
wire spare10_aoi22_4x_unused;
wire spare10_buf_8x_unused;
wire spare10_oai22_4x_unused;
wire spare10_inv_16x_unused;
wire spare10_nand2_16x_unused;
wire spare10_nor3_4x_unused;
wire spare10_nand2_8x_unused;
wire spare10_buf_16x_unused;
wire spare10_nor2_16x_unused;
wire spare10_inv_32x_unused;
wire spare11_flop_unused;
wire spare11_buf_32x_unused;
wire spare11_nand3_8x_unused;
wire spare11_inv_8x_unused;
wire spare11_aoi22_4x_unused;
wire spare11_buf_8x_unused;
wire spare11_oai22_4x_unused;
wire spare11_inv_16x_unused;
wire spare11_nand2_16x_unused;
wire spare11_nor3_4x_unused;
wire spare11_nand2_8x_unused;
wire spare11_buf_16x_unused;
wire spare11_nor2_16x_unused;
wire spare11_inv_32x_unused;
wire spare12_flop_unused;
wire spare12_buf_32x_unused;
wire spare12_nand3_8x_unused;
wire spare12_inv_8x_unused;
wire spare12_aoi22_4x_unused;
wire spare12_buf_8x_unused;
wire spare12_oai22_4x_unused;
wire spare12_inv_16x_unused;
wire spare12_nand2_16x_unused;
wire spare12_nor3_4x_unused;
wire spare12_nand2_8x_unused;
wire spare12_buf_16x_unused;
wire spare12_nor2_16x_unused;
wire spare12_inv_32x_unused;
wire spare13_flop_unused;
wire spare13_buf_32x_unused;
wire spare13_nand3_8x_unused;
wire spare13_inv_8x_unused;
wire spare13_aoi22_4x_unused;
wire spare13_buf_8x_unused;
wire spare13_oai22_4x_unused;
wire spare13_inv_16x_unused;
wire spare13_nand2_16x_unused;
wire spare13_nor3_4x_unused;
wire spare13_nand2_8x_unused;
wire spare13_buf_16x_unused;
wire spare13_nor2_16x_unused;
wire spare13_inv_32x_unused;
wire spare14_flop_unused;
wire spare14_buf_32x_unused;
wire spare14_nand3_8x_unused;
wire spare14_inv_8x_unused;
wire spare14_aoi22_4x_unused;
wire spare14_buf_8x_unused;
wire spare14_oai22_4x_unused;
wire spare14_inv_16x_unused;
wire spare14_nand2_16x_unused;
wire spare14_nor3_4x_unused;
wire spare14_nand2_8x_unused;
wire spare14_buf_16x_unused;
wire spare14_nor2_16x_unused;
wire spare14_inv_32x_unused;
wire spare15_flop_unused;
wire spare15_buf_32x_unused;
wire spare15_nand3_8x_unused;
wire spare15_inv_8x_unused;
wire spare15_aoi22_4x_unused;
wire spare15_buf_8x_unused;
wire spare15_oai22_4x_unused;
wire spare15_inv_16x_unused;
wire spare15_nand2_16x_unused;
wire spare15_nor3_4x_unused;
wire spare15_nand2_8x_unused;
wire spare15_buf_16x_unused;
wire spare15_nor2_16x_unused;
wire spare15_inv_32x_unused;
cl_sc1_msff_8x spare0_flop (.l1clk(l1clk),
cl_u1_buf_32x spare0_buf_32x (.in(1'b1),
.out(spare0_buf_32x_unused));
cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1),
.out(spare0_nand3_8x_unused));
cl_u1_inv_8x spare0_inv_8x (.in(1'b1),
.out(spare0_inv_8x_unused));
cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1),
.out(spare0_aoi22_4x_unused));
cl_u1_buf_8x spare0_buf_8x (.in(1'b1),
.out(spare0_buf_8x_unused));
cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1),
.out(spare0_oai22_4x_unused));
cl_u1_inv_16x spare0_inv_16x (.in(1'b1),
.out(spare0_inv_16x_unused));
cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1),
.out(spare0_nand2_16x_unused));
cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0),
.out(spare0_nor3_4x_unused));
cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1),
.out(spare0_nand2_8x_unused));
cl_u1_buf_16x spare0_buf_16x (.in(1'b1),
.out(spare0_buf_16x_unused));
cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0),
.out(spare0_nor2_16x_unused));
cl_u1_inv_32x spare0_inv_32x (.in(1'b1),
.out(spare0_inv_32x_unused));
cl_sc1_msff_8x spare1_flop (.l1clk(l1clk),
cl_u1_buf_32x spare1_buf_32x (.in(1'b1),
.out(spare1_buf_32x_unused));
cl_u1_nand3_8x spare1_nand3_8x (.in0(1'b1),
.out(spare1_nand3_8x_unused));
cl_u1_inv_8x spare1_inv_8x (.in(1'b1),
.out(spare1_inv_8x_unused));
cl_u1_aoi22_4x spare1_aoi22_4x (.in00(1'b1),
.out(spare1_aoi22_4x_unused));
cl_u1_buf_8x spare1_buf_8x (.in(1'b1),
.out(spare1_buf_8x_unused));
cl_u1_oai22_4x spare1_oai22_4x (.in00(1'b1),
.out(spare1_oai22_4x_unused));
cl_u1_inv_16x spare1_inv_16x (.in(1'b1),
.out(spare1_inv_16x_unused));
cl_u1_nand2_16x spare1_nand2_16x (.in0(1'b1),
.out(spare1_nand2_16x_unused));
cl_u1_nor3_4x spare1_nor3_4x (.in0(1'b0),
.out(spare1_nor3_4x_unused));
cl_u1_nand2_8x spare1_nand2_8x (.in0(1'b1),
.out(spare1_nand2_8x_unused));
cl_u1_buf_16x spare1_buf_16x (.in(1'b1),
.out(spare1_buf_16x_unused));
cl_u1_nor2_16x spare1_nor2_16x (.in0(1'b0),
.out(spare1_nor2_16x_unused));
cl_u1_inv_32x spare1_inv_32x (.in(1'b1),
.out(spare1_inv_32x_unused));
cl_sc1_msff_8x spare2_flop (.l1clk(l1clk),
cl_u1_buf_32x spare2_buf_32x (.in(1'b1),
.out(spare2_buf_32x_unused));
cl_u1_nand3_8x spare2_nand3_8x (.in0(1'b1),
.out(spare2_nand3_8x_unused));
cl_u1_inv_8x spare2_inv_8x (.in(1'b1),
.out(spare2_inv_8x_unused));
cl_u1_aoi22_4x spare2_aoi22_4x (.in00(1'b1),
.out(spare2_aoi22_4x_unused));
cl_u1_buf_8x spare2_buf_8x (.in(1'b1),
.out(spare2_buf_8x_unused));
cl_u1_oai22_4x spare2_oai22_4x (.in00(1'b1),
.out(spare2_oai22_4x_unused));
cl_u1_inv_16x spare2_inv_16x (.in(1'b1),
.out(spare2_inv_16x_unused));
cl_u1_nand2_16x spare2_nand2_16x (.in0(1'b1),
.out(spare2_nand2_16x_unused));
cl_u1_nor3_4x spare2_nor3_4x (.in0(1'b0),
.out(spare2_nor3_4x_unused));
cl_u1_nand2_8x spare2_nand2_8x (.in0(1'b1),
.out(spare2_nand2_8x_unused));
cl_u1_buf_16x spare2_buf_16x (.in(1'b1),
.out(spare2_buf_16x_unused));
cl_u1_nor2_16x spare2_nor2_16x (.in0(1'b0),
.out(spare2_nor2_16x_unused));
cl_u1_inv_32x spare2_inv_32x (.in(1'b1),
.out(spare2_inv_32x_unused));
cl_sc1_msff_8x spare3_flop (.l1clk(l1clk),
cl_u1_buf_32x spare3_buf_32x (.in(1'b1),
.out(spare3_buf_32x_unused));
cl_u1_nand3_8x spare3_nand3_8x (.in0(1'b1),
.out(spare3_nand3_8x_unused));
cl_u1_inv_8x spare3_inv_8x (.in(1'b1),
.out(spare3_inv_8x_unused));
cl_u1_aoi22_4x spare3_aoi22_4x (.in00(1'b1),
.out(spare3_aoi22_4x_unused));
cl_u1_buf_8x spare3_buf_8x (.in(1'b1),
.out(spare3_buf_8x_unused));
cl_u1_oai22_4x spare3_oai22_4x (.in00(1'b1),
.out(spare3_oai22_4x_unused));
cl_u1_inv_16x spare3_inv_16x (.in(1'b1),
.out(spare3_inv_16x_unused));
cl_u1_nand2_16x spare3_nand2_16x (.in0(1'b1),
.out(spare3_nand2_16x_unused));
cl_u1_nor3_4x spare3_nor3_4x (.in0(1'b0),
.out(spare3_nor3_4x_unused));
cl_u1_nand2_8x spare3_nand2_8x (.in0(1'b1),
.out(spare3_nand2_8x_unused));
cl_u1_buf_16x spare3_buf_16x (.in(1'b1),
.out(spare3_buf_16x_unused));
cl_u1_nor2_16x spare3_nor2_16x (.in0(1'b0),
.out(spare3_nor2_16x_unused));
cl_u1_inv_32x spare3_inv_32x (.in(1'b1),
.out(spare3_inv_32x_unused));
cl_sc1_msff_8x spare4_flop (.l1clk(l1clk),
cl_u1_buf_32x spare4_buf_32x (.in(1'b1),
.out(spare4_buf_32x_unused));
cl_u1_nand3_8x spare4_nand3_8x (.in0(1'b1),
.out(spare4_nand3_8x_unused));
cl_u1_inv_8x spare4_inv_8x (.in(1'b1),
.out(spare4_inv_8x_unused));
cl_u1_aoi22_4x spare4_aoi22_4x (.in00(1'b1),
.out(spare4_aoi22_4x_unused));
cl_u1_buf_8x spare4_buf_8x (.in(1'b1),
.out(spare4_buf_8x_unused));
cl_u1_oai22_4x spare4_oai22_4x (.in00(1'b1),
.out(spare4_oai22_4x_unused));
cl_u1_inv_16x spare4_inv_16x (.in(1'b1),
.out(spare4_inv_16x_unused));
cl_u1_nand2_16x spare4_nand2_16x (.in0(1'b1),
.out(spare4_nand2_16x_unused));
cl_u1_nor3_4x spare4_nor3_4x (.in0(1'b0),
.out(spare4_nor3_4x_unused));
cl_u1_nand2_8x spare4_nand2_8x (.in0(1'b1),
.out(spare4_nand2_8x_unused));
cl_u1_buf_16x spare4_buf_16x (.in(1'b1),
.out(spare4_buf_16x_unused));
cl_u1_nor2_16x spare4_nor2_16x (.in0(1'b0),
.out(spare4_nor2_16x_unused));
cl_u1_inv_32x spare4_inv_32x (.in(1'b1),
.out(spare4_inv_32x_unused));
cl_sc1_msff_8x spare5_flop (.l1clk(l1clk),
cl_u1_buf_32x spare5_buf_32x (.in(1'b1),
.out(spare5_buf_32x_unused));
cl_u1_nand3_8x spare5_nand3_8x (.in0(1'b1),
.out(spare5_nand3_8x_unused));
cl_u1_inv_8x spare5_inv_8x (.in(1'b1),
.out(spare5_inv_8x_unused));
cl_u1_aoi22_4x spare5_aoi22_4x (.in00(1'b1),
.out(spare5_aoi22_4x_unused));
cl_u1_buf_8x spare5_buf_8x (.in(1'b1),
.out(spare5_buf_8x_unused));
cl_u1_oai22_4x spare5_oai22_4x (.in00(1'b1),
.out(spare5_oai22_4x_unused));
cl_u1_inv_16x spare5_inv_16x (.in(1'b1),
.out(spare5_inv_16x_unused));
cl_u1_nand2_16x spare5_nand2_16x (.in0(1'b1),
.out(spare5_nand2_16x_unused));
cl_u1_nor3_4x spare5_nor3_4x (.in0(1'b0),
.out(spare5_nor3_4x_unused));
cl_u1_nand2_8x spare5_nand2_8x (.in0(1'b1),
.out(spare5_nand2_8x_unused));
cl_u1_buf_16x spare5_buf_16x (.in(1'b1),
.out(spare5_buf_16x_unused));
cl_u1_nor2_16x spare5_nor2_16x (.in0(1'b0),
.out(spare5_nor2_16x_unused));
cl_u1_inv_32x spare5_inv_32x (.in(1'b1),
.out(spare5_inv_32x_unused));
cl_sc1_msff_8x spare6_flop (.l1clk(l1clk),
cl_u1_buf_32x spare6_buf_32x (.in(1'b1),
.out(spare6_buf_32x_unused));
cl_u1_nand3_8x spare6_nand3_8x (.in0(1'b1),
.out(spare6_nand3_8x_unused));
cl_u1_inv_8x spare6_inv_8x (.in(1'b1),
.out(spare6_inv_8x_unused));
cl_u1_aoi22_4x spare6_aoi22_4x (.in00(1'b1),
.out(spare6_aoi22_4x_unused));
cl_u1_buf_8x spare6_buf_8x (.in(1'b1),
.out(spare6_buf_8x_unused));
cl_u1_oai22_4x spare6_oai22_4x (.in00(1'b1),
.out(spare6_oai22_4x_unused));
cl_u1_inv_16x spare6_inv_16x (.in(1'b1),
.out(spare6_inv_16x_unused));
cl_u1_nand2_16x spare6_nand2_16x (.in0(1'b1),
.out(spare6_nand2_16x_unused));
cl_u1_nor3_4x spare6_nor3_4x (.in0(1'b0),
.out(spare6_nor3_4x_unused));
cl_u1_nand2_8x spare6_nand2_8x (.in0(1'b1),
.out(spare6_nand2_8x_unused));
cl_u1_buf_16x spare6_buf_16x (.in(1'b1),
.out(spare6_buf_16x_unused));
cl_u1_nor2_16x spare6_nor2_16x (.in0(1'b0),
.out(spare6_nor2_16x_unused));
cl_u1_inv_32x spare6_inv_32x (.in(1'b1),
.out(spare6_inv_32x_unused));
cl_sc1_msff_8x spare7_flop (.l1clk(l1clk),
cl_u1_buf_32x spare7_buf_32x (.in(1'b1),
.out(spare7_buf_32x_unused));
cl_u1_nand3_8x spare7_nand3_8x (.in0(1'b1),
.out(spare7_nand3_8x_unused));
cl_u1_inv_8x spare7_inv_8x (.in(1'b1),
.out(spare7_inv_8x_unused));
cl_u1_aoi22_4x spare7_aoi22_4x (.in00(1'b1),
.out(spare7_aoi22_4x_unused));
cl_u1_buf_8x spare7_buf_8x (.in(1'b1),
.out(spare7_buf_8x_unused));
cl_u1_oai22_4x spare7_oai22_4x (.in00(1'b1),
.out(spare7_oai22_4x_unused));
cl_u1_inv_16x spare7_inv_16x (.in(1'b1),
.out(spare7_inv_16x_unused));
cl_u1_nand2_16x spare7_nand2_16x (.in0(1'b1),
.out(spare7_nand2_16x_unused));
cl_u1_nor3_4x spare7_nor3_4x (.in0(1'b0),
.out(spare7_nor3_4x_unused));
cl_u1_nand2_8x spare7_nand2_8x (.in0(1'b1),
.out(spare7_nand2_8x_unused));
cl_u1_buf_16x spare7_buf_16x (.in(1'b1),
.out(spare7_buf_16x_unused));
cl_u1_nor2_16x spare7_nor2_16x (.in0(1'b0),
.out(spare7_nor2_16x_unused));
cl_u1_inv_32x spare7_inv_32x (.in(1'b1),
.out(spare7_inv_32x_unused));
cl_sc1_msff_8x spare8_flop (.l1clk(l1clk),
cl_u1_buf_32x spare8_buf_32x (.in(1'b1),
.out(spare8_buf_32x_unused));
cl_u1_nand3_8x spare8_nand3_8x (.in0(1'b1),
.out(spare8_nand3_8x_unused));
cl_u1_inv_8x spare8_inv_8x (.in(1'b1),
.out(spare8_inv_8x_unused));
cl_u1_aoi22_4x spare8_aoi22_4x (.in00(1'b1),
.out(spare8_aoi22_4x_unused));
cl_u1_buf_8x spare8_buf_8x (.in(1'b1),
.out(spare8_buf_8x_unused));
cl_u1_oai22_4x spare8_oai22_4x (.in00(1'b1),
.out(spare8_oai22_4x_unused));
cl_u1_inv_16x spare8_inv_16x (.in(1'b1),
.out(spare8_inv_16x_unused));
cl_u1_nand2_16x spare8_nand2_16x (.in0(1'b1),
.out(spare8_nand2_16x_unused));
cl_u1_nor3_4x spare8_nor3_4x (.in0(1'b0),
.out(spare8_nor3_4x_unused));
cl_u1_nand2_8x spare8_nand2_8x (.in0(1'b1),
.out(spare8_nand2_8x_unused));
cl_u1_buf_16x spare8_buf_16x (.in(1'b1),
.out(spare8_buf_16x_unused));
cl_u1_nor2_16x spare8_nor2_16x (.in0(1'b0),
.out(spare8_nor2_16x_unused));
cl_u1_inv_32x spare8_inv_32x (.in(1'b1),
.out(spare8_inv_32x_unused));
cl_sc1_msff_8x spare9_flop (.l1clk(l1clk),
cl_u1_buf_32x spare9_buf_32x (.in(1'b1),
.out(spare9_buf_32x_unused));
cl_u1_nand3_8x spare9_nand3_8x (.in0(1'b1),
.out(spare9_nand3_8x_unused));
cl_u1_inv_8x spare9_inv_8x (.in(1'b1),
.out(spare9_inv_8x_unused));
cl_u1_aoi22_4x spare9_aoi22_4x (.in00(1'b1),
.out(spare9_aoi22_4x_unused));
cl_u1_buf_8x spare9_buf_8x (.in(1'b1),
.out(spare9_buf_8x_unused));
cl_u1_oai22_4x spare9_oai22_4x (.in00(1'b1),
.out(spare9_oai22_4x_unused));
cl_u1_inv_16x spare9_inv_16x (.in(1'b1),
.out(spare9_inv_16x_unused));
cl_u1_nand2_16x spare9_nand2_16x (.in0(1'b1),
.out(spare9_nand2_16x_unused));
cl_u1_nor3_4x spare9_nor3_4x (.in0(1'b0),
.out(spare9_nor3_4x_unused));
cl_u1_nand2_8x spare9_nand2_8x (.in0(1'b1),
.out(spare9_nand2_8x_unused));
cl_u1_buf_16x spare9_buf_16x (.in(1'b1),
.out(spare9_buf_16x_unused));
cl_u1_nor2_16x spare9_nor2_16x (.in0(1'b0),
.out(spare9_nor2_16x_unused));
cl_u1_inv_32x spare9_inv_32x (.in(1'b1),
.out(spare9_inv_32x_unused));
cl_sc1_msff_8x spare10_flop (.l1clk(l1clk),
.q(spare10_flop_unused));
cl_u1_buf_32x spare10_buf_32x (.in(1'b1),
.out(spare10_buf_32x_unused));
cl_u1_nand3_8x spare10_nand3_8x (.in0(1'b1),
.out(spare10_nand3_8x_unused));
cl_u1_inv_8x spare10_inv_8x (.in(1'b1),
.out(spare10_inv_8x_unused));
cl_u1_aoi22_4x spare10_aoi22_4x (.in00(1'b1),
.out(spare10_aoi22_4x_unused));
cl_u1_buf_8x spare10_buf_8x (.in(1'b1),
.out(spare10_buf_8x_unused));
cl_u1_oai22_4x spare10_oai22_4x (.in00(1'b1),
.out(spare10_oai22_4x_unused));
cl_u1_inv_16x spare10_inv_16x (.in(1'b1),
.out(spare10_inv_16x_unused));
cl_u1_nand2_16x spare10_nand2_16x (.in0(1'b1),
.out(spare10_nand2_16x_unused));
cl_u1_nor3_4x spare10_nor3_4x (.in0(1'b0),
.out(spare10_nor3_4x_unused));
cl_u1_nand2_8x spare10_nand2_8x (.in0(1'b1),
.out(spare10_nand2_8x_unused));
cl_u1_buf_16x spare10_buf_16x (.in(1'b1),
.out(spare10_buf_16x_unused));
cl_u1_nor2_16x spare10_nor2_16x (.in0(1'b0),
.out(spare10_nor2_16x_unused));
cl_u1_inv_32x spare10_inv_32x (.in(1'b1),
.out(spare10_inv_32x_unused));
cl_sc1_msff_8x spare11_flop (.l1clk(l1clk),
.q(spare11_flop_unused));
cl_u1_buf_32x spare11_buf_32x (.in(1'b1),
.out(spare11_buf_32x_unused));
cl_u1_nand3_8x spare11_nand3_8x (.in0(1'b1),
.out(spare11_nand3_8x_unused));
cl_u1_inv_8x spare11_inv_8x (.in(1'b1),
.out(spare11_inv_8x_unused));
cl_u1_aoi22_4x spare11_aoi22_4x (.in00(1'b1),
.out(spare11_aoi22_4x_unused));
cl_u1_buf_8x spare11_buf_8x (.in(1'b1),
.out(spare11_buf_8x_unused));
cl_u1_oai22_4x spare11_oai22_4x (.in00(1'b1),
.out(spare11_oai22_4x_unused));
cl_u1_inv_16x spare11_inv_16x (.in(1'b1),
.out(spare11_inv_16x_unused));
cl_u1_nand2_16x spare11_nand2_16x (.in0(1'b1),
.out(spare11_nand2_16x_unused));
cl_u1_nor3_4x spare11_nor3_4x (.in0(1'b0),
.out(spare11_nor3_4x_unused));
cl_u1_nand2_8x spare11_nand2_8x (.in0(1'b1),
.out(spare11_nand2_8x_unused));
cl_u1_buf_16x spare11_buf_16x (.in(1'b1),
.out(spare11_buf_16x_unused));
cl_u1_nor2_16x spare11_nor2_16x (.in0(1'b0),
.out(spare11_nor2_16x_unused));
cl_u1_inv_32x spare11_inv_32x (.in(1'b1),
.out(spare11_inv_32x_unused));
cl_sc1_msff_8x spare12_flop (.l1clk(l1clk),
.q(spare12_flop_unused));
cl_u1_buf_32x spare12_buf_32x (.in(1'b1),
.out(spare12_buf_32x_unused));
cl_u1_nand3_8x spare12_nand3_8x (.in0(1'b1),
.out(spare12_nand3_8x_unused));
cl_u1_inv_8x spare12_inv_8x (.in(1'b1),
.out(spare12_inv_8x_unused));
cl_u1_aoi22_4x spare12_aoi22_4x (.in00(1'b1),
.out(spare12_aoi22_4x_unused));
cl_u1_buf_8x spare12_buf_8x (.in(1'b1),
.out(spare12_buf_8x_unused));
cl_u1_oai22_4x spare12_oai22_4x (.in00(1'b1),
.out(spare12_oai22_4x_unused));
cl_u1_inv_16x spare12_inv_16x (.in(1'b1),
.out(spare12_inv_16x_unused));
cl_u1_nand2_16x spare12_nand2_16x (.in0(1'b1),
.out(spare12_nand2_16x_unused));
cl_u1_nor3_4x spare12_nor3_4x (.in0(1'b0),
.out(spare12_nor3_4x_unused));
cl_u1_nand2_8x spare12_nand2_8x (.in0(1'b1),
.out(spare12_nand2_8x_unused));
cl_u1_buf_16x spare12_buf_16x (.in(1'b1),
.out(spare12_buf_16x_unused));
cl_u1_nor2_16x spare12_nor2_16x (.in0(1'b0),
.out(spare12_nor2_16x_unused));
cl_u1_inv_32x spare12_inv_32x (.in(1'b1),
.out(spare12_inv_32x_unused));
cl_sc1_msff_8x spare13_flop (.l1clk(l1clk),
.q(spare13_flop_unused));
cl_u1_buf_32x spare13_buf_32x (.in(1'b1),
.out(spare13_buf_32x_unused));
cl_u1_nand3_8x spare13_nand3_8x (.in0(1'b1),
.out(spare13_nand3_8x_unused));
cl_u1_inv_8x spare13_inv_8x (.in(1'b1),
.out(spare13_inv_8x_unused));
cl_u1_aoi22_4x spare13_aoi22_4x (.in00(1'b1),
.out(spare13_aoi22_4x_unused));
cl_u1_buf_8x spare13_buf_8x (.in(1'b1),
.out(spare13_buf_8x_unused));
cl_u1_oai22_4x spare13_oai22_4x (.in00(1'b1),
.out(spare13_oai22_4x_unused));
cl_u1_inv_16x spare13_inv_16x (.in(1'b1),
.out(spare13_inv_16x_unused));
cl_u1_nand2_16x spare13_nand2_16x (.in0(1'b1),
.out(spare13_nand2_16x_unused));
cl_u1_nor3_4x spare13_nor3_4x (.in0(1'b0),
.out(spare13_nor3_4x_unused));
cl_u1_nand2_8x spare13_nand2_8x (.in0(1'b1),
.out(spare13_nand2_8x_unused));
cl_u1_buf_16x spare13_buf_16x (.in(1'b1),
.out(spare13_buf_16x_unused));
cl_u1_nor2_16x spare13_nor2_16x (.in0(1'b0),
.out(spare13_nor2_16x_unused));
cl_u1_inv_32x spare13_inv_32x (.in(1'b1),
.out(spare13_inv_32x_unused));
cl_sc1_msff_8x spare14_flop (.l1clk(l1clk),
.q(spare14_flop_unused));
cl_u1_buf_32x spare14_buf_32x (.in(1'b1),
.out(spare14_buf_32x_unused));
cl_u1_nand3_8x spare14_nand3_8x (.in0(1'b1),
.out(spare14_nand3_8x_unused));
cl_u1_inv_8x spare14_inv_8x (.in(1'b1),
.out(spare14_inv_8x_unused));
cl_u1_aoi22_4x spare14_aoi22_4x (.in00(1'b1),
.out(spare14_aoi22_4x_unused));
cl_u1_buf_8x spare14_buf_8x (.in(1'b1),
.out(spare14_buf_8x_unused));
cl_u1_oai22_4x spare14_oai22_4x (.in00(1'b1),
.out(spare14_oai22_4x_unused));
cl_u1_inv_16x spare14_inv_16x (.in(1'b1),
.out(spare14_inv_16x_unused));
cl_u1_nand2_16x spare14_nand2_16x (.in0(1'b1),
.out(spare14_nand2_16x_unused));
cl_u1_nor3_4x spare14_nor3_4x (.in0(1'b0),
.out(spare14_nor3_4x_unused));
cl_u1_nand2_8x spare14_nand2_8x (.in0(1'b1),
.out(spare14_nand2_8x_unused));
cl_u1_buf_16x spare14_buf_16x (.in(1'b1),
.out(spare14_buf_16x_unused));
cl_u1_nor2_16x spare14_nor2_16x (.in0(1'b0),
.out(spare14_nor2_16x_unused));
cl_u1_inv_32x spare14_inv_32x (.in(1'b1),
.out(spare14_inv_32x_unused));
cl_sc1_msff_8x spare15_flop (.l1clk(l1clk),
.q(spare15_flop_unused));
cl_u1_buf_32x spare15_buf_32x (.in(1'b1),
.out(spare15_buf_32x_unused));
cl_u1_nand3_8x spare15_nand3_8x (.in0(1'b1),
.out(spare15_nand3_8x_unused));
cl_u1_inv_8x spare15_inv_8x (.in(1'b1),
.out(spare15_inv_8x_unused));
cl_u1_aoi22_4x spare15_aoi22_4x (.in00(1'b1),
.out(spare15_aoi22_4x_unused));
cl_u1_buf_8x spare15_buf_8x (.in(1'b1),
.out(spare15_buf_8x_unused));
cl_u1_oai22_4x spare15_oai22_4x (.in00(1'b1),
.out(spare15_oai22_4x_unused));
cl_u1_inv_16x spare15_inv_16x (.in(1'b1),
.out(spare15_inv_16x_unused));
cl_u1_nand2_16x spare15_nand2_16x (.in0(1'b1),
.out(spare15_nand2_16x_unused));
cl_u1_nor3_4x spare15_nor3_4x (.in0(1'b0),
.out(spare15_nor3_4x_unused));
cl_u1_nand2_8x spare15_nand2_8x (.in0(1'b1),
.out(spare15_nand2_8x_unused));
cl_u1_buf_16x spare15_buf_16x (.in(1'b1),
.out(spare15_buf_16x_unused));
cl_u1_nor2_16x spare15_nor2_16x (.in0(1'b0),
.out(spare15_nor2_16x_unused));
cl_u1_inv_32x spare15_inv_32x (.in(1'b1),
.out(spare15_inv_32x_unused));