You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

6952 lines
372 KiB
VHDL

-- © IBM Corp. 2020
-- Licensed under the Apache License, Version 2.0 (the "License"), as modified by
-- the terms below; you may not use the files in this repository except in
-- compliance with the License as modified.
-- You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
--
-- Modified Terms:
--
-- 1) For the purpose of the patent license granted to you in Section 3 of the
-- License, the "Work" hereby includes implementations of the work of authorship
-- in physical form.
--
-- 2) Notwithstanding any terms to the contrary in the License, any licenses
-- necessary for implementation of the Work that are available from OpenPOWER
-- via the Power ISA End User License Agreement (EULA) are explicitly excluded
-- hereunder, and may be obtained from OpenPOWER under the terms and conditions
-- of the EULA.
--
-- Unless required by applicable law or agreed to in writing, the reference design
-- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
-- for the specific language governing permissions and limitations under the License.
--
-- Additional rights, including the ability to physically implement a softcore that
-- is compliant with the required sections of the Power ISA Specification, are
-- available at no cost under the terms of the OpenPOWER Power ISA EULA, which can be
-- obtained (along with the Power ISA) here: https://openpowerfoundation.org.
--********************************************************************
--* TITLE: Instruction Effective to Real Address Translation
--* NAME: iuq_ic_ierat.vhdl
--*********************************************************************
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
library ibm;
use ibm.std_ulogic_unsigned.all;
use ibm.std_ulogic_function_support.all;
use ibm.std_ulogic_support.all;
library support;
use support.power_logic_pkg.all;
library tri;
use tri.tri_latches_pkg.all;
entity iuq_ic_ierat is
generic(thdid_width : integer := 4;
ttype_width : integer := 6;
state_width : integer := 4;
pid_width : integer := 14;
pid_width_erat : integer := 8;
extclass_width : integer := 2;
tlbsel_width : integer := 2;
epn_width : integer := 52;
vpn_width : integer := 61;
rpn_width : integer := 30;
ws_width : integer := 2;
rs_is_width : integer := 9;
ra_entry_width : integer := 4;
rs_data_width : integer := 64;
data_out_width : integer := 64;
error_width : integer := 3;
cam_data_width : natural := 84;
array_data_width : natural := 68;
num_entry : natural := 16;
num_entry_log2 : natural := 4;
por_seq_width : integer := 3;
watermark_width : integer := 4;
eptr_width : integer := 4;
lru_width : integer := 15;
bcfg_width : integer := 123;
bcfg_epn_0to15 : integer := 0;
bcfg_epn_16to31 : integer := 0;
bcfg_epn_32to47 : integer := (2**16)-1;
bcfg_epn_48to51 : integer := (2**4)-1;
bcfg_rpn_22to31 : integer := (2**10)-1;
bcfg_rpn_32to47 : integer := (2**16)-1;
bcfg_rpn_48to51 : integer := (2**4)-1;
bcfg_rpn2_32to47 : integer := 0;
bcfg_rpn2_48to51 : integer := 0;
bcfg_attr : integer := 0;
check_parity : integer := 1;
expand_type : integer := 2 );
port(
gnd : inout power_logic;
vdd : inout power_logic;
vcs : inout power_logic;
nclk : in clk_logic;
pc_iu_init_reset : in std_ulogic;
tc_ccflush_dc : in std_ulogic;
tc_scan_dis_dc_b : in std_ulogic;
tc_scan_diag_dc : in std_ulogic;
tc_lbist_en_dc : in std_ulogic;
an_ac_atpg_en_dc : in std_ulogic;
an_ac_grffence_en_dc : in std_ulogic;
lcb_d_mode_dc : in std_ulogic;
lcb_clkoff_dc_b : in std_ulogic;
lcb_act_dis_dc : in std_ulogic;
lcb_mpw1_dc_b : in std_ulogic_vector(0 to 1);
lcb_mpw2_dc_b : in std_ulogic;
lcb_delay_lclkr_dc : in std_ulogic_vector(0 to 1);
pc_iu_func_sl_thold_2 : in std_ulogic;
pc_iu_func_slp_sl_thold_2 : in std_ulogic;
pc_iu_func_slp_nsl_thold_2 : in std_ulogic;
pc_iu_cfg_slp_sl_thold_2 : in std_ulogic;
pc_iu_regf_slp_sl_thold_2 : in std_ulogic;
pc_iu_time_sl_thold_2 : in std_ulogic;
pc_iu_sg_2 : in std_ulogic;
pc_iu_fce_2 : in std_ulogic;
cam_clkoff_b : in std_ulogic;
cam_act_dis : in std_ulogic;
cam_d_mode : in std_ulogic;
cam_delay_lclkr : in std_ulogic_vector(0 to 4);
cam_mpw1_b : in std_ulogic_vector(0 to 4);
cam_mpw2_b : in std_ulogic;
ac_func_scan_in : in std_ulogic_vector(0 to 1);
ac_func_scan_out : out std_ulogic_vector(0 to 1);
ac_ccfg_scan_in : in std_ulogic;
ac_ccfg_scan_out : out std_ulogic;
func_scan_in_cam : in std_ulogic;
func_scan_out_cam : out std_ulogic;
time_scan_in : in std_ulogic;
time_scan_out : out std_ulogic;
regf_scan_in : in std_ulogic_vector(0 to 4);
regf_scan_out : out std_ulogic_vector(0 to 4);
iu_ierat_iu0_val : in std_ulogic;
iu_ierat_iu0_thdid : in std_ulogic_vector(0 to thdid_width-1);
iu_ierat_iu0_ifar : in std_ulogic_vector(0 to 51);
iu_ierat_iu0_flush : in std_ulogic_vector(0 to thdid_width-1);
iu_ierat_iu1_flush : in std_ulogic_vector(0 to thdid_width-1);
iu_ierat_iu1_back_inv : in std_ulogic;
iu_ierat_ium1_back_inv : in std_ulogic;
spr_ic_clockgate_dis : in std_ulogic;
ierat_iu_iu2_rpn : out std_ulogic_vector(22 to 51);
ierat_iu_iu2_wimge : out std_ulogic_vector(0 to 4);
ierat_iu_iu2_u : out std_ulogic_vector(0 to 3);
ierat_iu_iu2_error : out std_ulogic_vector(0 to 2);
ierat_iu_iu2_miss : out std_ulogic;
ierat_iu_iu2_multihit : out std_ulogic;
ierat_iu_iu2_isi : out std_ulogic;
xu_iu_rf1_val : in std_ulogic_vector(0 to thdid_width-1);
xu_iu_rf1_is_eratre : in std_ulogic;
xu_iu_rf1_is_eratwe : in std_ulogic;
xu_iu_rf1_is_eratsx : in std_ulogic;
xu_iu_rf1_is_eratilx : in std_ulogic;
xu_iu_ex1_is_isync : in std_ulogic;
xu_iu_ex1_is_csync : in std_ulogic;
xu_iu_rf1_ws : in std_ulogic_vector(0 to ws_width-1);
xu_iu_rf1_t : in std_ulogic_vector(0 to 2);
xu_iu_ex1_rs_is : in std_ulogic_vector(0 to rs_is_width-1);
xu_iu_ex1_ra_entry : in std_ulogic_vector(0 to ra_entry_width-1);
xu_iu_ex1_rb : in std_ulogic_vector(64-rs_data_width to 51);
xu_iu_flush : in std_ulogic_vector(0 to thdid_width-1);
xu_rf1_flush : in std_ulogic_vector(0 to thdid_width-1);
xu_ex1_flush : in std_ulogic_vector(0 to thdid_width-1);
xu_ex2_flush : in std_ulogic_vector(0 to thdid_width-1);
xu_ex3_flush : in std_ulogic_vector(0 to thdid_width-1);
xu_ex4_flush : in std_ulogic_vector(0 to thdid_width-1);
xu_ex5_flush : in std_ulogic_vector(0 to thdid_width-1);
xu_iu_ex4_rs_data : in std_ulogic_vector(64-rs_data_width to 63);
xu_iu_msr_hv : in std_ulogic_vector(0 to thdid_width-1);
xu_iu_msr_pr : in std_ulogic_vector(0 to thdid_width-1);
xu_iu_msr_is : in std_ulogic_vector(0 to thdid_width-1);
xu_iu_msr_cm : in std_ulogic_vector(0 to thdid_width-1);
xu_iu_hid_mmu_mode : in std_ulogic;
xu_iu_spr_ccr2_ifrat : in std_ulogic;
xu_iu_spr_ccr2_ifratsc : in std_ulogic_vector(0 to 8);
xu_iu_xucr4_mmu_mchk : in std_ulogic;
ierat_iu_hold_req : out std_ulogic_vector(0 to thdid_width-1);
ierat_iu_iu2_flush_req : out std_ulogic_vector(0 to thdid_width-1);
iu_xu_ex4_data : out std_ulogic_vector(64-data_out_width to 63);
iu_xu_ierat_ex3_par_err : out std_ulogic_vector(0 to thdid_width-1);
iu_xu_ierat_ex4_par_err : out std_ulogic_vector(0 to thdid_width-1);
iu_xu_ierat_ex2_flush_req : out std_ulogic_vector(0 to thdid_width-1);
iu_mm_ierat_req : out std_ulogic;
iu_mm_ierat_thdid : out std_ulogic_vector(0 to thdid_width-1);
iu_mm_ierat_state : out std_ulogic_vector(0 to state_width-1);
iu_mm_ierat_tid : out std_ulogic_vector(0 to pid_width-1);
iu_mm_ierat_flush : out std_ulogic_vector(0 to thdid_width-1);
mm_iu_ierat_rel_val : in std_ulogic_vector(0 to 4);
mm_iu_ierat_rel_data : in std_ulogic_vector(0 to 131);
mm_iu_ierat_pid0 : in std_ulogic_vector(0 to pid_width-1);
mm_iu_ierat_pid1 : in std_ulogic_vector(0 to pid_width-1);
mm_iu_ierat_pid2 : in std_ulogic_vector(0 to pid_width-1);
mm_iu_ierat_pid3 : in std_ulogic_vector(0 to pid_width-1);
mm_iu_ierat_mmucr0_0 : in std_ulogic_vector(0 to 19);
mm_iu_ierat_mmucr0_1 : in std_ulogic_vector(0 to 19);
mm_iu_ierat_mmucr0_2 : in std_ulogic_vector(0 to 19);
mm_iu_ierat_mmucr0_3 : in std_ulogic_vector(0 to 19);
iu_mm_ierat_mmucr0 : out std_ulogic_vector(0 to 17);
iu_mm_ierat_mmucr0_we : out std_ulogic_vector(0 to 3);
mm_iu_ierat_mmucr1 : in std_ulogic_vector(0 to 8);
iu_mm_ierat_mmucr1 : out std_ulogic_vector(0 to 3);
iu_mm_ierat_mmucr1_we : out std_ulogic;
mm_iu_ierat_snoop_coming : in std_ulogic;
mm_iu_ierat_snoop_val : in std_ulogic;
mm_iu_ierat_snoop_attr : in std_ulogic_vector(0 to 25);
mm_iu_ierat_snoop_vpn : in std_ulogic_vector(52-epn_width to 51);
iu_mm_ierat_snoop_ack : out std_ulogic;
pc_iu_trace_bus_enable : in std_ulogic;
ierat_iu_debug_group0 : out std_ulogic_vector(0 to 87);
ierat_iu_debug_group1 : out std_ulogic_vector(0 to 87);
ierat_iu_debug_group2 : out std_ulogic_vector(0 to 87);
ierat_iu_debug_group3 : out std_ulogic_vector(0 to 87)
);
end iuq_ic_ierat;
ARCHITECTURE IUQ_IC_IERAT
OF IUQ_IC_IERAT
IS
--@@ Signal Declarations
SIGNAL CAM_MASK_BITS_PT : STD_ULOGIC_VECTOR(1 TO 19) :=
(OTHERS=> 'U');
SIGNAL IU1_FIRST_HIT_ENTRY_PT : STD_ULOGIC_VECTOR(1 TO 15) :=
(OTHERS=> 'U');
SIGNAL IU1_MULTIHIT_B_PT : STD_ULOGIC_VECTOR(1 TO 16) :=
(OTHERS=> 'U');
SIGNAL LRU_RMT_VEC_PT : STD_ULOGIC_VECTOR(1 TO 17) :=
(OTHERS=> 'U');
SIGNAL LRU_SET_RESET_VEC_PT : STD_ULOGIC_VECTOR(1 TO 80) :=
(OTHERS=> 'U');
SIGNAL LRU_WATERMARK_MASK_PT : STD_ULOGIC_VECTOR(1 TO 15) :=
(OTHERS=> 'U');
SIGNAL LRU_WAY_ENCODE_PT : STD_ULOGIC_VECTOR(1 TO 15) :=
(OTHERS=> 'U');
----------------------------
-- components
----------------------------
-- Instruction ERAT CAM/Array, 16-entry
component tri_cam_16x143_1r1w1c
generic (expand_type : integer := 2);
port (
gnd : inout power_logic;
vdd : inout power_logic;
vcs : inout power_logic;
nclk : in clk_logic;
tc_ccflush_dc : in std_ulogic;
tc_scan_dis_dc_b : in std_ulogic;
tc_scan_diag_dc : in std_ulogic;
tc_lbist_en_dc : in std_ulogic;
an_ac_atpg_en_dc : in std_ulogic;
lcb_d_mode_dc : in std_ulogic;
lcb_clkoff_dc_b : in std_ulogic;
lcb_act_dis_dc : in std_ulogic;
lcb_mpw1_dc_b : in std_ulogic_vector(0 to 3);
lcb_mpw2_dc_b : in std_ulogic;
lcb_delay_lclkr_dc : in std_ulogic_vector(0 to 3);
pc_sg_2 : in std_ulogic;
pc_func_slp_sl_thold_2 : in std_ulogic;
pc_func_slp_nsl_thold_2 : in std_ulogic;
pc_regf_slp_sl_thold_2 : in std_ulogic;
pc_time_sl_thold_2 : in std_ulogic;
pc_fce_2 : in std_ulogic;
func_scan_in : in std_ulogic;
func_scan_out : out std_ulogic;
regfile_scan_in : in std_ulogic_vector(0 to 4);
regfile_scan_out : out std_ulogic_vector(0 to 4);
time_scan_in : in std_ulogic;
time_scan_out : out std_ulogic;
rd_val : in std_ulogic;
rd_val_late : in std_ulogic;
rw_entry : in std_ulogic_vector(0 to 3);
wr_array_data : in std_ulogic_vector(0 to array_data_width-1);
wr_cam_data : in std_ulogic_vector(0 to cam_data_width-1);
wr_array_val : in std_ulogic_vector(0 to 1);
wr_cam_val : in std_ulogic_vector(0 to 1);
wr_val_early : in std_ulogic;
comp_request : in std_ulogic;
comp_addr : in std_ulogic_vector(0 to 51);
addr_enable : in std_ulogic_vector(0 to 1);
comp_pgsize : in std_ulogic_vector(0 to 2);
pgsize_enable : in std_ulogic;
comp_class : in std_ulogic_vector(0 to 1);
class_enable : in std_ulogic_vector(0 to 2);
comp_extclass : in std_ulogic_vector(0 to 1);
extclass_enable : in std_ulogic_vector(0 to 1);
comp_state : in std_ulogic_vector(0 to 1);
state_enable : in std_ulogic_vector(0 to 1);
comp_thdid : in std_ulogic_vector(0 to 3);
thdid_enable : in std_ulogic_vector(0 to 1);
comp_pid : in std_ulogic_vector(0 to 7);
pid_enable : in std_ulogic;
comp_invalidate : in std_ulogic;
flash_invalidate : in std_ulogic;
array_cmp_data : out std_ulogic_vector(0 to array_data_width-1);
rd_array_data : out std_ulogic_vector(0 to array_data_width-1);
cam_cmp_data : out std_ulogic_vector(0 to cam_data_width-1);
cam_hit : out std_ulogic;
cam_hit_entry : out std_ulogic_vector(0 to 3);
entry_match : out std_ulogic_vector(0 to 15);
entry_valid : out std_ulogic_vector(0 to 15);
rd_cam_data : out std_ulogic_vector(0 to cam_data_width-1);
----- new ports for IO plus -----------------------
bypass_mux_enab_np1 : in std_ulogic;
bypass_attr_np1 : in std_ulogic_vector(0 to 20);
attr_np2 : out std_ulogic_vector(0 to 20);
rpn_np2 : out std_ulogic_vector(22 to 51)
);
END component;
----------------------------
-- constants
----------------------------
constant MMU_Mode_Value : std_ulogic := '0';
constant TlbSel_Tlb : std_ulogic_vector(0 to 1) := "00";
constant TlbSel_IErat : std_ulogic_vector(0 to 1) := "10";
constant TlbSel_DErat : std_ulogic_vector(0 to 1) := "11";
constant CAM_PgSize_1GB : std_ulogic_vector(0 to 2) := "110";
constant CAM_PgSize_16MB : std_ulogic_vector(0 to 2) := "111";
constant CAM_PgSize_1MB : std_ulogic_vector(0 to 2) := "101";
constant CAM_PgSize_64KB : std_ulogic_vector(0 to 2) := "011";
constant CAM_PgSize_4KB : std_ulogic_vector(0 to 2) := "001";
constant WS0_PgSize_1GB : std_ulogic_vector(0 to 3) := "1010";
constant WS0_PgSize_16MB : std_ulogic_vector(0 to 3) := "0111";
constant WS0_PgSize_1MB : std_ulogic_vector(0 to 3) := "0101";
constant WS0_PgSize_64KB : std_ulogic_vector(0 to 3) := "0011";
constant WS0_PgSize_4KB : std_ulogic_vector(0 to 3) := "0001";
constant eratpos_epn : natural := 0;
constant eratpos_x : natural := 52;
constant eratpos_size : natural := 53;
constant eratpos_v : natural := 56;
constant eratpos_thdid : natural := 57;
constant eratpos_class : natural := 61;
constant eratpos_extclass : natural := 63;
constant eratpos_wren : natural := 65;
constant eratpos_rpnrsvd : natural := 66;
constant eratpos_rpn : natural := 70;
constant eratpos_r : natural := 100;
constant eratpos_c : natural := 101;
constant eratpos_relsoon : natural := 102;
constant eratpos_wlc : natural := 103;
constant eratpos_resvattr : natural := 105;
constant eratpos_vf : natural := 106;
constant eratpos_ubits : natural := 107;
constant eratpos_wimge : natural := 111;
constant eratpos_usxwr : natural := 116;
constant eratpos_gs : natural := 122;
constant eratpos_ts : natural := 123;
constant eratpos_tid : natural := 124;
constant PorSeq_Idle : std_ulogic_vector(0 to 2) := "000";
constant PorSeq_Stg1 : std_ulogic_vector(0 to 2) := "001";
constant PorSeq_Stg2 : std_ulogic_vector(0 to 2) := "011";
constant PorSeq_Stg3 : std_ulogic_vector(0 to 2) := "010";
constant PorSeq_Stg4 : std_ulogic_vector(0 to 2) := "110";
constant PorSeq_Stg5 : std_ulogic_vector(0 to 2) := "100";
constant PorSeq_Stg6 : std_ulogic_vector(0 to 2) := "101";
constant PorSeq_Stg7 : std_ulogic_vector(0 to 2) := "111";
constant Por_Wr_Entry_Num1 : std_ulogic_vector(0 to num_entry_log2-1) := "1110";
constant Por_Wr_Entry_Num2 : std_ulogic_vector(0 to num_entry_log2-1) := "1111";
-- wr_cam_data
-- 0:51 - EPN
-- 52 - X
-- 53:55 - SIZE
-- 56 - V
-- 57:60 - ThdID
-- 61:62 - Class
-- 63:64 - ExtClass | TID_NZ
-- 65 - TGS
-- 66 - TS
-- 67:74 - TID
-- 75:78 - epn_cmpmasks: 34_39, 40_43, 44_47, 48_51
-- 79:82 - xbit_cmpmasks: 34_51, 40_51, 44_51, 48_51
-- 83 - parity for 75:82
constant Por_Wr_Cam_Data1 : std_ulogic_vector(0 to 83) := "0000000000000000000000000000000011111111111111111111" &
'0' & "001" & '1' & "1111" & "00" & "00" & "00" & "00000000" & "11110000" & '0';
constant Por_Wr_Cam_Data2 : std_ulogic_vector(0 to 83) := "0000000000000000000000000000000000000000000000000000" &
'0' & "001" & '1' & "1111" & "00" & "10" & "00" & "00000000" & "11110000" & '0';
-- 16x143 version, 42b RA
-- wr_array_data
-- 0:29 - RPN
-- 30:31 - R,C
-- 32:33 - WLC
-- 34 - ResvAttr
-- 35 - VF
-- 36:39 - U0-U3
-- 40:44 - WIMGE
-- 45:46 - UX,SX
-- 47:48 - UW,SW
-- 49:50 - UR,SR
-- 51:60 - CAM parity
-- 61:67 - Array parity
constant Por_Wr_Array_Data1 : std_ulogic_vector(0 to 67) := "111111111111111111111111111111" &
"00" & "0000" & "0000" & "01010" & "01" & "00" & "01" & "0000001000" & "0000000";
constant Por_Wr_Array_Data2 : std_ulogic_vector(0 to 67) := "000000000000000000000000000000" &
"00" & "0000" & "0000" & "01010" & "01" & "00" & "01" & "0000001010" & "0000000";
constant ex1_valid_offset : natural := 0;
constant ex1_ttype_offset : natural := ex1_valid_offset + thdid_width;
constant ex1_ws_offset : natural := ex1_ttype_offset + ttype_width+1;
constant ex1_rs_is_offset : natural := ex1_ws_offset + ws_width;
constant ex1_ra_entry_offset : natural := ex1_rs_is_offset + rs_is_width;
constant ex1_state_offset : natural := ex1_ra_entry_offset + ra_entry_width;
constant ex1_pid_offset : natural := ex1_state_offset + state_width;
constant ex1_extclass_offset : natural := ex1_pid_offset + pid_width;
constant ex1_tlbsel_offset : natural := ex1_extclass_offset + extclass_width;
constant ex2_valid_offset : natural := ex1_tlbsel_offset + tlbsel_width;
constant ex2_ttype_offset : natural := ex2_valid_offset + thdid_width;
constant ex2_ws_offset : natural := ex2_ttype_offset + ttype_width;
constant ex2_rs_is_offset : natural := ex2_ws_offset + ws_width;
constant ex2_ra_entry_offset : natural := ex2_rs_is_offset + rs_is_width;
constant ex2_state_offset : natural := ex2_ra_entry_offset + ra_entry_width;
constant ex2_pid_offset : natural := ex2_state_offset + state_width;
constant ex2_extclass_offset : natural := ex2_pid_offset + pid_width;
constant ex2_tlbsel_offset : natural := ex2_extclass_offset + extclass_width;
constant ex3_valid_offset : natural := ex2_tlbsel_offset + tlbsel_width;
constant ex3_ttype_offset : natural := ex3_valid_offset + thdid_width;
constant ex3_ws_offset : natural := ex3_ttype_offset + ttype_width;
constant ex3_rs_is_offset : natural := ex3_ws_offset + ws_width;
constant ex3_ra_entry_offset : natural := ex3_rs_is_offset + rs_is_width;
constant ex3_state_offset : natural := ex3_ra_entry_offset + ra_entry_width;
constant ex3_pid_offset : natural := ex3_state_offset + state_width;
constant ex3_extclass_offset : natural := ex3_pid_offset + pid_width;
constant ex3_tlbsel_offset : natural := ex3_extclass_offset + extclass_width;
constant ex3_eratsx_data_offset : natural := ex3_tlbsel_offset + tlbsel_width;
constant ex4_valid_offset : natural := ex3_eratsx_data_offset + 2 + num_entry_log2;
constant ex4_ttype_offset : natural := ex4_valid_offset + thdid_width;
constant ex4_ws_offset : natural := ex4_ttype_offset + ttype_width;
constant ex4_rs_is_offset : natural := ex4_ws_offset + ws_width;
constant ex4_ra_entry_offset : natural := ex4_rs_is_offset + rs_is_width;
constant ex4_state_offset : natural := ex4_ra_entry_offset + ra_entry_width;
constant ex4_pid_offset : natural := ex4_state_offset + state_width;
constant ex4_extclass_offset : natural := ex4_pid_offset + pid_width;
constant ex4_tlbsel_offset : natural := ex4_extclass_offset + extclass_width;
constant ex4_data_out_offset : natural := ex4_tlbsel_offset + tlbsel_width;
constant ex5_valid_offset : natural := ex4_data_out_offset + data_out_width;
constant ex5_ttype_offset : natural := ex5_valid_offset + thdid_width;
constant ex5_ws_offset : natural := ex5_ttype_offset + ttype_width;
constant ex5_rs_is_offset : natural := ex5_ws_offset + ws_width;
constant ex5_ra_entry_offset : natural := ex5_rs_is_offset + rs_is_width;
constant ex5_state_offset : natural := ex5_ra_entry_offset + ra_entry_width;
constant ex5_pid_offset : natural := ex5_state_offset + state_width;
constant ex5_extclass_offset : natural := ex5_pid_offset + pid_width;
constant ex5_tlbsel_offset : natural := ex5_extclass_offset + extclass_width;
constant ex5_data_in_offset : natural := ex5_tlbsel_offset + tlbsel_width;
constant ex6_valid_offset : natural := ex5_data_in_offset + rs_data_width;
constant ex6_ttype_offset : natural := ex6_valid_offset + thdid_width;
constant ex6_ws_offset : natural := ex6_ttype_offset + ttype_width;
constant ex6_rs_is_offset : natural := ex6_ws_offset + ws_width;
constant ex6_ra_entry_offset : natural := ex6_rs_is_offset + rs_is_width;
constant ex6_state_offset : natural := ex6_ra_entry_offset + ra_entry_width;
constant ex6_pid_offset : natural := ex6_state_offset + state_width;
constant ex6_extclass_offset : natural := ex6_pid_offset + pid_width;
constant ex6_tlbsel_offset : natural := ex6_extclass_offset + extclass_width;
constant ex6_data_in_offset : natural := ex6_tlbsel_offset + tlbsel_width;
constant iu1_flush_enab_offset : natural := ex6_data_in_offset + rs_data_width;
constant iu2_n_flush_req_offset : natural := iu1_flush_enab_offset + 1;
constant hold_req_offset : natural := iu2_n_flush_req_offset + thdid_width;
constant tlb_miss_offset : natural := hold_req_offset + thdid_width;
constant tlb_req_inprogress_offset : natural := tlb_miss_offset + thdid_width;
constant iu1_valid_offset : natural := tlb_req_inprogress_offset + thdid_width;
constant iu1_state_offset : natural := iu1_valid_offset + thdid_width;
constant iu1_pid_offset : natural := iu1_state_offset + state_width;
constant iu2_valid_offset : natural := iu1_pid_offset + pid_width;
constant iu2_state_offset : natural := iu2_valid_offset + thdid_width;
constant iu2_pid_offset : natural := iu2_state_offset + state_width;
constant iu2_miss_offset : natural := iu2_pid_offset + pid_width;
constant iu2_multihit_offset : natural := iu2_miss_offset + 2;
constant iu2_parerr_offset : natural := iu2_multihit_offset + 2;
constant iu2_isi_offset : natural := iu2_parerr_offset + 2;
constant iu2_tlbreq_offset : natural := iu2_isi_offset + 6;
constant iu2_multihit_b_pt_offset : natural := iu2_tlbreq_offset + 1;
constant iu2_first_hit_entry_pt_offset : natural := iu2_multihit_b_pt_offset + num_entry;
constant iu2_cam_cmp_data_offset : natural := iu2_first_hit_entry_pt_offset + num_entry-1;
constant iu2_array_cmp_data_offset : natural := iu2_cam_cmp_data_offset + cam_data_width;
constant ex4_rd_cam_data_offset : natural := iu2_array_cmp_data_offset + array_data_width;
constant ex4_rd_array_data_offset : natural := ex4_rd_cam_data_offset + cam_data_width;
constant ex3_parerr_offset : natural := ex4_rd_array_data_offset + array_data_width;
constant ex4_parerr_offset : natural := ex3_parerr_offset + thdid_width + 1;
constant ex4_ieen_offset : natural := ex4_parerr_offset + thdid_width + 2;
constant ex5_ieen_offset : natural := ex4_ieen_offset + thdid_width + num_entry_log2;
constant ex6_ieen_offset : natural := ex5_ieen_offset + thdid_width + num_entry_log2;
constant mmucr1_offset : natural := ex6_ieen_offset + 1 + num_entry_log2;
constant rpn_holdreg0_offset : natural := mmucr1_offset + 9;
constant rpn_holdreg1_offset : natural := rpn_holdreg0_offset + 64;
constant rpn_holdreg2_offset : natural := rpn_holdreg1_offset + 64;
constant rpn_holdreg3_offset : natural := rpn_holdreg2_offset + 64;
constant entry_valid_offset : natural := rpn_holdreg3_offset + 64;
constant entry_match_offset : natural := entry_valid_offset + 16;
constant watermark_offset : natural := entry_match_offset + 16;
constant eptr_offset : natural := watermark_offset + watermark_width;
constant lru_offset : natural := eptr_offset + eptr_width;
constant lru_update_event_offset : natural := lru_offset + lru_width;
constant lru_debug_offset : natural := lru_update_event_offset + 9;
constant scan_right_0 : natural := lru_debug_offset + 24 -1;
-- NOTE: scan_right_0 is maxed out! use scan_right_1 chain for new additions!
constant snoop_val_offset : natural := 0;
constant spare_a_offset : natural := snoop_val_offset + 3;
constant snoop_attr_offset : natural := spare_a_offset + 16;
constant snoop_addr_offset : natural := snoop_attr_offset + 26;
constant spare_b_offset : natural := snoop_addr_offset + epn_width;
constant por_seq_offset : natural := spare_b_offset + 16;
constant tlb_rel_val_offset : natural := por_seq_offset + 3;
constant tlb_rel_data_offset : natural := tlb_rel_val_offset + thdid_width + 1;
constant iu_mm_ierat_flush_offset : natural := tlb_rel_data_offset + 132;
constant iu_xu_ierat_ex2_flush_offset : natural := iu_mm_ierat_flush_offset + thdid_width;
constant ccr2_frat_paranoia_offset : natural := iu_xu_ierat_ex2_flush_offset + thdid_width;
constant ccr2_notlb_offset : natural := ccr2_frat_paranoia_offset + 10;
constant xucr4_mmu_mchk_offset : natural := ccr2_notlb_offset + 1;
constant mchk_flash_inv_offset : natural := xucr4_mmu_mchk_offset + 1;
constant ex7_valid_offset : natural := mchk_flash_inv_offset + 4;
constant ex7_ttype_offset : natural := ex7_valid_offset + thdid_width;
constant ex7_tlbsel_offset : natural := ex7_ttype_offset + ttype_width;
constant iu1_debug_offset : natural := ex7_tlbsel_offset + 2;
constant iu2_debug_offset : natural := iu1_debug_offset + 11;
constant iu1_stg_act_offset : natural := iu2_debug_offset + 17;
constant iu2_stg_act_offset : natural := iu1_stg_act_offset + 1;
constant iu3_stg_act_offset : natural := iu2_stg_act_offset + 1;
constant iu4_stg_act_offset : natural := iu3_stg_act_offset + 1;
constant ex1_stg_act_offset : natural := iu4_stg_act_offset + 1;
constant ex2_stg_act_offset : natural := ex1_stg_act_offset + 1;
constant ex3_stg_act_offset : natural := ex2_stg_act_offset + 1;
constant ex4_stg_act_offset : natural := ex3_stg_act_offset + 1;
constant ex5_stg_act_offset : natural := ex4_stg_act_offset + 1;
constant ex6_stg_act_offset : natural := ex5_stg_act_offset + 1;
constant ex7_stg_act_offset : natural := ex6_stg_act_offset + 1;
constant tlb_rel_act_offset : natural := ex7_stg_act_offset + 1;
constant snoop_act_offset : natural := tlb_rel_act_offset + 1;
constant trace_bus_enable_offset : natural := snoop_act_offset + 1;
constant an_ac_grffence_en_dc_offset : natural := trace_bus_enable_offset + 1;
constant scan_right_1 : natural := an_ac_grffence_en_dc_offset + 1 -1;
constant bcfg_offset : natural := 0;
constant boot_scan_right : natural := bcfg_offset + bcfg_width - 1;
----------------------------
-- signals
----------------------------
-- Latch signals
signal ex1_valid_d, ex1_valid_q : std_ulogic_vector(0 to thdid_width-1);
signal ex1_ttype_d, ex1_ttype_q : std_ulogic_vector(0 to ttype_width);
signal ex1_ws_d, ex1_ws_q : std_ulogic_vector(0 to ws_width-1);
signal ex1_rs_is_d, ex1_rs_is_q : std_ulogic_vector(0 to rs_is_width-1);
signal ex1_ra_entry_d, ex1_ra_entry_q : std_ulogic_vector(0 to ra_entry_width-1);
signal ex1_state_d, ex1_state_q : std_ulogic_vector(0 to state_width-1);
signal ex1_pid_d, ex1_pid_q : std_ulogic_vector(0 to pid_width-1);
signal ex1_extclass_d, ex1_extclass_q : std_ulogic_vector(0 to extclass_width-1);
signal ex1_tlbsel_d, ex1_tlbsel_q : std_ulogic_vector(0 to tlbsel_width-1);
signal ex2_valid_d, ex2_valid_q : std_ulogic_vector(0 to thdid_width-1);
signal ex2_ttype_d, ex2_ttype_q : std_ulogic_vector(0 to ttype_width-1);
signal ex2_ws_d, ex2_ws_q : std_ulogic_vector(0 to ws_width-1);
signal ex2_rs_is_d, ex2_rs_is_q : std_ulogic_vector(0 to rs_is_width-1);
signal ex2_ra_entry_d, ex2_ra_entry_q : std_ulogic_vector(0 to ra_entry_width-1);
signal ex2_state_d, ex2_state_q : std_ulogic_vector(0 to state_width-1);
signal ex2_pid_d, ex2_pid_q : std_ulogic_vector(0 to pid_width-1);
signal ex2_extclass_d, ex2_extclass_q : std_ulogic_vector(0 to extclass_width-1);
signal ex2_tlbsel_d, ex2_tlbsel_q : std_ulogic_vector(0 to tlbsel_width-1);
signal ex3_valid_d, ex3_valid_q : std_ulogic_vector(0 to thdid_width-1);
signal ex3_ttype_d, ex3_ttype_q : std_ulogic_vector(0 to ttype_width-1);
signal ex3_ws_d, ex3_ws_q : std_ulogic_vector(0 to ws_width-1);
signal ex3_rs_is_d, ex3_rs_is_q : std_ulogic_vector(0 to rs_is_width-1);
signal ex3_ra_entry_d, ex3_ra_entry_q : std_ulogic_vector(0 to ra_entry_width-1);
signal ex3_state_d, ex3_state_q : std_ulogic_vector(0 to state_width-1);
signal ex3_pid_d, ex3_pid_q : std_ulogic_vector(0 to pid_width-1);
signal ex3_extclass_d, ex3_extclass_q : std_ulogic_vector(0 to extclass_width-1);
signal ex3_tlbsel_d, ex3_tlbsel_q : std_ulogic_vector(0 to tlbsel_width-1);
signal ex3_eratsx_data_d, ex3_eratsx_data_q : std_ulogic_vector(0 to 2+num_entry_log2-1);
signal ex4_valid_d, ex4_valid_q : std_ulogic_vector(0 to thdid_width-1);
signal ex4_ttype_d, ex4_ttype_q : std_ulogic_vector(0 to ttype_width-1);
signal ex4_ws_d, ex4_ws_q : std_ulogic_vector(0 to ws_width-1);
signal ex4_rs_is_d, ex4_rs_is_q : std_ulogic_vector(0 to rs_is_width-1);
signal ex4_ra_entry_d, ex4_ra_entry_q : std_ulogic_vector(0 to ra_entry_width-1);
signal ex4_state_d, ex4_state_q : std_ulogic_vector(0 to state_width-1);
signal ex4_pid_d, ex4_pid_q : std_ulogic_vector(0 to pid_width-1);
signal ex4_extclass_d, ex4_extclass_q : std_ulogic_vector(0 to extclass_width-1);
signal ex4_tlbsel_d, ex4_tlbsel_q : std_ulogic_vector(0 to tlbsel_width-1);
signal ex4_data_out_d, ex4_data_out_q : std_ulogic_vector(64-data_out_width to 63);
signal ex5_valid_d, ex5_valid_q : std_ulogic_vector(0 to thdid_width-1);
signal ex5_ttype_d, ex5_ttype_q : std_ulogic_vector(0 to ttype_width-1);
signal ex5_ws_d, ex5_ws_q : std_ulogic_vector(0 to ws_width-1);
signal ex5_rs_is_d, ex5_rs_is_q : std_ulogic_vector(0 to rs_is_width-1);
signal ex5_ra_entry_d, ex5_ra_entry_q : std_ulogic_vector(0 to ra_entry_width-1);
signal ex5_state_d, ex5_state_q : std_ulogic_vector(0 to state_width-1);
signal ex5_pid_d, ex5_pid_q : std_ulogic_vector(0 to pid_width-1);
signal ex5_extclass_d, ex5_extclass_q : std_ulogic_vector(0 to extclass_width-1);
signal ex5_tlbsel_d, ex5_tlbsel_q : std_ulogic_vector(0 to tlbsel_width-1);
signal ex5_data_in_d, ex5_data_in_q : std_ulogic_vector(64-rs_data_width to 63);
signal ex6_valid_d, ex6_valid_q : std_ulogic_vector(0 to thdid_width-1);
signal ex6_ttype_d, ex6_ttype_q : std_ulogic_vector(0 to ttype_width-1);
signal ex6_ws_d, ex6_ws_q : std_ulogic_vector(0 to ws_width-1);
signal ex6_rs_is_d, ex6_rs_is_q : std_ulogic_vector(0 to rs_is_width-1);
signal ex6_ra_entry_d, ex6_ra_entry_q : std_ulogic_vector(0 to ra_entry_width-1);
signal ex6_state_d, ex6_state_q : std_ulogic_vector(0 to state_width-1);
signal ex6_pid_d, ex6_pid_q : std_ulogic_vector(0 to pid_width-1);
signal ex6_extclass_d, ex6_extclass_q : std_ulogic_vector(0 to extclass_width-1);
signal ex6_tlbsel_d, ex6_tlbsel_q : std_ulogic_vector(0 to tlbsel_width-1);
signal ex6_data_in_d, ex6_data_in_q : std_ulogic_vector(64-rs_data_width to 63);
signal ex7_valid_d, ex7_valid_q : std_ulogic_vector(0 to thdid_width-1);
signal ex7_ttype_d, ex7_ttype_q : std_ulogic_vector(0 to ttype_width-1);
signal ex7_tlbsel_d, ex7_tlbsel_q : std_ulogic_vector(0 to tlbsel_width-1);
signal iu1_valid_d, iu1_valid_q : std_ulogic_vector(0 to thdid_width-1);
signal iu1_state_d, iu1_state_q : std_ulogic_vector(0 to state_width-1);
signal iu1_pid_d, iu1_pid_q : std_ulogic_vector(0 to pid_width-1);
signal iu2_valid_d, iu2_valid_q : std_ulogic_vector(0 to thdid_width-1);
signal iu2_state_d, iu2_state_q : std_ulogic_vector(0 to state_width-1);
signal iu2_pid_d, iu2_pid_q : std_ulogic_vector(0 to pid_width-1);
signal iu1_flush_enab_d, iu1_flush_enab_q : std_ulogic;
signal iu2_n_flush_req_d, iu2_n_flush_req_q : std_ulogic_vector(0 to thdid_width-1);
signal hold_req_d, hold_req_q : std_ulogic_vector(0 to thdid_width-1);
signal tlb_miss_d, tlb_miss_q : std_ulogic_vector(0 to thdid_width-1);
signal tlb_req_inprogress_d, tlb_req_inprogress_q : std_ulogic_vector(0 to thdid_width-1);
signal iu2_tlbreq_d, iu2_tlbreq_q : std_ulogic;
signal iu2_miss_d, iu2_miss_q : std_ulogic_vector(0 to 1);
signal iu2_multihit_d, iu2_multihit_q : std_ulogic_vector(0 to 1);
signal iu2_parerr_d, iu2_parerr_q : std_ulogic_vector(0 to 1);
signal iu2_isi_d, iu2_isi_q : std_ulogic_vector(0 to 5);
signal iu1_debug_d, iu1_debug_q : std_ulogic_vector(0 to 10);
signal iu2_debug_d, iu2_debug_q : std_ulogic_vector(0 to 16);
signal iu2_multihit_b_pt_d, iu2_multihit_b_pt_q : std_ulogic_vector(1 to num_entry);
signal iu2_first_hit_entry_pt_d, iu2_first_hit_entry_pt_q : std_ulogic_vector(1 to num_entry-1);
signal iu2_cam_cmp_data_d, iu2_cam_cmp_data_q : std_ulogic_vector(0 to cam_data_width-1);
signal iu2_array_cmp_data_d, iu2_array_cmp_data_q : std_ulogic_vector(0 to array_data_width-1);
signal ex4_rd_cam_data_d, ex4_rd_cam_data_q : std_ulogic_vector(0 to cam_data_width-1);
signal ex4_rd_array_data_d, ex4_rd_array_data_q : std_ulogic_vector(0 to array_data_width-1);
signal por_seq_d, por_seq_q : std_ulogic_vector(0 to 2);
signal ex3_parerr_d, ex3_parerr_q : std_ulogic_vector(0 to thdid_width);
signal ex4_parerr_d, ex4_parerr_q : std_ulogic_vector(0 to thdid_width+1);
signal ex4_ieen_d, ex4_ieen_q : std_ulogic_vector(0 to thdid_width+num_entry_log2-1);
signal ex5_ieen_d, ex5_ieen_q : std_ulogic_vector(0 to thdid_width+num_entry_log2-1);
signal ex6_ieen_d, ex6_ieen_q : std_ulogic_vector(0 to num_entry_log2);
signal mmucr1_d, mmucr1_q : std_ulogic_vector(0 to 8);
signal rpn_holdreg0_d, rpn_holdreg0_q : std_ulogic_vector(0 to 63);
signal rpn_holdreg1_d, rpn_holdreg1_q : std_ulogic_vector(0 to 63);
signal rpn_holdreg2_d, rpn_holdreg2_q : std_ulogic_vector(0 to 63);
signal rpn_holdreg3_d, rpn_holdreg3_q : std_ulogic_vector(0 to 63);
signal watermark_d, watermark_q : std_ulogic_vector(0 to watermark_width-1);
signal eptr_d, eptr_q : std_ulogic_vector(0 to eptr_width-1);
signal lru_d, lru_q : std_ulogic_vector(1 to lru_width);
signal lru_update_event_d, lru_update_event_q : std_ulogic_vector(0 to 8);
signal lru_debug_d, lru_debug_q : std_ulogic_vector(0 to 23);
signal snoop_val_d, snoop_val_q : std_ulogic_vector(0 to 2);
signal snoop_attr_d, snoop_attr_q : std_ulogic_vector(0 to 25);
signal snoop_addr_d, snoop_addr_q : std_ulogic_vector(52-epn_width to 51);
signal tlb_rel_val_d, tlb_rel_val_q : std_ulogic_vector(0 to 4);
signal tlb_rel_data_d, tlb_rel_data_q : std_ulogic_vector(0 to 131);
signal iu_mm_ierat_flush_d, iu_mm_ierat_flush_q : std_ulogic_vector(0 to thdid_width-1);
signal iu_xu_ierat_ex2_flush_d, iu_xu_ierat_ex2_flush_q : std_ulogic_vector(0 to thdid_width-1);
signal ccr2_frat_paranoia_d, ccr2_frat_paranoia_q : std_ulogic_vector(0 to 9);
signal ccr2_notlb_q, xucr4_mmu_mchk_q : std_ulogic;
signal mchk_flash_inv_d, mchk_flash_inv_q : std_ulogic_vector(0 to 3);
signal mchk_flash_inv_enab : std_ulogic;
signal spare_q : std_ulogic_vector(0 to 31);
signal bcfg_q, bcfg_q_b : std_ulogic_vector(0 to bcfg_width-1);
-- logic signals
signal iu2_isi_sig : std_ulogic;
signal iu2_miss_sig : std_ulogic;
signal iu2_parerr_sig : std_ulogic;
signal iu2_multihit_sig : std_ulogic;
signal iu1_multihit : std_ulogic;
signal iu1_multihit_b : std_ulogic;
signal iu1_first_hit_entry : std_ulogic_vector(0 to num_entry_log2-1);
signal iu2_first_hit_entry : std_ulogic_vector(0 to num_entry_log2-1);
signal iu2_multihit_enab : std_ulogic;
signal por_wr_cam_val : std_ulogic_vector(0 to 1);
signal por_wr_array_val : std_ulogic_vector(0 to 1);
signal por_wr_cam_data : std_ulogic_vector(0 to cam_data_width-1);
signal por_wr_array_data : std_ulogic_vector(0 to array_data_width-1);
signal por_wr_entry : std_ulogic_vector(0 to num_entry_log2-1);
signal por_hold_req : std_ulogic_vector(0 to thdid_width-1);
signal lru_way_encode : std_ulogic_vector(0 to num_entry_log2-1);
signal lru_rmt_vec : std_ulogic_vector(0 to lru_width);
signal lru_reset_vec, lru_set_vec : std_ulogic_vector(1 to lru_width);
signal lru_op_vec, lru_vp_vec : std_ulogic_vector(1 to lru_width);
signal lru_eff : std_ulogic_vector(1 to lru_width);
signal lru_watermark_mask : std_ulogic_vector(0 to lru_width);
signal entry_valid_watermarked : std_ulogic_vector(0 to lru_width);
signal eptr_p1 : std_ulogic_vector(0 to eptr_width-1);
signal ex1_ieratre, ex1_ieratwe, ex1_ieratsx : std_ulogic;
signal ex3_parerr_enab : std_ulogic;
signal ex4_parerr_enab : std_ulogic;
signal ex3_ieratwe, ex4_ieratwe, ex5_ieratwe, ex6_ieratwe, ex7_ieratwe : std_ulogic;
signal ex6_ieratwe_ws3 : std_ulogic;
signal iu2_cmp_data_calc_par : std_ulogic_vector(50 to 67);
-- synopsys translate_off
-- synopsys translate_on
signal iu2_cmp_data_parerr_epn : std_ulogic;
signal iu2_cmp_data_parerr_rpn : std_ulogic;
signal ex4_rd_data_calc_par : std_ulogic_vector(50 to 67);
signal ex4_rd_data_parerr_epn : std_ulogic;
signal ex4_rd_data_parerr_rpn : std_ulogic;
-- synopsys translate_off
-- synopsys translate_on
signal unused_dc : std_ulogic_vector(0 to 29);
-- synopsys translate_off
-- synopsys translate_on
signal mmucr0_gs_vec : std_ulogic_vector(0 to thdid_width-1);
signal mmucr0_ts_vec : std_ulogic_vector(0 to thdid_width-1);
signal tlb_rel_cmpmask : std_ulogic_vector(0 to 3);
signal tlb_rel_xbitmask : std_ulogic_vector(0 to 3);
signal tlb_rel_maskpar : std_ulogic;
signal ex6_data_cmpmask : std_ulogic_vector(0 to 3);
signal ex6_data_xbitmask : std_ulogic_vector(0 to 3);
signal ex6_data_maskpar : std_ulogic;
signal comp_addr_mux1 : std_ulogic_vector(0 to 51);
signal comp_addr_mux1_sel : std_ulogic;
signal lru_way_is_written : std_ulogic;
signal lru_way_is_hit_entry : std_ulogic;
-- Added for timing changes
signal ex1_pid_0, ex1_pid_1 : std_ulogic_vector(0 to pid_width-1);
-- CAM/Array signals
-- Read Port
signal rd_val : std_ulogic;
signal rw_entry : std_ulogic_vector(0 to 3);
-- Write Port
signal wr_array_par : std_ulogic_vector(51 to 67);
signal wr_array_data_nopar : std_ulogic_vector(0 to array_data_width-1-10-7);
signal wr_array_data : std_ulogic_vector(0 to array_data_width-1);
signal wr_cam_data : std_ulogic_vector(0 to cam_data_width-1);
signal wr_array_val : std_ulogic_vector(0 to 1);
signal wr_cam_val : std_ulogic_vector(0 to 1);
signal wr_val_early : std_ulogic;
-- CAM Port
signal comp_request : std_ulogic;
signal comp_addr : std_ulogic_vector(0 to 51);
signal addr_enable : std_ulogic_vector(0 to 1);
signal comp_pgsize : std_ulogic_vector(0 to 2);
signal pgsize_enable : std_ulogic;
signal comp_class : std_ulogic_vector(0 to 1);
signal class_enable : std_ulogic_vector(0 to 2);
signal comp_extclass : std_ulogic_vector(0 to 1);
signal extclass_enable : std_ulogic_vector(0 to 1);
signal comp_state : std_ulogic_vector(0 to 1);
signal state_enable : std_ulogic_vector(0 to 1);
signal comp_thdid : std_ulogic_vector(0 to 3);
signal thdid_enable : std_ulogic_vector(0 to 1);
signal comp_pid : std_ulogic_vector(0 to 7);
signal pid_enable : std_ulogic;
signal comp_invalidate : std_ulogic;
signal flash_invalidate : std_ulogic;
-- Array Outputs
signal array_cmp_data : std_ulogic_vector(0 to array_data_width-1);
signal rd_array_data : std_ulogic_vector(0 to array_data_width-1);
-- CAM Outputs
signal cam_cmp_data : std_ulogic_vector(0 to cam_data_width-1);
signal cam_hit : std_ulogic;
signal cam_hit_entry : std_ulogic_vector(0 to 3);
signal entry_match, entry_match_q : std_ulogic_vector(0 to 15);
signal entry_valid, entry_valid_q : std_ulogic_vector(0 to 15);
signal rd_cam_data : std_ulogic_vector(0 to cam_data_width-1);
-- synopsys translate_off
-- synopsys translate_on
signal cam_pgsize : std_ulogic_vector(0 to 2);
signal ws0_pgsize : std_ulogic_vector(0 to 3);
-- new cam _np2 signals
signal bypass_mux_enab_np1 : std_ulogic;
signal bypass_attr_np1 : std_ulogic_vector(0 to 20);
signal attr_np2 : std_ulogic_vector(0 to 20);
signal rpn_np2 : std_ulogic_vector(22 to 51);
-- Pervasive
signal pc_sg_1 : std_ulogic;
signal pc_sg_0 : std_ulogic;
signal pc_func_sl_thold_1 : std_ulogic;
signal pc_func_sl_thold_0 : std_ulogic;
signal pc_func_sl_thold_0_b : std_ulogic;
signal pc_func_slp_sl_thold_1 : std_ulogic;
signal pc_func_slp_sl_thold_0 : std_ulogic;
signal pc_func_slp_sl_thold_0_b : std_ulogic;
signal pc_func_sl_force : std_ulogic;
signal pc_func_slp_sl_force : std_ulogic;
signal pc_cfg_slp_sl_thold_1 : std_ulogic;
signal pc_cfg_slp_sl_thold_0 : std_ulogic;
signal pc_cfg_slp_sl_thold_0_b : std_ulogic;
signal pc_cfg_slp_sl_force : std_ulogic;
signal lcb_dclk : std_ulogic;
signal lcb_lclk : clk_logic;
signal init_alias : std_ulogic;
-- Clock Gating
signal iu1_stg_act_d, iu1_stg_act_q :std_ulogic;
signal iu2_stg_act_d, iu2_stg_act_q :std_ulogic;
signal iu3_stg_act_d, iu3_stg_act_q :std_ulogic;
signal iu4_stg_act_d, iu4_stg_act_q :std_ulogic;
signal ex1_stg_act_d, ex1_stg_act_q :std_ulogic;
signal ex2_stg_act_d, ex2_stg_act_q :std_ulogic;
signal ex3_stg_act_d, ex3_stg_act_q :std_ulogic;
signal ex4_stg_act_d, ex4_stg_act_q :std_ulogic;
signal ex5_stg_act_d, ex5_stg_act_q :std_ulogic;
signal ex6_stg_act_d, ex6_stg_act_q :std_ulogic;
signal ex7_stg_act_d, ex7_stg_act_q :std_ulogic;
signal iu1_cmp_data_act, iu1_grffence_act, iu1_or_iu2_grffence_act, iu2_to_iu4_grffence_act :std_ulogic;
signal ex3_rd_data_act, ex3_data_out_act :std_ulogic;
signal ex2_grffence_act, ex3_grffence_act :std_ulogic;
signal an_ac_grffence_en_dc_q, trace_bus_enable_q :std_ulogic;
signal entry_valid_act, entry_match_act :std_ulogic;
signal not_grffence_act, notlb_grffence_act :std_ulogic;
signal tlb_rel_act_d, tlb_rel_act_q, tlb_rel_act :std_ulogic;
signal snoop_act_q :std_ulogic;
signal lru_update_act, debug_grffence_act, eratsx_data_act :std_ulogic;
signal siv_0 : std_ulogic_vector(0 to scan_right_0);
signal sov_0 : std_ulogic_vector(0 to scan_right_0);
signal siv_1 : std_ulogic_vector(0 to scan_right_1);
signal sov_1 : std_ulogic_vector(0 to scan_right_1);
signal bsiv : std_ulogic_vector(0 to boot_scan_right);
signal bsov : std_ulogic_vector(0 to boot_scan_right);
signal tiup : std_ulogic;
BEGIN --@@ START OF EXECUTABLE CODE FOR IUQ_IC_IERAT
-----------------------------------------------------------------------
-- ACT Generation
-----------------------------------------------------------------------
iu1_stg_act_d <= comp_request or spr_ic_clockgate_dis;
iu2_stg_act_d <= iu1_stg_act_q;
iu3_stg_act_d <= iu2_stg_act_q;
iu4_stg_act_d <= iu3_stg_act_q;
ex1_stg_act_d <= or_reduce(xu_iu_rf1_val) or spr_ic_clockgate_dis;
ex2_stg_act_d <= ex1_stg_act_q;
ex3_stg_act_d <= ex2_stg_act_q;
ex4_stg_act_d <= ex3_stg_act_q;
ex5_stg_act_d <= ex4_stg_act_q;
ex6_stg_act_d <= ex5_stg_act_q;
ex7_stg_act_d <= ex6_stg_act_q;
iu1_cmp_data_act <= iu1_stg_act_q and not(an_ac_grffence_en_dc);
iu1_grffence_act <= iu1_stg_act_q and not(an_ac_grffence_en_dc);
iu1_or_iu2_grffence_act <= (iu1_stg_act_q or iu2_stg_act_q) and not(an_ac_grffence_en_dc);
iu2_to_iu4_grffence_act <= (iu2_stg_act_q or iu3_stg_act_q or iu4_stg_act_q) and not(an_ac_grffence_en_dc);
ex2_grffence_act <= ex2_stg_act_q and not(an_ac_grffence_en_dc);
ex3_rd_data_act <= ex3_stg_act_q and not(an_ac_grffence_en_dc);
ex3_data_out_act <= ex3_stg_act_q and not(an_ac_grffence_en_dc);
ex3_grffence_act <= ex3_stg_act_q and not(an_ac_grffence_en_dc);
entry_valid_act <= not an_ac_grffence_en_dc;
entry_match_act <= not an_ac_grffence_en_dc;
not_grffence_act <= not an_ac_grffence_en_dc;
lru_update_act <= ex6_stg_act_q or ex7_stg_act_q or lru_update_event_q(4) or lru_update_event_q(8) or flash_invalidate or ex6_ieratwe_ws3;
notlb_grffence_act <= (not(ccr2_notlb_q) or spr_ic_clockgate_dis) and not(an_ac_grffence_en_dc);
debug_grffence_act <= trace_bus_enable_q and not(an_ac_grffence_en_dc);
eratsx_data_act <= (iu1_stg_act_q or ex2_stg_act_q) and not(an_ac_grffence_en_dc);
-----------------------------------------------------------------------
-- Logic
-----------------------------------------------------------------------
tiup <= '1';
init_alias <= pc_iu_init_reset;
-- timing latches for the reloads
tlb_rel_val_d <= mm_iu_ierat_rel_val;
tlb_rel_data_d <= mm_iu_ierat_rel_data;
tlb_rel_act_d <= mm_iu_ierat_rel_data(eratpos_relsoon);
tlb_rel_act <= (tlb_rel_act_q and not(ccr2_notlb_q));
-- timing latches for the ifrat delusional paranoia real mode
ccr2_frat_paranoia_d(0 TO 8) <= xu_iu_spr_ccr2_ifratsc;
ccr2_frat_paranoia_d(9) <= xu_iu_spr_ccr2_ifrat;
--------------------------------------------------
ex1_valid_d <= xu_iu_rf1_val and not(xu_rf1_flush);
ex1_ttype_d(0 TO ttype_width-3) <= xu_iu_rf1_is_eratre & xu_iu_rf1_is_eratwe & xu_iu_rf1_is_eratsx & xu_iu_rf1_is_eratilx;
ex1_ttype_d(ttype_width-2 TO ttype_width) <= xu_iu_rf1_t;
ex1_ws_d <= xu_iu_rf1_ws;
ex1_rs_is_d <= (others => '0');
ex1_ra_entry_d <= (others => '0');
-- state: 0:pr 1:hs 2:ds 3:cm
ex1_state_d(0) <= or_reduce(xu_iu_msr_pr and xu_iu_rf1_val);
ex1_state_d(1) <= (or_reduce(xu_iu_msr_hv and xu_iu_rf1_val) and not xu_iu_rf1_is_eratsx) or
(or_reduce(mmucr0_gs_vec and xu_iu_rf1_val) and xu_iu_rf1_is_eratsx);
ex1_state_d(2) <= (or_reduce(xu_iu_msr_is and xu_iu_rf1_val) and not xu_iu_rf1_is_eratsx) or
(or_reduce(mmucr0_ts_vec and xu_iu_rf1_val) and xu_iu_rf1_is_eratsx);
ex1_state_d(3) <= or_reduce(xu_iu_msr_cm and xu_iu_rf1_val);
mmucr0_gs_vec <= mm_iu_ierat_mmucr0_0(2) & mm_iu_ierat_mmucr0_1(2) & mm_iu_ierat_mmucr0_2(2) & mm_iu_ierat_mmucr0_3(2);
mmucr0_ts_vec <= mm_iu_ierat_mmucr0_0(3) & mm_iu_ierat_mmucr0_1(3) & mm_iu_ierat_mmucr0_2(3) & mm_iu_ierat_mmucr0_3(3);
ex1_extclass_d <= mm_iu_ierat_mmucr0_1(0 to 1) when xu_iu_rf1_val(1)='1'
else mm_iu_ierat_mmucr0_2(0 to 1) when xu_iu_rf1_val(2)='1'
else mm_iu_ierat_mmucr0_3(0 to 1) when xu_iu_rf1_val(3)='1'
else mm_iu_ierat_mmucr0_0(0 to 1);
ex1_tlbsel_d <= mm_iu_ierat_mmucr0_1(4 to 5) when xu_iu_rf1_val(1)='1'
else mm_iu_ierat_mmucr0_2(4 to 5) when xu_iu_rf1_val(2)='1'
else mm_iu_ierat_mmucr0_3(4 to 5) when xu_iu_rf1_val(3)='1'
else mm_iu_ierat_mmucr0_0(4 to 5);
ex1_pid_d <= gate_and((xu_iu_rf1_is_eratsx='1'), ex1_pid_0) or gate_and((xu_iu_rf1_is_eratsx='0'), ex1_pid_1);
ex1_pid_0 <= gate_and((xu_iu_rf1_val(0)='1'),mm_iu_ierat_mmucr0_0(6 to 19)) or
gate_and((xu_iu_rf1_val(1)='1'),mm_iu_ierat_mmucr0_1(6 to 19)) or
gate_and((xu_iu_rf1_val(2)='1'),mm_iu_ierat_mmucr0_2(6 to 19)) or
gate_and((xu_iu_rf1_val(3)='1'),mm_iu_ierat_mmucr0_3(6 to 19));
ex1_pid_1 <= gate_and((xu_iu_rf1_val(0)='1'),mm_iu_ierat_pid0) or
gate_and((xu_iu_rf1_val(1)='1'),mm_iu_ierat_pid1) or
gate_and((xu_iu_rf1_val(2)='1'),mm_iu_ierat_pid2) or
gate_and((xu_iu_rf1_val(3)='1'),mm_iu_ierat_pid3);
ex1_ieratre <= or_reduce(ex1_valid_q) and ex1_ttype_q(0) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1);
ex1_ieratwe <= or_reduce(ex1_valid_q) and ex1_ttype_q(1) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1);
ex1_ieratsx <= or_reduce(ex1_valid_q) and ex1_ttype_q(2) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1);
--------------------------------------------------
ex2_valid_d <= ex1_valid_q and not(xu_ex1_flush);
ex2_ttype_d(0 TO ttype_width-3) <= ex1_ttype_q(0 to ttype_width-3);
ex2_ttype_d(ttype_width-2 TO ttype_width-1) <= xu_iu_ex1_is_csync & xu_iu_ex1_is_isync;
ex2_ws_d <= ex1_ws_q;
ex2_rs_is_d <= xu_iu_ex1_rs_is;
ex2_ra_entry_d <= xu_iu_ex1_ra_entry;
ex2_state_d <= ex1_state_q;
ex2_pid_d <= ex1_pid_q;
ex2_extclass_d <= ex1_extclass_q;
ex2_tlbsel_d <= ex1_tlbsel_q;
--------------------------------------------------
ex3_valid_d <= ex2_valid_q and not(xu_ex2_flush);
ex3_ttype_d <= ex2_ttype_q;
ex3_ws_d <= ex2_ws_q;
ex3_rs_is_d <= ex2_rs_is_q;
ex3_ra_entry_d <= iu1_first_hit_entry when ex2_ttype_q(2 to 3)/="00" else ex2_ra_entry_q;
ex3_tlbsel_d <= ex2_tlbsel_q;
ex3_extclass_d <= ex2_extclass_q;
-- state: 0:pr 1:hs 2:ds 3:cm
ex3_state_d <= ex2_state_q;
ex3_pid_d <= ex2_pid_q;
ex3_ieratwe <= or_reduce(ex3_valid_q) and ex3_ttype_q(1) and ex3_tlbsel_q(0) and not ex3_tlbsel_q(1);
--------------------------------------------------
ex4_valid_d <= ex3_valid_q and not(xu_ex3_flush);
ex4_ttype_d <= ex3_ttype_q;
ex4_ws_d <= ex3_ws_q;
ex4_rs_is_d <= ex3_rs_is_q;
ex4_ra_entry_d <= ex3_ra_entry_q;
ex4_tlbsel_d <= ex3_tlbsel_q;
-- muxes for eratre and sending mmucr0 ExtClass,State,TID
ex4_extclass_d <= rd_cam_data(63 to 64) when (ex3_valid_q/="0000" and ex3_ttype_q(0)='1' and ex3_ws_q="00")
else ex3_extclass_q;
-- state: 0:pr 1:hs 2:ds 3:cm
ex4_state_d <= ex3_state_q(0) & rd_cam_data(65 to 66) & ex3_state_q(3) when (ex3_valid_q/="0000" and ex3_ttype_q(0)='1' and ex3_ws_q="00")
else ex3_state_q;
ex4_pid_d <= rd_cam_data(61 to 62) & rd_cam_data(57 to 60) & rd_cam_data(67 to 74)
when (ex3_valid_q/="0000" and ex3_ttype_q(0)='1' and ex3_ws_q="00")
else ex3_pid_q;
ex4_ieratwe <= or_reduce(ex4_valid_q) and ex4_ttype_q(1) and ex4_tlbsel_q(0) and not ex4_tlbsel_q(1);
--------------------------------------------------
ex5_valid_d <= ex4_valid_q and not(xu_ex4_flush);
ex5_ws_d <= ex4_ws_q;
ex5_rs_is_d <= ex4_rs_is_q;
ex5_ra_entry_d <= ex4_ra_entry_q;
-- ttype <= 0:eratre & 1:eratwe & 2:eratsx & 3:eratilx & 4:csync & 5:isync;
ex5_ttype_d(0 TO 5) <= ex4_ttype_q(0 to 5);
-- mmucr0: 0:1-ECL|TID_NZ, 2:3-tgs/ts, 4:5-tlbsel, 6:19-tid,
ex5_extclass_d <= ex4_extclass_q;
-- state: 0:pr 1:hs 2:ds 3:cm
ex5_state_d <= ex4_state_q;
ex5_pid_d <= ex4_pid_q;
ex5_tlbsel_d <= ex4_tlbsel_q;
ex5_data_in_d <= xu_iu_ex4_rs_data;
ex5_ieratwe <= or_reduce(ex5_valid_q) and ex5_ttype_q(1) and ex5_tlbsel_q(0) and not ex5_tlbsel_q(1);
--------------------------------------------------
ex6_valid_d <= ex5_valid_q and not(xu_ex5_flush);
ex6_ws_d <= ex5_ws_q;
ex6_rs_is_d <= ex5_rs_is_q;
ex6_ra_entry_d <= ex5_ra_entry_q;
-- ttype <= 0:eratre & 1:eratwe & 2:eratsx & 3:eratilx & 4:csync & 5:isync;
ex6_ttype_d(0 TO 3) <= ex5_ttype_q(0 to 3);
-- mmucr1_q: 0-IRRE, 1-REE, 2-CEE, 3-csync, 4-isync, 5:6-IPEI, 7:8-ICTID/ITTID
ex6_ttype_d(4) <= '1' when (ex5_ttype_q(4)='1' and mmucr1_q(3)='0' and ccr2_notlb_q=MMU_Mode_Value)
else '0';
ex6_ttype_d(5) <= '1' when (ex5_ttype_q(5)='1' and mmucr1_q(4)='0' and ccr2_notlb_q=MMU_Mode_Value)
else '0';
-- mmucr0: 0:1-ECL|TID_NZ, 2:3-tgs/ts, 4:5-tlbsel, 6:19-tid,
ex6_extclass_d <= mm_iu_ierat_mmucr0_0(0 to 1)
when (ex5_valid_q="1000" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else mm_iu_ierat_mmucr0_1(0 to 1)
when (ex5_valid_q="0100" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else mm_iu_ierat_mmucr0_2(0 to 1)
when (ex5_valid_q="0010" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else mm_iu_ierat_mmucr0_3(0 to 1)
when (ex5_valid_q="0001" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else ex5_extclass_q;
-- state: 0:pr 1:hs 2:ds 3:cm
ex6_state_d <= xu_iu_msr_pr(0) & mm_iu_ierat_mmucr0_0(2 to 3) & xu_iu_msr_cm(0)
when (ex5_valid_q="1000" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else xu_iu_msr_pr(1) & mm_iu_ierat_mmucr0_1(2 to 3) & xu_iu_msr_cm(1)
when (ex5_valid_q="0100" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else xu_iu_msr_pr(2) & mm_iu_ierat_mmucr0_2(2 to 3) & xu_iu_msr_cm(2)
when (ex5_valid_q="0010" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else xu_iu_msr_pr(3) & mm_iu_ierat_mmucr0_3(2 to 3) & xu_iu_msr_cm(3)
when (ex5_valid_q="0001" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else ex5_state_q;
ex6_pid_d <= mm_iu_ierat_mmucr0_0(6 to 19)
when (ex5_valid_q="1000" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else mm_iu_ierat_mmucr0_1(6 to 19)
when (ex5_valid_q="0100" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else mm_iu_ierat_mmucr0_2(6 to 19)
when (ex5_valid_q="0010" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else mm_iu_ierat_mmucr0_3(6 to 19)
when (ex5_valid_q="0001" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else ex5_pid_q;
ex6_tlbsel_d <= mm_iu_ierat_mmucr0_0(4 to 5)
when (ex5_valid_q="1000" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else mm_iu_ierat_mmucr0_1(4 to 5)
when (ex5_valid_q="0100" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else mm_iu_ierat_mmucr0_2(4 to 5)
when (ex5_valid_q="0010" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else mm_iu_ierat_mmucr0_3(4 to 5)
when (ex5_valid_q="0001" and ex5_ttype_q(1)='1' and ex5_ws_q="00")
else ex5_tlbsel_q;
ex6_data_in_d <= ex5_data_in_q;
ex6_ieratwe <= or_reduce(ex6_valid_q) and ex6_ttype_q(1) and ex6_tlbsel_q(0) and not ex6_tlbsel_q(1);
--------------------------------------------------
-- for flushing
ex7_valid_d <= ex6_valid_q;
ex7_ttype_d <= ex6_ttype_q;
ex7_tlbsel_d <= ex6_tlbsel_q;
ex7_ieratwe <= or_reduce(ex7_valid_q) and ex7_ttype_q(1) and ex7_tlbsel_q(0) and not ex7_tlbsel_q(1);
-- adding local iu2 flush request for timing
iu1_valid_d <= iu_ierat_iu0_thdid and (0 to thdid_width-1 => iu_ierat_iu0_val) and not(iu_ierat_iu0_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q);
-- state: 0:pr 1:hs 2:ds 3:cm
iu1_state_d(0) <= or_reduce(xu_iu_msr_pr and iu_ierat_iu0_thdid);
iu1_state_d(1) <= or_reduce(xu_iu_msr_hv and iu_ierat_iu0_thdid);
iu1_state_d(2) <= or_reduce(xu_iu_msr_is and iu_ierat_iu0_thdid);
iu1_state_d(3) <= or_reduce(xu_iu_msr_cm and iu_ierat_iu0_thdid);
iu1_pid_d <= ( mm_iu_ierat_pid0 and (0 to pid_width-1 => iu_ierat_iu0_thdid(0)) ) or
( mm_iu_ierat_pid1 and (0 to pid_width-1 => iu_ierat_iu0_thdid(1)) ) or
( mm_iu_ierat_pid2 and (0 to pid_width-1 => iu_ierat_iu0_thdid(2)) ) or
( mm_iu_ierat_pid3 and (0 to pid_width-1 => iu_ierat_iu0_thdid(3)) );
-- adding local iu2 flush request for timing
iu2_valid_d <= iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q);
iu2_state_d <= iu1_state_q;
iu2_pid_d <= iu1_pid_q;
iu_mm_ierat_flush_d <= iu_ierat_iu1_flush;
mmucr1_d <= mm_iu_ierat_mmucr1;
-- TIMING FIXES 2009/03/27
MQQ1:IU1_MULTIHIT_B_PT(1) <=
Eq(( ENTRY_MATCH(1) & ENTRY_MATCH(2) &
ENTRY_MATCH(3) & ENTRY_MATCH(4) &
ENTRY_MATCH(5) & ENTRY_MATCH(6) &
ENTRY_MATCH(7) & ENTRY_MATCH(8) &
ENTRY_MATCH(9) & ENTRY_MATCH(10) &
ENTRY_MATCH(11) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ2:IU1_MULTIHIT_B_PT(2) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(2) &
ENTRY_MATCH(3) & ENTRY_MATCH(4) &
ENTRY_MATCH(5) & ENTRY_MATCH(6) &
ENTRY_MATCH(7) & ENTRY_MATCH(8) &
ENTRY_MATCH(9) & ENTRY_MATCH(10) &
ENTRY_MATCH(11) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ3:IU1_MULTIHIT_B_PT(3) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(3) & ENTRY_MATCH(4) &
ENTRY_MATCH(5) & ENTRY_MATCH(6) &
ENTRY_MATCH(7) & ENTRY_MATCH(8) &
ENTRY_MATCH(9) & ENTRY_MATCH(10) &
ENTRY_MATCH(11) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ4:IU1_MULTIHIT_B_PT(4) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(4) &
ENTRY_MATCH(5) & ENTRY_MATCH(6) &
ENTRY_MATCH(7) & ENTRY_MATCH(8) &
ENTRY_MATCH(9) & ENTRY_MATCH(10) &
ENTRY_MATCH(11) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ5:IU1_MULTIHIT_B_PT(5) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(5) & ENTRY_MATCH(6) &
ENTRY_MATCH(7) & ENTRY_MATCH(8) &
ENTRY_MATCH(9) & ENTRY_MATCH(10) &
ENTRY_MATCH(11) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ6:IU1_MULTIHIT_B_PT(6) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(6) &
ENTRY_MATCH(7) & ENTRY_MATCH(8) &
ENTRY_MATCH(9) & ENTRY_MATCH(10) &
ENTRY_MATCH(11) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ7:IU1_MULTIHIT_B_PT(7) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(7) & ENTRY_MATCH(8) &
ENTRY_MATCH(9) & ENTRY_MATCH(10) &
ENTRY_MATCH(11) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ8:IU1_MULTIHIT_B_PT(8) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(8) &
ENTRY_MATCH(9) & ENTRY_MATCH(10) &
ENTRY_MATCH(11) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ9:IU1_MULTIHIT_B_PT(9) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(9) & ENTRY_MATCH(10) &
ENTRY_MATCH(11) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ10:IU1_MULTIHIT_B_PT(10) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(10) &
ENTRY_MATCH(11) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ11:IU1_MULTIHIT_B_PT(11) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(11) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ12:IU1_MULTIHIT_B_PT(12) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(10) & ENTRY_MATCH(12) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ13:IU1_MULTIHIT_B_PT(13) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(10) & ENTRY_MATCH(11) &
ENTRY_MATCH(13) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ14:IU1_MULTIHIT_B_PT(14) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(10) & ENTRY_MATCH(11) &
ENTRY_MATCH(12) & ENTRY_MATCH(14) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ15:IU1_MULTIHIT_B_PT(15) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(10) & ENTRY_MATCH(11) &
ENTRY_MATCH(12) & ENTRY_MATCH(13) &
ENTRY_MATCH(15) ) , STD_ULOGIC_VECTOR'("000000000000000"));
MQQ16:IU1_MULTIHIT_B_PT(16) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(10) & ENTRY_MATCH(11) &
ENTRY_MATCH(12) & ENTRY_MATCH(13) &
ENTRY_MATCH(14) ) , STD_ULOGIC_VECTOR'("000000000000000"));
-- Table IU1_MULTIHIT_B Signal Assignments for Outputs
MQQ17:IU1_MULTIHIT_B <=
(IU1_MULTIHIT_B_PT(1) OR IU1_MULTIHIT_B_PT(2)
OR IU1_MULTIHIT_B_PT(3) OR IU1_MULTIHIT_B_PT(4)
OR IU1_MULTIHIT_B_PT(5) OR IU1_MULTIHIT_B_PT(6)
OR IU1_MULTIHIT_B_PT(7) OR IU1_MULTIHIT_B_PT(8)
OR IU1_MULTIHIT_B_PT(9) OR IU1_MULTIHIT_B_PT(10)
OR IU1_MULTIHIT_B_PT(11) OR IU1_MULTIHIT_B_PT(12)
OR IU1_MULTIHIT_B_PT(13) OR IU1_MULTIHIT_B_PT(14)
OR IU1_MULTIHIT_B_PT(15) OR IU1_MULTIHIT_B_PT(16)
);
iu1_multihit <= not iu1_multihit_b;
iu2_multihit_b_pt_d <= iu1_multihit_b_pt;
iu2_multihit_enab <= not or_reduce(iu2_multihit_b_pt_q);
-- Encoder for the iu1 phase first hit entry number
--
-- Final Table Listing
-- *INPUTS*==============*OUTPUTS*==============*
-- | | |
-- | entry_match | iu1_first_hit_entry |
-- | | | | |
-- | | | | |
-- | | | | |
-- | | 111111 | | |
-- | 0123456789012345 | 0123 |
-- *TYPE*================+======================+
-- | PPPPPPPPPPPPPPPP | PPPP |
-- *POLARITY*----------->| ++++ |
-- *PHASE*-------------->| TTTT |
-- *OPTIMIZE*----------->| AAAA |
-- *TERMS*===============+======================+
-- 1 | 0000000000000001 | 1111 |
-- 2 | 000000000000001- | 111. |
-- 3 | 00000000000001-- | 11.1 |
-- 4 | 0000000000001--- | 11.. |
-- 5 | 000000000001---- | 1.11 |
-- 6 | 00000000001----- | 1.1. |
-- 7 | 0000000001------ | 1..1 |
-- 8 | 000000001------- | 1... |
-- 9 | 00000001-------- | .111 |
-- 10 | 0000001--------- | .11. |
-- 11 | 000001---------- | .1.1 |
-- 12 | 00001----------- | .1.. |
-- 13 | 0001------------ | ..11 |
-- 14 | 001------------- | ..1. |
-- 15 | 01-------------- | ...1 |
-- *============================================*
--
-- Table IU1_FIRST_HIT_ENTRY Signal Assignments for Product Terms
MQQ18:IU1_FIRST_HIT_ENTRY_PT(1) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(10) & ENTRY_MATCH(11) &
ENTRY_MATCH(12) & ENTRY_MATCH(13) &
ENTRY_MATCH(14) & ENTRY_MATCH(15)
) , STD_ULOGIC_VECTOR'("0000000000000001"));
MQQ19:IU1_FIRST_HIT_ENTRY_PT(2) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(10) & ENTRY_MATCH(11) &
ENTRY_MATCH(12) & ENTRY_MATCH(13) &
ENTRY_MATCH(14) ) , STD_ULOGIC_VECTOR'("000000000000001"));
MQQ20:IU1_FIRST_HIT_ENTRY_PT(3) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(10) & ENTRY_MATCH(11) &
ENTRY_MATCH(12) & ENTRY_MATCH(13)
) , STD_ULOGIC_VECTOR'("00000000000001"));
MQQ21:IU1_FIRST_HIT_ENTRY_PT(4) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(10) & ENTRY_MATCH(11) &
ENTRY_MATCH(12) ) , STD_ULOGIC_VECTOR'("0000000000001"));
MQQ22:IU1_FIRST_HIT_ENTRY_PT(5) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(10) & ENTRY_MATCH(11)
) , STD_ULOGIC_VECTOR'("000000000001"));
MQQ23:IU1_FIRST_HIT_ENTRY_PT(6) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9) &
ENTRY_MATCH(10) ) , STD_ULOGIC_VECTOR'("00000000001"));
MQQ24:IU1_FIRST_HIT_ENTRY_PT(7) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) & ENTRY_MATCH(9)
) , STD_ULOGIC_VECTOR'("0000000001"));
MQQ25:IU1_FIRST_HIT_ENTRY_PT(8) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7) &
ENTRY_MATCH(8) ) , STD_ULOGIC_VECTOR'("000000001"));
MQQ26:IU1_FIRST_HIT_ENTRY_PT(9) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) & ENTRY_MATCH(7)
) , STD_ULOGIC_VECTOR'("00000001"));
MQQ27:IU1_FIRST_HIT_ENTRY_PT(10) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5) &
ENTRY_MATCH(6) ) , STD_ULOGIC_VECTOR'("0000001"));
MQQ28:IU1_FIRST_HIT_ENTRY_PT(11) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) & ENTRY_MATCH(5)
) , STD_ULOGIC_VECTOR'("000001"));
MQQ29:IU1_FIRST_HIT_ENTRY_PT(12) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3) &
ENTRY_MATCH(4) ) , STD_ULOGIC_VECTOR'("00001"));
MQQ30:IU1_FIRST_HIT_ENTRY_PT(13) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) & ENTRY_MATCH(3)
) , STD_ULOGIC_VECTOR'("0001"));
MQQ31:IU1_FIRST_HIT_ENTRY_PT(14) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1) &
ENTRY_MATCH(2) ) , STD_ULOGIC_VECTOR'("001"));
MQQ32:IU1_FIRST_HIT_ENTRY_PT(15) <=
Eq(( ENTRY_MATCH(0) & ENTRY_MATCH(1)
) , STD_ULOGIC_VECTOR'("01"));
-- Table IU1_FIRST_HIT_ENTRY Signal Assignments for Outputs
MQQ33:IU1_FIRST_HIT_ENTRY(0) <=
(IU1_FIRST_HIT_ENTRY_PT(1) OR IU1_FIRST_HIT_ENTRY_PT(2)
OR IU1_FIRST_HIT_ENTRY_PT(3) OR IU1_FIRST_HIT_ENTRY_PT(4)
OR IU1_FIRST_HIT_ENTRY_PT(5) OR IU1_FIRST_HIT_ENTRY_PT(6)
OR IU1_FIRST_HIT_ENTRY_PT(7) OR IU1_FIRST_HIT_ENTRY_PT(8)
);
MQQ34:IU1_FIRST_HIT_ENTRY(1) <=
(IU1_FIRST_HIT_ENTRY_PT(1) OR IU1_FIRST_HIT_ENTRY_PT(2)
OR IU1_FIRST_HIT_ENTRY_PT(3) OR IU1_FIRST_HIT_ENTRY_PT(4)
OR IU1_FIRST_HIT_ENTRY_PT(9) OR IU1_FIRST_HIT_ENTRY_PT(10)
OR IU1_FIRST_HIT_ENTRY_PT(11) OR IU1_FIRST_HIT_ENTRY_PT(12)
);
MQQ35:IU1_FIRST_HIT_ENTRY(2) <=
(IU1_FIRST_HIT_ENTRY_PT(1) OR IU1_FIRST_HIT_ENTRY_PT(2)
OR IU1_FIRST_HIT_ENTRY_PT(5) OR IU1_FIRST_HIT_ENTRY_PT(6)
OR IU1_FIRST_HIT_ENTRY_PT(9) OR IU1_FIRST_HIT_ENTRY_PT(10)
OR IU1_FIRST_HIT_ENTRY_PT(13) OR IU1_FIRST_HIT_ENTRY_PT(14)
);
MQQ36:IU1_FIRST_HIT_ENTRY(3) <=
(IU1_FIRST_HIT_ENTRY_PT(1) OR IU1_FIRST_HIT_ENTRY_PT(3)
OR IU1_FIRST_HIT_ENTRY_PT(5) OR IU1_FIRST_HIT_ENTRY_PT(7)
OR IU1_FIRST_HIT_ENTRY_PT(9) OR IU1_FIRST_HIT_ENTRY_PT(11)
OR IU1_FIRST_HIT_ENTRY_PT(13) OR IU1_FIRST_HIT_ENTRY_PT(15)
);
iu2_first_hit_entry_pt_d <= iu1_first_hit_entry_pt;
iu2_first_hit_entry(0) <=
(iu2_first_hit_entry_pt_q(1) or iu2_first_hit_entry_pt_q(2)
or iu2_first_hit_entry_pt_q(3) or iu2_first_hit_entry_pt_q(4)
or iu2_first_hit_entry_pt_q(5) or iu2_first_hit_entry_pt_q(6)
or iu2_first_hit_entry_pt_q(7) or iu2_first_hit_entry_pt_q(8));
iu2_first_hit_entry(1) <=
(iu2_first_hit_entry_pt_q(1) or iu2_first_hit_entry_pt_q(2)
or iu2_first_hit_entry_pt_q(3) or iu2_first_hit_entry_pt_q(4)
or iu2_first_hit_entry_pt_q(9) or iu2_first_hit_entry_pt_q(10)
or iu2_first_hit_entry_pt_q(11) or iu2_first_hit_entry_pt_q(12));
iu2_first_hit_entry(2) <=
(iu2_first_hit_entry_pt_q(1) or iu2_first_hit_entry_pt_q(2)
or iu2_first_hit_entry_pt_q(5) or iu2_first_hit_entry_pt_q(6)
or iu2_first_hit_entry_pt_q(9) or iu2_first_hit_entry_pt_q(10)
or iu2_first_hit_entry_pt_q(13) or iu2_first_hit_entry_pt_q(14));
iu2_first_hit_entry(3) <=
(iu2_first_hit_entry_pt_q(1) or iu2_first_hit_entry_pt_q(3)
or iu2_first_hit_entry_pt_q(5) or iu2_first_hit_entry_pt_q(7)
or iu2_first_hit_entry_pt_q(9) or iu2_first_hit_entry_pt_q(11)
or iu2_first_hit_entry_pt_q(13) or iu2_first_hit_entry_pt_q(15));
iu2_cam_cmp_data_d <= cam_cmp_data;
iu2_array_cmp_data_d <= array_cmp_data;
-- cam translate, search applied in iu0 or ex1 -> cam_cmp_data in iu1 or ex2
-- cam read applied in ex2 -> rd_cam_data in ex3
iu2_miss_d(0) <= ( or_reduce(iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q)) and
not iu1_flush_enab_q and not ccr2_frat_paranoia_q(9) );
iu2_miss_d(1) <= not cam_hit;
iu2_miss_sig <= iu2_miss_q(0) and iu2_miss_q(1);
iu2_multihit_d(0) <= ( cam_hit and iu1_multihit and
or_reduce(iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q)) and
not iu1_flush_enab_q and not ccr2_frat_paranoia_q(9) );
iu2_multihit_d(1) <= iu1_multihit;
iu2_multihit_sig <= iu2_multihit_q(0) and iu2_multihit_q(1);
iu2_parerr_d(0) <= ( cam_hit and iu1_multihit_b and
or_reduce(iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q)) and
not iu1_flush_enab_q and not ccr2_frat_paranoia_q(9) );
iu2_parerr_d(1) <= ( cam_hit and iu1_multihit_b and
or_reduce(iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q)) and
not iu1_flush_enab_q and not ccr2_frat_paranoia_q(9) );
iu2_parerr_sig <= (iu2_parerr_q(0) and iu2_cmp_data_parerr_epn) or
(iu2_parerr_q(1) and iu2_cmp_data_parerr_rpn);
-- 16x143 version, 42b RA
-- wr_array_data
-- 0:29 - RPN
-- 30:31 - R,C
-- 32:33 - WLC
-- 34 - ResvAttr
-- 35 - VF
-- 36:39 - U0-U3
-- 40:44 - WIMGE
-- 45:46 - UX,SX
-- 47:48 - UW,SW
-- 49:50 - UR,SR
-- 51:60 - CAM parity
-- 61:67 - Array parity
-- mmucr1_q: 0-IRRE, 1-REE, 2-CEE, 3-csync, 4-isync, 5:6-IPEI, 7:8-ICTID/ITTID
-- state: 0:pr 1:hs 2:ds 3:cm
iu2_isi_d(0) <= ( or_reduce(iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q))
and not iu1_flush_enab_q and iu1_state_q(0) and not ccr2_frat_paranoia_q(9) );
iu2_isi_d(2) <= ( or_reduce(iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q))
and not iu1_flush_enab_q and not iu1_state_q(0) and not ccr2_frat_paranoia_q(9) );
iu2_isi_d(4) <= ( or_reduce(iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q))
and not iu1_flush_enab_q and mmucr1_q(1) and not ccr2_frat_paranoia_q(9) );
iu2_isi_d(1) <= not array_cmp_data(45);
iu2_isi_d(3) <= not array_cmp_data(46);
iu2_isi_d(5) <= not array_cmp_data(30);
iu2_isi_sig <= (iu2_isi_q(0) and iu2_isi_q(1)) or
(iu2_isi_q(2) and iu2_isi_q(3)) or
(iu2_isi_q(4) and iu2_isi_q(5));
ex3_eratsx_data_d <= iu1_multihit & cam_hit & iu1_first_hit_entry;
ex3_parerr_d(0 TO thdid_width-1) <= ex2_valid_q and not(xu_ex2_flush);
ex3_parerr_d(thdid_width) <= ( cam_hit and iu1_multihit_b and ex2_ttype_q(2) and ex2_tlbsel_q(0) and not(ex2_tlbsel_q(1))
and not(ex3_ieratwe or ex4_ieratwe or ex5_ieratwe or ex6_ieratwe or ex7_ieratwe)
and or_reduce(ex2_valid_q and not(xu_ex2_flush)) );
ex3_parerr_enab <= ex3_parerr_q(thdid_width) and iu2_cmp_data_parerr_epn;
ex4_rd_array_data_d <= rd_array_data;
ex4_rd_cam_data_d <= rd_cam_data;
ex4_parerr_d(0 TO thdid_width-1) <= ex3_valid_q and not(xu_ex3_flush);
ex4_parerr_d(thdid_width) <= (ex3_ttype_q(0) and not ex3_ws_q(0) and not ex3_ws_q(1) and ex3_tlbsel_q(0) and not ex3_tlbsel_q(1)
and not(ex4_ieratwe or ex5_ieratwe or ex6_ieratwe));
ex4_parerr_d(thdid_width+1) <= (ex3_ttype_q(0) and xor_reduce(ex3_ws_q) and ex3_tlbsel_q(0) and not ex3_tlbsel_q(1)
and not(ex4_ieratwe or ex5_ieratwe or ex6_ieratwe));
ex4_parerr_enab <= (ex4_parerr_q(thdid_width) and ex4_rd_data_parerr_epn) or
(ex4_parerr_q(thdid_width+1) and ex4_rd_data_parerr_rpn);
ex4_ieen_d(0 TO thdid_width-1) <= (ex3_parerr_q(0 to thdid_width-1) and (0 to thdid_width-1 => ex3_parerr_enab) and not(xu_ex3_flush))
when (ex3_ttype_q(2)='1' )
else (iu2_valid_q and not iu2_n_flush_req_q)
when (iu2_multihit_sig='1' or iu2_parerr_sig='1')
else (others => '0');
ex4_ieen_d(thdid_width TO thdid_width+num_entry_log2-1) <= ex3_eratsx_data_q(2 to 2+num_entry_log2-1)
when (ex3_ttype_q(2)='1')
else ex3_ra_entry_q
when (ex3_ttype_q(0)='1' and ex3_ws_q="00" and ex3_tlbsel_q=TlbSel_IErat)
else ex3_ra_entry_q
when (ex3_ttype_q(0)='1' and (ex3_ws_q="01" or ex3_ws_q="10") and ex3_tlbsel_q=TlbSel_IErat)
else ex3_eratsx_data_q(2 to 2+num_entry_log2-1)
when (iu2_multihit_sig='1' or iu2_parerr_sig='1')
else (others => '0');
ex5_ieen_d(0 TO thdid_width-1) <= (ex4_ieen_q(0 to thdid_width-1) and not(xu_ex4_flush)) or
(ex4_parerr_q(0 to thdid_width-1) and (0 to thdid_width-1 => ex4_parerr_enab) and not(xu_ex4_flush));
ex5_ieen_d(thdid_width TO thdid_width+num_entry_log2-1) <= ex4_ieen_q(thdid_width to thdid_width+num_entry_log2-1);
ex6_ieen_d <= or_reduce(ex5_ieen_q(0 to thdid_width-1)) &
ex5_ieen_q(thdid_width to thdid_width+num_entry_log2-1);
-- This function is controlled by XUCR4.MMU_MCHK and CCR2.NOTLB bits.
mchk_flash_inv_d(0) <= or_reduce(iu2_valid_q and not(xu_iu_flush) and not(iu2_n_flush_req_q));
mchk_flash_inv_d(1) <= iu2_parerr_sig;
mchk_flash_inv_d(2) <= iu2_multihit_sig;
mchk_flash_inv_d(3) <= mchk_flash_inv_enab;
mchk_flash_inv_enab <= mchk_flash_inv_q(0) and (mchk_flash_inv_q(1) or mchk_flash_inv_q(2)) and not(ccr2_notlb_q) and not(xucr4_mmu_mchk_q);
iu1_flush_enab_d <= '1' when (tlb_rel_val_q(0 to 3)/="0000" and tlb_rel_val_q(4)='1')
else '1' when snoop_val_q(0 to 1)="11"
else '1' when (ex1_valid_q/="0000" and ex1_ttype_q(2)='1' and ex1_tlbsel_q=TlbSel_IErat)
else '1' when (ex6_valid_q/="0000" and ex6_ttype_q(1)='1'
and ex6_ws_q="00" and ex6_tlbsel_q=TlbSel_IErat)
else '1' when ((ex6_valid_q/="0000" and ex6_ttype_q(4 to 5)/="00") or mchk_flash_inv_enab='1' or mchk_flash_inv_q(3)='1')
else '0';
iu2_n_flush_req_d <= (iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q))
when iu1_flush_enab_q='1'
else (iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q) and not(tlb_miss_q))
when (cam_hit='0' and ccr2_notlb_q=MMU_Mode_Value and ccr2_frat_paranoia_q(9)='0')
else (others => '0');
-- adding frat paranoia for ra=ea
hold_req_d(0) <= '1' when por_hold_req(0)='1'
else '0' when ccr2_frat_paranoia_q(9)='1'
else '0' when (xu_iu_flush(0)='1' or iu_ierat_iu1_flush(0)='1')
else '0' when (tlb_rel_val_q(0)='1' and ccr2_notlb_q=MMU_Mode_Value)
else '1' when (cam_hit='0' and iu1_valid_q(0)='1'
and iu_ierat_iu1_flush(0)='0' and xu_iu_flush(0)='0' and iu1_flush_enab_q='0'
and iu2_n_flush_req_q(0)='0' and tlb_miss_q(0)='0' and ccr2_notlb_q=MMU_Mode_Value)
else '1' when (iu1_valid_q(0)='1' and iu_ierat_iu1_flush(0)='0' and xu_iu_flush(0)='0' and iu1_flush_enab_q='0'
and iu2_n_flush_req_q(0)='0' and tlb_miss_q(0)='1' and ccr2_notlb_q=MMU_Mode_Value)
else hold_req_q(0);
hold_req_d(1) <= '1' when por_hold_req(1)='1'
else '0' when ccr2_frat_paranoia_q(9)='1'
else '0' when (xu_iu_flush(1)='1' or iu_ierat_iu1_flush(1)='1')
else '0' when (tlb_rel_val_q(1)='1' and ccr2_notlb_q=MMU_Mode_Value)
else '1' when (cam_hit='0' and iu1_valid_q(1)='1'
and iu_ierat_iu1_flush(1)='0' and xu_iu_flush(1)='0' and iu1_flush_enab_q='0'
and iu2_n_flush_req_q(1)='0' and tlb_miss_q(1)='0' and ccr2_notlb_q=MMU_Mode_Value)
else '1' when (iu1_valid_q(1)='1' and iu_ierat_iu1_flush(1)='0' and xu_iu_flush(1)='0' and iu1_flush_enab_q='0'
and iu2_n_flush_req_q(1)='0' and tlb_miss_q(1)='1' and ccr2_notlb_q=MMU_Mode_Value)
else hold_req_q(1);
hold_req_d(2) <= '1' when por_hold_req(2)='1'
else '0' when ccr2_frat_paranoia_q(9)='1'
else '0' when (xu_iu_flush(2)='1' or iu_ierat_iu1_flush(2)='1')
else '0' when (tlb_rel_val_q(2)='1' and ccr2_notlb_q=MMU_Mode_Value)
else '1' when (cam_hit='0' and iu1_valid_q(2)='1'
and iu_ierat_iu1_flush(2)='0' and xu_iu_flush(2)='0' and iu1_flush_enab_q='0'
and iu2_n_flush_req_q(2)='0' and tlb_miss_q(2)='0' and ccr2_notlb_q=MMU_Mode_Value)
else '1' when (iu1_valid_q(2)='1' and iu_ierat_iu1_flush(2)='0' and xu_iu_flush(2)='0' and iu1_flush_enab_q='0'
and iu2_n_flush_req_q(2)='0' and tlb_miss_q(2)='1' and ccr2_notlb_q=MMU_Mode_Value)
else hold_req_q(2);
hold_req_d(3) <= '1' when por_hold_req(3)='1'
else '0' when ccr2_frat_paranoia_q(9)='1'
else '0' when (xu_iu_flush(3)='1' or iu_ierat_iu1_flush(3)='1')
else '0' when (tlb_rel_val_q(3)='1' and ccr2_notlb_q=MMU_Mode_Value)
else '1' when (cam_hit='0' and iu1_valid_q(3)='1'
and iu_ierat_iu1_flush(3)='0' and xu_iu_flush(3)='0' and iu1_flush_enab_q='0'
and iu2_n_flush_req_q(3)='0' and tlb_miss_q(3)='0' and ccr2_notlb_q=MMU_Mode_Value)
else '1' when (iu1_valid_q(3)='1' and iu_ierat_iu1_flush(3)='0' and xu_iu_flush(3)='0' and iu1_flush_enab_q='0'
and iu2_n_flush_req_q(3)='0' and tlb_miss_q(3)='1' and ccr2_notlb_q=MMU_Mode_Value)
else hold_req_q(3);
-- latch tlb missed response
-- adding frat paranoia for ra=ea
tlb_miss_d(0) <= '0' when (ccr2_notlb_q/=MMU_Mode_Value or por_seq_q/=PorSeq_Idle or ccr2_frat_paranoia_q(9)='1')
else '0' when xu_iu_flush(0)='1'
else hold_req_q(0) when (tlb_miss_q(0)='0' and tlb_rel_val_q(0)='1' and tlb_rel_val_q(4)='0')
else tlb_miss_q(0);
tlb_miss_d(1) <= '0' when (ccr2_notlb_q/=MMU_Mode_Value or por_seq_q/=PorSeq_Idle or ccr2_frat_paranoia_q(9)='1')
else '0' when xu_iu_flush(1)='1'
else hold_req_q(1) when (tlb_miss_q(1)='0' and tlb_rel_val_q(1)='1' and tlb_rel_val_q(4)='0')
else tlb_miss_q(1);
tlb_miss_d(2) <= '0' when (ccr2_notlb_q/=MMU_Mode_Value or por_seq_q/=PorSeq_Idle or ccr2_frat_paranoia_q(9)='1')
else '0' when xu_iu_flush(2)='1'
else hold_req_q(2) when (tlb_miss_q(2)='0' and tlb_rel_val_q(2)='1' and tlb_rel_val_q(4)='0')
else tlb_miss_q(2);
tlb_miss_d(3) <= '0' when (ccr2_notlb_q/=MMU_Mode_Value or por_seq_q/=PorSeq_Idle or ccr2_frat_paranoia_q(9)='1')
else '0' when xu_iu_flush(3)='1'
else hold_req_q(3) when (tlb_miss_q(3)='0' and tlb_rel_val_q(3)='1' and tlb_rel_val_q(4)='0')
else tlb_miss_q(3);
-- latch tlb request is in progress for act pin on cam
tlb_req_inprogress_d(0) <= '0' when (ccr2_frat_paranoia_q(9)='1' or por_hold_req(0)='1' or ccr2_notlb_q/=MMU_Mode_Value or tlb_rel_val_q(0)='1')
else '0' when (xu_iu_flush(0)='0' and iu2_valid_q(0)='1' and hold_req_q(0)='0')
else '1' when (iu2_tlbreq_q='1' and iu2_valid_q(0)='1' and ccr2_notlb_q=MMU_Mode_Value)
else tlb_req_inprogress_q(0);
tlb_req_inprogress_d(1) <= '0' when (ccr2_frat_paranoia_q(9)='1' or por_hold_req(1)='1' or ccr2_notlb_q/=MMU_Mode_Value or tlb_rel_val_q(1)='1')
else '0' when (xu_iu_flush(1)='0' and iu2_valid_q(1)='1' and hold_req_q(1)='0')
else '1' when (iu2_tlbreq_q='1' and iu2_valid_q(1)='1' and ccr2_notlb_q=MMU_Mode_Value)
else tlb_req_inprogress_q(1);
tlb_req_inprogress_d(2) <= '0' when (ccr2_frat_paranoia_q(9)='1' or por_hold_req(2)='1' or ccr2_notlb_q/=MMU_Mode_Value or tlb_rel_val_q(2)='1')
else '0' when (xu_iu_flush(2)='0' and iu2_valid_q(2)='1' and hold_req_q(2)='0')
else '1' when (iu2_tlbreq_q='1' and iu2_valid_q(2)='1' and ccr2_notlb_q=MMU_Mode_Value)
else tlb_req_inprogress_q(2);
tlb_req_inprogress_d(3) <= '0' when (ccr2_frat_paranoia_q(9)='1' or por_hold_req(3)='1' or ccr2_notlb_q/=MMU_Mode_Value or tlb_rel_val_q(3)='1')
else '0' when (xu_iu_flush(3)='0' and iu2_valid_q(3)='1' and hold_req_q(3)='0')
else '1' when (iu2_tlbreq_q='1' and iu2_valid_q(3)='1' and ccr2_notlb_q=MMU_Mode_Value)
else tlb_req_inprogress_q(3);
iu2_tlbreq_d <= '1' when (cam_hit='0' and iu1_flush_enab_q='0' and ccr2_notlb_q=MMU_Mode_Value and ccr2_frat_paranoia_q(9)='0' and
(iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q) and not(tlb_miss_q) and not(hold_req_q))/="0000")
else '0';
snoop_val_d(0) <= mm_iu_ierat_snoop_val when snoop_val_q(0)='0'
else '0' when (tlb_rel_val_q(4)='0' and snoop_val_q(1)='1')
else snoop_val_q(0);
snoop_val_d(1) <= not iu_ierat_ium1_back_inv;
snoop_val_d(2) <= '0' when (tlb_rel_val_q(4)='1' or snoop_val_q(1)='0')
else snoop_val_q(0);
snoop_attr_d <= mm_iu_ierat_snoop_attr when snoop_val_q(0)='0'
else snoop_attr_q;
snoop_addr_d <= mm_iu_ierat_snoop_vpn when snoop_val_q(0)='0'
else snoop_addr_q;
iu_mm_ierat_snoop_ack <= snoop_val_q(2);
gen64_holdreg: if rs_data_width = 64 generate
rpn_holdreg0_d(0 TO 19) <= ex6_data_in_q(0 to 19) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(32 to 51) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg0_q(0 to 19);
rpn_holdreg0_d(20 TO 31) <= ex6_data_in_q(20 to 31) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(52 to 63) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg0_q(20 to 31);
rpn_holdreg0_d(32 TO 51) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(32 to 51) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg0_q(32 to 51);
rpn_holdreg0_d(52 TO 63) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(52 to 63) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg0_q(52 to 63);
rpn_holdreg1_d(0 TO 19) <= ex6_data_in_q(0 to 19) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(32 to 51) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg1_q(0 to 19);
rpn_holdreg1_d(20 TO 31) <= ex6_data_in_q(20 to 31) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(52 to 63) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg1_q(20 to 31);
rpn_holdreg1_d(32 TO 51) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(32 to 51) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg1_q(32 to 51);
rpn_holdreg1_d(52 TO 63) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(52 to 63) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg1_q(52 to 63);
rpn_holdreg2_d(0 TO 19) <= ex6_data_in_q(0 to 19) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(32 to 51) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg2_q(0 to 19);
rpn_holdreg2_d(20 TO 31) <= ex6_data_in_q(20 to 31) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(52 to 63) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg2_q(20 to 31);
rpn_holdreg2_d(32 TO 51) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(32 to 51) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg2_q(32 to 51);
rpn_holdreg2_d(52 TO 63) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(52 to 63) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg2_q(52 to 63);
rpn_holdreg3_d(0 TO 19) <= ex6_data_in_q(0 to 19) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(32 to 51) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg3_q(0 to 19);
rpn_holdreg3_d(20 TO 31) <= ex6_data_in_q(20 to 31) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(52 to 63) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg3_q(20 to 31);
rpn_holdreg3_d(32 TO 51) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(32 to 51) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg3_q(32 to 51);
rpn_holdreg3_d(52 TO 63) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='1')
else ex6_data_in_q(52 to 63) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat and ex6_state_q(3)='0')
else rpn_holdreg3_q(52 to 63);
end generate gen64_holdreg;
gen32_holdreg: if rs_data_width = 32 generate
rpn_holdreg0_d(32 TO 51) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg0_q(32 to 51);
rpn_holdreg0_d(20 TO 31) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg0_q(20 to 31);
rpn_holdreg0_d(52 TO 63) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg0_q(52 to 63);
rpn_holdreg0_d(0 TO 19) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg0_q(0 to 19);
rpn_holdreg1_d(32 TO 51) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg1_q(32 to 51);
rpn_holdreg1_d(20 TO 31) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg1_q(20 to 31);
rpn_holdreg1_d(52 TO 63) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg1_q(52 to 63);
rpn_holdreg1_d(0 TO 19) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg1_q(0 to 19);
rpn_holdreg2_d(32 TO 51) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg2_q(32 to 51);
rpn_holdreg2_d(20 TO 31) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg2_q(20 to 31);
rpn_holdreg2_d(52 TO 63) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg2_q(52 to 63);
rpn_holdreg2_d(0 TO 19) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg2_q(0 to 19);
rpn_holdreg3_d(32 TO 51) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg3_q(32 to 51);
rpn_holdreg3_d(20 TO 31) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="01" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg3_q(20 to 31);
rpn_holdreg3_d(52 TO 63) <= ex6_data_in_q(52 to 63) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg3_q(52 to 63);
rpn_holdreg3_d(0 TO 19) <= ex6_data_in_q(32 to 51) when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and
ex6_ws_q="10" and ex6_tlbsel_q=TlbSel_IErat)
else rpn_holdreg3_q(0 to 19);
end generate gen32_holdreg;
ex6_ieratwe_ws3 <= or_reduce(ex6_valid_q) and ex6_ttype_q(1) and Eq(ex6_ws_q,"11") and Eq(ex6_tlbsel_q,TlbSel_IErat);
watermark_d <= ex6_data_in_q(64-watermark_width to 63) when ex6_ieratwe_ws3='1'
else watermark_q;
-- mmucr1_q: 0-IRRE, 1-REE, 2-CEE, 3-csync, 4-isync, 5:6-IPEI, 7:8-ICTID/ITTID
-- entry pointer for round-robin mode
eptr_d <= (others => '0') when (ex6_ieratwe_ws3='1' and mmucr1_q(0)='1')
else (others => '0') when (eptr_q="1111" or eptr_q=watermark_q) and
( (ex6_valid_q /= "0000" and ex6_ttype_q(1)='1' and ex6_ws_q="00" and
ex6_tlbsel_q=TlbSel_IErat and mmucr1_q(0)='1') or
(tlb_rel_val_q(0 to 3)/="0000" and tlb_rel_val_q(4)='1' and
tlb_rel_data_q(eratpos_wren)='1' and mmucr1_q(0)='1') )
else eptr_p1 when ( (ex6_valid_q /= "0000" and ex6_ttype_q(1)='1' and ex6_ws_q="00" and
ex6_tlbsel_q=TlbSel_IErat and mmucr1_q(0)='1') or
(tlb_rel_val_q(0 to 3)/="0000" and tlb_rel_val_q(4)='1' and
tlb_rel_data_q(eratpos_wren)='1' and mmucr1_q(0)='1') )
else eptr_q;
eptr_p1 <= "0001" when eptr_q="0000"
else "0010" when eptr_q="0001"
else "0011" when eptr_q="0010"
else "0100" when eptr_q="0011"
else "0101" when eptr_q="0100"
else "0110" when eptr_q="0101"
else "0111" when eptr_q="0110"
else "1000" when eptr_q="0111"
else "1001" when eptr_q="1000"
else "1010" when eptr_q="1001"
else "1011" when eptr_q="1010"
else "1100" when eptr_q="1011"
else "1101" when eptr_q="1100"
else "1110" when eptr_q="1101"
else "1111" when eptr_q="1110"
else "0000";
lru_way_is_written <= Eq(lru_way_encode, ex6_ra_entry_q);
lru_way_is_hit_entry <= Eq(lru_way_encode, iu1_first_hit_entry);
-- lru_update_event
-- 0: tlb reload
-- 1: invalidate snoop
-- 2: csync or isync enabled
-- 3: eratwe WS=0
-- 4: fetch hit
-- 5: iu2 cam write type events
-- 6: iu2 cam invalidate type events
-- 7: iu2 cam translation type events
-- 8: iu2, superset of non-translation events
lru_update_event_d(0) <= ( tlb_rel_data_q(eratpos_wren) and or_reduce(tlb_rel_val_q(0 to 3)) and tlb_rel_val_q(4) );
lru_update_event_d(1) <= ( snoop_val_q(0) and snoop_val_q(1) );
lru_update_event_d(2) <= ( or_reduce(ex6_valid_q) and (ex6_ttype_q(4) or ex6_ttype_q(5)) );
lru_update_event_d(3) <= ( or_reduce(ex6_valid_q) and ex6_ttype_q(1) and not ex6_ws_q(0) and not ex6_ws_q(1)
and ex6_tlbsel_q(0) and not ex6_tlbsel_q(1) and lru_way_is_written );
lru_update_event_d(4) <= ( or_reduce(iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q))
and not iu1_flush_enab_q and cam_hit and lru_way_is_hit_entry );
lru_update_event_d(5) <= lru_update_event_q(0) or lru_update_event_q(3);
lru_update_event_d(6) <= lru_update_event_q(1) or lru_update_event_q(2);
lru_update_event_d(7) <= ( or_reduce(iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q))
and not iu1_flush_enab_q and cam_hit and lru_way_is_hit_entry );
lru_update_event_d(8) <= lru_update_event_q(0) or lru_update_event_q(1) or lru_update_event_q(2) or lru_update_event_q(3);
-- LRU next state.. update bits for which override is zero (Op=0)
-- effective LRU is what is used to choose entry to update
-- lru new value is valid 2 clocks after reload, invalidate, eratwe, or fetch hit
lru_d(1) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(1)='1' and mmucr1_q(0)='0' and lru_op_vec(1)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(1)='1' and mmucr1_q(0)='0' and lru_op_vec(1)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(1);
lru_eff(1) <= (lru_vp_vec(1) and lru_op_vec(1)) or (lru_q(1) and not lru_op_vec(1));
lru_d(2) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(2)='1' and mmucr1_q(0)='0' and lru_op_vec(2)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(2)='1' and mmucr1_q(0)='0' and lru_op_vec(2)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(2);
lru_eff(2) <= (lru_vp_vec(2) and lru_op_vec(2)) or (lru_q(2) and not lru_op_vec(2));
lru_d(3) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(3)='1' and mmucr1_q(0)='0' and lru_op_vec(3)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(3)='1' and mmucr1_q(0)='0' and lru_op_vec(3)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(3);
lru_eff(3) <= (lru_vp_vec(3) and lru_op_vec(3)) or (lru_q(3) and not lru_op_vec(3));
lru_d(4) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(4)='1' and mmucr1_q(0)='0' and lru_op_vec(4)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(4)='1' and mmucr1_q(0)='0' and lru_op_vec(4)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(4);
lru_eff(4) <= (lru_vp_vec(4) and lru_op_vec(4)) or (lru_q(4) and not lru_op_vec(4));
lru_d(5) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(5)='1' and mmucr1_q(0)='0' and lru_op_vec(5)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(5)='1' and mmucr1_q(0)='0' and lru_op_vec(5)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(5);
lru_eff(5) <= (lru_vp_vec(5) and lru_op_vec(5)) or (lru_q(5) and not lru_op_vec(5));
lru_d(6) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(6)='1' and mmucr1_q(0)='0' and lru_op_vec(6)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(6)='1' and mmucr1_q(0)='0' and lru_op_vec(6)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(6);
lru_eff(6) <= (lru_vp_vec(6) and lru_op_vec(6)) or (lru_q(6) and not lru_op_vec(6));
lru_d(7) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(7)='1' and mmucr1_q(0)='0' and lru_op_vec(7)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(7)='1' and mmucr1_q(0)='0' and lru_op_vec(7)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(7);
lru_eff(7) <= (lru_vp_vec(7) and lru_op_vec(7)) or (lru_q(7) and not lru_op_vec(7));
lru_d(8) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(8)='1' and mmucr1_q(0)='0' and lru_op_vec(8)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(8)='1' and mmucr1_q(0)='0' and lru_op_vec(8)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(8);
lru_eff(8) <= (lru_vp_vec(8) and lru_op_vec(8)) or (lru_q(8) and not lru_op_vec(8));
lru_d(9) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(9)='1' and mmucr1_q(0)='0' and lru_op_vec(9)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(9)='1' and mmucr1_q(0)='0' and lru_op_vec(9)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(9);
lru_eff(9) <= (lru_vp_vec(9) and lru_op_vec(9)) or (lru_q(9) and not lru_op_vec(9));
lru_d(10) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(10)='1' and mmucr1_q(0)='0' and lru_op_vec(10)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(10)='1' and mmucr1_q(0)='0' and lru_op_vec(10)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(10);
lru_eff(10) <= (lru_vp_vec(10) and lru_op_vec(10)) or (lru_q(10) and not lru_op_vec(10));
lru_d(11) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(11)='1' and mmucr1_q(0)='0' and lru_op_vec(11)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(11)='1' and mmucr1_q(0)='0' and lru_op_vec(11)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(11);
lru_eff(11) <= (lru_vp_vec(11) and lru_op_vec(11)) or (lru_q(11) and not lru_op_vec(11));
lru_d(12) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(12)='1' and mmucr1_q(0)='0' and lru_op_vec(12)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(12)='1' and mmucr1_q(0)='0' and lru_op_vec(12)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(12);
lru_eff(12) <= (lru_vp_vec(12) and lru_op_vec(12)) or (lru_q(12) and not lru_op_vec(12));
lru_d(13) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(13)='1' and mmucr1_q(0)='0' and lru_op_vec(13)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(13)='1' and mmucr1_q(0)='0' and lru_op_vec(13)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(13);
lru_eff(13) <= (lru_vp_vec(13) and lru_op_vec(13)) or (lru_q(13) and not lru_op_vec(13));
lru_d(14) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(14)='1' and mmucr1_q(0)='0' and lru_op_vec(14)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(14)='1' and mmucr1_q(0)='0' and lru_op_vec(14)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(14);
lru_eff(14) <= (lru_vp_vec(14) and lru_op_vec(14)) or (lru_q(14) and not lru_op_vec(14));
lru_d(15) <= '0' when ((ex6_ieratwe_ws3='1' and mmucr1_q(0)='0') or flash_invalidate='1')
else '0' when lru_reset_vec(15)='1' and mmucr1_q(0)='0' and lru_op_vec(15)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else '1' when lru_set_vec(15)='1' and mmucr1_q(0)='0' and lru_op_vec(15)='0' and ccr2_frat_paranoia_q(9)='0' and
(lru_update_event_q(8)='1' or (lru_update_event_q(4) and not(iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig))='1')
else lru_q(15);
lru_eff(15) <= (lru_vp_vec(15) and lru_op_vec(15)) or (lru_q(15) and not lru_op_vec(15));
-- RMT override enable: Op= OR(all RMT entries below and left of p) XOR OR(all RMT entries below and right of p)
lru_op_vec(1) <= (lru_rmt_vec(0) or lru_rmt_vec(1) or lru_rmt_vec(2) or lru_rmt_vec(3) or
lru_rmt_vec(4) or lru_rmt_vec(5) or lru_rmt_vec(6) or lru_rmt_vec(7)) xor
(lru_rmt_vec(8) or lru_rmt_vec(9) or lru_rmt_vec(10) or lru_rmt_vec(11) or
lru_rmt_vec(12) or lru_rmt_vec(13) or lru_rmt_vec(14) or lru_rmt_vec(15));
lru_op_vec(2) <= (lru_rmt_vec(0) or lru_rmt_vec(1) or lru_rmt_vec(2) or lru_rmt_vec(3)) xor
(lru_rmt_vec(4) or lru_rmt_vec(5) or lru_rmt_vec(6) or lru_rmt_vec(7));
lru_op_vec(3) <= (lru_rmt_vec(8) or lru_rmt_vec(9) or lru_rmt_vec(10) or lru_rmt_vec(11)) xor
(lru_rmt_vec(12) or lru_rmt_vec(13) or lru_rmt_vec(14) or lru_rmt_vec(15));
lru_op_vec(4) <= (lru_rmt_vec(0) or lru_rmt_vec(1)) xor (lru_rmt_vec(2) or lru_rmt_vec(3));
lru_op_vec(5) <= (lru_rmt_vec(4) or lru_rmt_vec(5)) xor (lru_rmt_vec(6) or lru_rmt_vec(7));
lru_op_vec(6) <= (lru_rmt_vec(8) or lru_rmt_vec(9)) xor (lru_rmt_vec(10) or lru_rmt_vec(11));
lru_op_vec(7) <= (lru_rmt_vec(12) or lru_rmt_vec(13)) xor (lru_rmt_vec(14) or lru_rmt_vec(15));
lru_op_vec(8) <= lru_rmt_vec(0) xor lru_rmt_vec(1);
lru_op_vec(9) <= lru_rmt_vec(2) xor lru_rmt_vec(3);
lru_op_vec(10) <= lru_rmt_vec(4) xor lru_rmt_vec(5);
lru_op_vec(11) <= lru_rmt_vec(6) xor lru_rmt_vec(7);
lru_op_vec(12) <= lru_rmt_vec(8) xor lru_rmt_vec(9);
lru_op_vec(13) <= lru_rmt_vec(10) xor lru_rmt_vec(11);
lru_op_vec(14) <= lru_rmt_vec(12) xor lru_rmt_vec(13);
lru_op_vec(15) <= lru_rmt_vec(14) xor lru_rmt_vec(15);
-- RMT override value: Vp= OR(all RMT entries below and right of p)
lru_vp_vec(1) <= (lru_rmt_vec(8) or lru_rmt_vec(9) or lru_rmt_vec(10) or lru_rmt_vec(11) or
lru_rmt_vec(12) or lru_rmt_vec(13) or lru_rmt_vec(14) or lru_rmt_vec(15));
lru_vp_vec(2) <= (lru_rmt_vec(4) or lru_rmt_vec(5) or lru_rmt_vec(6) or lru_rmt_vec(7));
lru_vp_vec(3) <= (lru_rmt_vec(12) or lru_rmt_vec(13) or lru_rmt_vec(14) or lru_rmt_vec(15));
lru_vp_vec(4) <= (lru_rmt_vec(2) or lru_rmt_vec(3));
lru_vp_vec(5) <= (lru_rmt_vec(6) or lru_rmt_vec(7));
lru_vp_vec(6) <= (lru_rmt_vec(10) or lru_rmt_vec(11));
lru_vp_vec(7) <= (lru_rmt_vec(14) or lru_rmt_vec(15));
lru_vp_vec(8) <= lru_rmt_vec(1);
lru_vp_vec(9) <= lru_rmt_vec(3);
lru_vp_vec(10) <= lru_rmt_vec(5);
lru_vp_vec(11) <= lru_rmt_vec(7);
lru_vp_vec(12) <= lru_rmt_vec(9);
lru_vp_vec(13) <= lru_rmt_vec(11);
lru_vp_vec(14) <= lru_rmt_vec(13);
lru_vp_vec(15) <= lru_rmt_vec(15);
-- mmucr1_q: 0-IRRE, 1-REE, 2-CEE, 3-csync, 4-isync, 5:6-IPEI, 7:8-ICTID/ITTID
-- Encoder for the LRU watermark psuedo-RMT
--
-- Final Table Listing
-- *INPUTS*==================*OUTPUTS*============*
-- | | |
-- | mmucr1_q | lru_rmt_vec |
-- | | watermark_q | | |
-- | | | | | |
-- | | | | | |
-- | | | | | 111111 |
-- | 012345678 0123 | 0123456789012345 |
-- *TYPE*====================+====================+
-- | PPPPPPPPP PPPP | PPPPPPPPPPPPPPPP |
-- *POLARITY*--------------->| ++++++++++++++++ |
-- *PHASE*------------------>| TTTTTTTTTTTTTTTT |
-- *OPTIMIZE*--------------->| AAAAAAAAAAAAAAAA |
-- *TERMS*===================+====================+
-- 1 | --------- 1111 | ...............1 |
-- 2 | --------- -111 | .......1........ |
-- 3 | --------- 1-11 | ...........1.... |
-- 4 | --------- --11 | ...1............ |
-- 5 | --------- 11-1 | .............1.. |
-- 6 | --------- -1-1 | .....1.......... |
-- 7 | --------- 1--1 | .........1...... |
-- 8 | --------- ---1 | .1.............. |
-- 9 | --------- 111- | .............11. |
-- 10 | --------- -11- | .....11......... |
-- 11 | --------- 1-1- | .........11..... |
-- 12 | --------- --1- | .11............. |
-- 13 | --------- 11-- | .........1111... |
-- 14 | --------- -1-- | .1111........... |
-- 15 | --------- 1--- | .11111111....... |
-- 16 | 1-------- ---- | .111111111111111 |
-- 17 | --------- ---- | 1............... |
-- *==============================================*
--
-- Table LRU_RMT_VEC Signal Assignments for Product Terms
MQQ37:LRU_RMT_VEC_PT(1) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(1) &
WATERMARK_Q(2) & WATERMARK_Q(3)
) , STD_ULOGIC_VECTOR'("1111"));
MQQ38:LRU_RMT_VEC_PT(2) <=
Eq(( WATERMARK_Q(1) & WATERMARK_Q(2) &
WATERMARK_Q(3) ) , STD_ULOGIC_VECTOR'("111"));
MQQ39:LRU_RMT_VEC_PT(3) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(2) &
WATERMARK_Q(3) ) , STD_ULOGIC_VECTOR'("111"));
MQQ40:LRU_RMT_VEC_PT(4) <=
Eq(( WATERMARK_Q(2) & WATERMARK_Q(3)
) , STD_ULOGIC_VECTOR'("11"));
MQQ41:LRU_RMT_VEC_PT(5) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(1) &
WATERMARK_Q(3) ) , STD_ULOGIC_VECTOR'("111"));
MQQ42:LRU_RMT_VEC_PT(6) <=
Eq(( WATERMARK_Q(1) & WATERMARK_Q(3)
) , STD_ULOGIC_VECTOR'("11"));
MQQ43:LRU_RMT_VEC_PT(7) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(3)
) , STD_ULOGIC_VECTOR'("11"));
MQQ44:LRU_RMT_VEC_PT(8) <=
Eq(( WATERMARK_Q(3) ) , STD_ULOGIC'('1'));
MQQ45:LRU_RMT_VEC_PT(9) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(1) &
WATERMARK_Q(2) ) , STD_ULOGIC_VECTOR'("111"));
MQQ46:LRU_RMT_VEC_PT(10) <=
Eq(( WATERMARK_Q(1) & WATERMARK_Q(2)
) , STD_ULOGIC_VECTOR'("11"));
MQQ47:LRU_RMT_VEC_PT(11) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(2)
) , STD_ULOGIC_VECTOR'("11"));
MQQ48:LRU_RMT_VEC_PT(12) <=
Eq(( WATERMARK_Q(2) ) , STD_ULOGIC'('1'));
MQQ49:LRU_RMT_VEC_PT(13) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(1)
) , STD_ULOGIC_VECTOR'("11"));
MQQ50:LRU_RMT_VEC_PT(14) <=
Eq(( WATERMARK_Q(1) ) , STD_ULOGIC'('1'));
MQQ51:LRU_RMT_VEC_PT(15) <=
Eq(( WATERMARK_Q(0) ) , STD_ULOGIC'('1'));
MQQ52:LRU_RMT_VEC_PT(16) <=
Eq(( MMUCR1_Q(0) ) , STD_ULOGIC'('1'));
MQQ53:LRU_RMT_VEC_PT(17) <=
'1';
-- Table LRU_RMT_VEC Signal Assignments for Outputs
MQQ54:LRU_RMT_VEC(0) <=
(LRU_RMT_VEC_PT(17));
MQQ55:LRU_RMT_VEC(1) <=
(LRU_RMT_VEC_PT(8) OR LRU_RMT_VEC_PT(12)
OR LRU_RMT_VEC_PT(14) OR LRU_RMT_VEC_PT(15)
OR LRU_RMT_VEC_PT(16));
MQQ56:LRU_RMT_VEC(2) <=
(LRU_RMT_VEC_PT(12) OR LRU_RMT_VEC_PT(14)
OR LRU_RMT_VEC_PT(15) OR LRU_RMT_VEC_PT(16)
);
MQQ57:LRU_RMT_VEC(3) <=
(LRU_RMT_VEC_PT(4) OR LRU_RMT_VEC_PT(14)
OR LRU_RMT_VEC_PT(15) OR LRU_RMT_VEC_PT(16)
);
MQQ58:LRU_RMT_VEC(4) <=
(LRU_RMT_VEC_PT(14) OR LRU_RMT_VEC_PT(15)
OR LRU_RMT_VEC_PT(16));
MQQ59:LRU_RMT_VEC(5) <=
(LRU_RMT_VEC_PT(6) OR LRU_RMT_VEC_PT(10)
OR LRU_RMT_VEC_PT(15) OR LRU_RMT_VEC_PT(16)
);
MQQ60:LRU_RMT_VEC(6) <=
(LRU_RMT_VEC_PT(10) OR LRU_RMT_VEC_PT(15)
OR LRU_RMT_VEC_PT(16));
MQQ61:LRU_RMT_VEC(7) <=
(LRU_RMT_VEC_PT(2) OR LRU_RMT_VEC_PT(15)
OR LRU_RMT_VEC_PT(16));
MQQ62:LRU_RMT_VEC(8) <=
(LRU_RMT_VEC_PT(15) OR LRU_RMT_VEC_PT(16)
);
MQQ63:LRU_RMT_VEC(9) <=
(LRU_RMT_VEC_PT(7) OR LRU_RMT_VEC_PT(11)
OR LRU_RMT_VEC_PT(13) OR LRU_RMT_VEC_PT(16)
);
MQQ64:LRU_RMT_VEC(10) <=
(LRU_RMT_VEC_PT(11) OR LRU_RMT_VEC_PT(13)
OR LRU_RMT_VEC_PT(16));
MQQ65:LRU_RMT_VEC(11) <=
(LRU_RMT_VEC_PT(3) OR LRU_RMT_VEC_PT(13)
OR LRU_RMT_VEC_PT(16));
MQQ66:LRU_RMT_VEC(12) <=
(LRU_RMT_VEC_PT(13) OR LRU_RMT_VEC_PT(16)
);
MQQ67:LRU_RMT_VEC(13) <=
(LRU_RMT_VEC_PT(5) OR LRU_RMT_VEC_PT(9)
OR LRU_RMT_VEC_PT(16));
MQQ68:LRU_RMT_VEC(14) <=
(LRU_RMT_VEC_PT(9) OR LRU_RMT_VEC_PT(16)
);
MQQ69:LRU_RMT_VEC(15) <=
(LRU_RMT_VEC_PT(1) OR LRU_RMT_VEC_PT(16)
);
--
-- Final Table Listing
-- *INPUTS*==================*OUTPUTS*===============*
-- | | |
-- | mmucr1_q | lru_watermark_mask |
-- | | watermark_q | | |
-- | | | | | |
-- | | | | | |
-- | | | | | 111111 |
-- | 012345678 0123 | 0123456789012345 |
-- *TYPE*====================+=======================+
-- | PPPPPPPPP PPPP | PPPPPPPPPPPPPPPP |
-- *POLARITY*--------------->| ++++++++++++++++ |
-- *PHASE*------------------>| TTTTTTTTTTTTTTTT |
-- *OPTIMIZE*--------------->| AAAAAAAAAAAAAAAA |
-- *TERMS*===================+=======================+
-- 1 | --------- 0000 | .1.............. |
-- 2 | --------- -000 | .........1...... |
-- 3 | --------- 0-00 | .....1.......... |
-- 4 | --------- --00 | .............1.. |
-- 5 | --------- 00-0 | ...1............ |
-- 6 | --------- -0-0 | ...........1.... |
-- 7 | --------- 0--0 | .......1........ |
-- 8 | --------- ---0 | ...............1 |
-- 9 | --------- 000- | ..11............ |
-- 10 | --------- -00- | ..........11.... |
-- 11 | --------- 0-0- | ......11........ |
-- 12 | --------- --0- | ..............11 |
-- 13 | --------- 00-- | ....1111........ |
-- 14 | --------- -0-- | ............1111 |
-- 15 | --------- 0--- | ........11111111 |
-- *=================================================*
--
-- Table LRU_WATERMARK_MASK Signal Assignments for Product Terms
MQQ70:LRU_WATERMARK_MASK_PT(1) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(1) &
WATERMARK_Q(2) & WATERMARK_Q(3)
) , STD_ULOGIC_VECTOR'("0000"));
MQQ71:LRU_WATERMARK_MASK_PT(2) <=
Eq(( WATERMARK_Q(1) & WATERMARK_Q(2) &
WATERMARK_Q(3) ) , STD_ULOGIC_VECTOR'("000"));
MQQ72:LRU_WATERMARK_MASK_PT(3) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(2) &
WATERMARK_Q(3) ) , STD_ULOGIC_VECTOR'("000"));
MQQ73:LRU_WATERMARK_MASK_PT(4) <=
Eq(( WATERMARK_Q(2) & WATERMARK_Q(3)
) , STD_ULOGIC_VECTOR'("00"));
MQQ74:LRU_WATERMARK_MASK_PT(5) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(1) &
WATERMARK_Q(3) ) , STD_ULOGIC_VECTOR'("000"));
MQQ75:LRU_WATERMARK_MASK_PT(6) <=
Eq(( WATERMARK_Q(1) & WATERMARK_Q(3)
) , STD_ULOGIC_VECTOR'("00"));
MQQ76:LRU_WATERMARK_MASK_PT(7) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(3)
) , STD_ULOGIC_VECTOR'("00"));
MQQ77:LRU_WATERMARK_MASK_PT(8) <=
Eq(( WATERMARK_Q(3) ) , STD_ULOGIC'('0'));
MQQ78:LRU_WATERMARK_MASK_PT(9) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(1) &
WATERMARK_Q(2) ) , STD_ULOGIC_VECTOR'("000"));
MQQ79:LRU_WATERMARK_MASK_PT(10) <=
Eq(( WATERMARK_Q(1) & WATERMARK_Q(2)
) , STD_ULOGIC_VECTOR'("00"));
MQQ80:LRU_WATERMARK_MASK_PT(11) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(2)
) , STD_ULOGIC_VECTOR'("00"));
MQQ81:LRU_WATERMARK_MASK_PT(12) <=
Eq(( WATERMARK_Q(2) ) , STD_ULOGIC'('0'));
MQQ82:LRU_WATERMARK_MASK_PT(13) <=
Eq(( WATERMARK_Q(0) & WATERMARK_Q(1)
) , STD_ULOGIC_VECTOR'("00"));
MQQ83:LRU_WATERMARK_MASK_PT(14) <=
Eq(( WATERMARK_Q(1) ) , STD_ULOGIC'('0'));
MQQ84:LRU_WATERMARK_MASK_PT(15) <=
Eq(( WATERMARK_Q(0) ) , STD_ULOGIC'('0'));
-- Table LRU_WATERMARK_MASK Signal Assignments for Outputs
MQQ85:LRU_WATERMARK_MASK(0) <=
('0');
MQQ86:LRU_WATERMARK_MASK(1) <=
(LRU_WATERMARK_MASK_PT(1));
MQQ87:LRU_WATERMARK_MASK(2) <=
(LRU_WATERMARK_MASK_PT(9));
MQQ88:LRU_WATERMARK_MASK(3) <=
(LRU_WATERMARK_MASK_PT(5) OR LRU_WATERMARK_MASK_PT(9)
);
MQQ89:LRU_WATERMARK_MASK(4) <=
(LRU_WATERMARK_MASK_PT(13));
MQQ90:LRU_WATERMARK_MASK(5) <=
(LRU_WATERMARK_MASK_PT(3) OR LRU_WATERMARK_MASK_PT(13)
);
MQQ91:LRU_WATERMARK_MASK(6) <=
(LRU_WATERMARK_MASK_PT(11) OR LRU_WATERMARK_MASK_PT(13)
);
MQQ92:LRU_WATERMARK_MASK(7) <=
(LRU_WATERMARK_MASK_PT(7) OR LRU_WATERMARK_MASK_PT(11)
OR LRU_WATERMARK_MASK_PT(13));
MQQ93:LRU_WATERMARK_MASK(8) <=
(LRU_WATERMARK_MASK_PT(15));
MQQ94:LRU_WATERMARK_MASK(9) <=
(LRU_WATERMARK_MASK_PT(2) OR LRU_WATERMARK_MASK_PT(15)
);
MQQ95:LRU_WATERMARK_MASK(10) <=
(LRU_WATERMARK_MASK_PT(10) OR LRU_WATERMARK_MASK_PT(15)
);
MQQ96:LRU_WATERMARK_MASK(11) <=
(LRU_WATERMARK_MASK_PT(6) OR LRU_WATERMARK_MASK_PT(10)
OR LRU_WATERMARK_MASK_PT(15));
MQQ97:LRU_WATERMARK_MASK(12) <=
(LRU_WATERMARK_MASK_PT(14) OR LRU_WATERMARK_MASK_PT(15)
);
MQQ98:LRU_WATERMARK_MASK(13) <=
(LRU_WATERMARK_MASK_PT(4) OR LRU_WATERMARK_MASK_PT(14)
OR LRU_WATERMARK_MASK_PT(15));
MQQ99:LRU_WATERMARK_MASK(14) <=
(LRU_WATERMARK_MASK_PT(12) OR LRU_WATERMARK_MASK_PT(14)
OR LRU_WATERMARK_MASK_PT(15));
MQQ100:LRU_WATERMARK_MASK(15) <=
(LRU_WATERMARK_MASK_PT(8) OR LRU_WATERMARK_MASK_PT(12)
OR LRU_WATERMARK_MASK_PT(14) OR LRU_WATERMARK_MASK_PT(15)
);
entry_valid_watermarked <= entry_valid_q or lru_watermark_mask;
-- lru_update_event
-- 0: tlb reload
-- 1: invalidate snoop
-- 2: csync or isync enabled
-- 3: eratwe WS=0
-- 4: fetch hit
-- 5: iu2 cam write type events
-- 6: iu2 cam invalidate type events
-- 7: iu2 cam translation type events
-- 8: superset, ex2
-- 9: superset, delayed to ex3
-- logic for the LRU reset and set bit vectors
-- ?TABLE lru_set_reset_vec LISTING(final) OPTIMIZE PARMS(ON-SET, OFF-SET);
--
-- Final Table Listing
-- *INPUTS*======================================================*OUTPUTS*===========================*
-- | | |
-- | lru_update_event_q | lru_reset_vec |
-- | | entry_valid_watermarked | | lru_set_vec |
-- | | | lru_q | | | |
-- | | | | entry_match_q | | | |
-- | | | | | | | | |
-- | | | 111111 | 111111 | 111111 | | 111111 | 111111 |
-- | 012345678 0123456789012345 123456789012345 0123456789012345 | 123456789012345 123456789012345 |
-- *TYPE*========================================================+===================================+
-- | PPPPPPPPP PPPPPPPPPPPPPPPP PPPPPPPPPPPPPPP PPPPPPPPPPPPPPPP | PPPPPPPPPPPPPPP PPPPPPPPPPPPPPP |
-- *POLARITY*--------------------------------------------------->| +++++++++++++++ +++++++++++++++ |
-- *PHASE*------------------------------------------------------>| TTTTTTTTTTTTTTT TTTTTTTTTTTTTTT |
-- *OPTIMIZE*--------------------------------------------------->| AAAAAAAAAAAAAAA BBBBBBBBBBBBBBB |
-- *TERMS*=======================================================+===================================+
-- 1 | -----001- 1111111111111111 --------------- 0000000000000001 | 1.1...1.......1 ............... |
-- 2 | -----001- 1111111111111111 --------------- 000000000000001- | 1.1...1........ ............... |
-- 3 | -----001- 111111111111111- --------------- 000000000000001- | ............... ..............1 |
-- 4 | -----001- 1111111111111111 --------------- 00000000000001-- | 1.1..........1. ............... |
-- 5 | -----001- 11111111111111-- --------------- 000000000000-1-- | ............... ......1........ |
-- 6 | -----001- 1111111111111111 --------------- 0000000000001--- | 1.1............ ......1......1. |
-- 7 | -----001- 1111111111111111 --------------- 000000000001---- | 1....1......1.. ............... |
-- 8 | -----001- 111111111111---- --------------- 00000000---1---- | ............... ..1............ |
-- 9 | -----001- 1111111111111111 --------------- 00000000001----- | 1....1......... ..1.........1.. |
-- 10 | -----001- 1111111111111111 --------------- 0000000001------ | 1..........1... ............... |
-- 11 | -----001- 1111111111111111 --------------- 00000000-1------ | ............... ..1..1......... |
-- 12 | -----001- 1111111111111111 --------------- 000000001------- | ............... ..1..1.....1... |
-- 13 | -----001- --------11111111 --------------- 000000001------- | 1.............. ............... |
-- 14 | -----001- 1111111111111111 --------------- 00000001-------- | .1..1.....1.... ............... |
-- 15 | -----001- 11111111-------- --------------- -------1-------- | ............... 1.............. |
-- 16 | -----001- 1111111111111111 --------------- 0000001--------- | .1..1.......... 1.........1.... |
-- 17 | -----001- 1111111111111111 --------------- 000001---------- | .1.......1..... ............... |
-- 18 | -----001- 1111111111111111 --------------- 0000-1---------- | ............... 1...1.......... |
-- 19 | -----001- 1111111111111111 --------------- 00001----------- | ............... 1...1....1..... |
-- 20 | -----001- ----111111111111 --------------- 00001----------- | .1............. ............... |
-- 21 | -----001- 1111111111111111 --------------- 0001------------ | ...1....1...... ............... |
-- 22 | -----001- 1111111111111111 --------------- ---1------------ | ............... 11............. |
-- 23 | -----001- 1111111111111111 --------------- 001------------- | ............... 11......1...... |
-- 24 | -----001- --11111111111111 --------------- 001------------- | ...1........... ............... |
-- 25 | -----001- -111111111111111 --------------- 01-------------- | .......1....... ............... |
-- 26 | -----001- 1111111111111111 --------------- -1-------------- | ............... 11.1........... |
-- 27 | -----001- 1111111111111111 --------------- 1--------------- | ............... 11.1...1....... |
-- 28 | -----1--- 111111111111111- 1-1---1-------0 ---------------- | ............... ..............1 |
-- 29 | -----1--- 11111111111111-1 1-1---1-------1 ---------------- | ..............1 ............... |
-- 30 | -----1--- 1111111111111-11 1-1---0------0- ---------------- | ............... .............1. |
-- 31 | -----1--- 111111111111-111 1-1---0------1- ---------------- | .............1. ............... |
-- 32 | -----1--- 11111111111-1111 1-0--1------0-- ---------------- | ............... ............1.. |
-- 33 | -----1--- 1111111111-11111 1-0--1------1-- ---------------- | ............1.. ............... |
-- 34 | -----1--- 111111111-111111 1-0--0-----0--- ---------------- | ............... ...........1... |
-- 35 | -----1--- 11111111-1111111 1-0--0-----1--- ---------------- | ...........1... ............... |
-- 36 | -----1--- 1111111-11111111 01--1-----0---- ---------------- | ............... ..........1.... |
-- 37 | -----1--- 111111-111111111 01--1-----1---- ---------------- | ..........1.... ............... |
-- 38 | -----1--- 11111-1111111111 01--0----0----- ---------------- | ............... .........1..... |
-- 39 | -----1--- 1111-11111111111 01--0----1----- ---------------- | .........1..... ............... |
-- 40 | -----1--- 111-111111111111 00-1----0------ ---------------- | ............... ........1...... |
-- 41 | -----1--- 11-1111111111111 00-1----1------ ---------------- | ........1...... ............... |
-- 42 | -----1--- 1-11111111111111 00-0---0------- ---------------- | ............... .......1....... |
-- 43 | -----1--- -111111111111111 00-0---1------- ---------------- | .......1....... ............... |
-- 44 | -----1--- 11111111111111-- 1-1---0-------- ---------------- | ............... ......1........ |
-- 45 | -----1--- 111111111111--11 1-1---1-------- ---------------- | ......1........ ............... |
-- 46 | -----1--- 1111111111--1111 1-0--0--------- ---------------- | ............... .....1......... |
-- 47 | -----1--- 11111111--111111 1-0--1--------- ---------------- | .....1......... ............... |
-- 48 | -----1--- 111111--11111111 01--0---------- ---------------- | ............... ....1.......... |
-- 49 | -----1--- 1111--1111111111 01--1---------- ---------------- | ....1.......... ............... |
-- 50 | -----1--- 11--111111111111 00-0----------- ---------------- | ............... ...1........... |
-- 51 | -----1--- --11111111111111 00-1----------- ---------------- | ...1........... ............... |
-- 52 | -----1--- 111111111111---- 1-0------------ ---------------- | ............... ..1............ |
-- 53 | -----1--- 11111111----1111 1-1------------ ---------------- | ..1............ ............... |
-- 54 | -----1--- 1111----11111111 00------------- ---------------- | ............... .1............. |
-- 55 | -----1--- ----111111111111 01------------- ---------------- | .1............. ............... |
-- 56 | -----1--- 11111111-------- 0-------------- ---------------- | ............... 1.............. |
-- 57 | -----1--- --------11111111 1-------------- ---------------- | 1.............. ............... |
-- 58 | --------- 1111111111111110 --------------- ---------------- | ............... 1.1...1.......1 |
-- 59 | --------- 111111111111110- --------------- ---------------- | ..............1 1.1...1........ |
-- 60 | --------- 11111111111110-- --------------- ---------------- | ............... 1.1..........1. |
-- 61 | --------- 111111111111-0-- --------------- ---------------- | ......1........ ............... |
-- 62 | --------- 1111111111110--- --------------- ---------------- | ......1......1. 1.1............ |
-- 63 | --------- 111111111110---- --------------- ---------------- | ............... 1....1......1.. |
-- 64 | --------- 11111111---0---- --------------- ---------------- | ..1............ ............... |
-- 65 | --------- 11111111110----- --------------- ---------------- | ..1.........1.. 1....1......... |
-- 66 | --------- 1111111110------ --------------- ---------------- | ............... 1..........1... |
-- 67 | --------- 11111111-0------ --------------- ---------------- | ..1..1......... ............... |
-- 68 | --------- 111111110------- --------------- ---------------- | ..1..1.....1... 1.............. |
-- 69 | --------- 11111110-------- --------------- ---------------- | ............... .1..1.....1.... |
-- 70 | --------- -------0-------- --------------- ---------------- | 1.............. ............... |
-- 71 | --------- 1111110--------- --------------- ---------------- | 1.........1.... .1..1.......... |
-- 72 | --------- 111110---------- --------------- ---------------- | ............... .1.......1..... |
-- 73 | --------- 1111-0---------- --------------- ---------------- | 1...1.......... ............... |
-- 74 | --------- 11110----------- --------------- ---------------- | 1...1....1..... .1............. |
-- 75 | --------- 1110------------ --------------- ---------------- | ............... ...1....1...... |
-- 76 | --------- ---0------------ --------------- ---------------- | 11............. ............... |
-- 77 | --------- 110------------- --------------- ---------------- | 11......1...... ...1........... |
-- 78 | --------- 10-------------- --------------- ---------------- | ............... .......1....... |
-- 79 | --------- -0-------------- --------------- ---------------- | 11.1........... ............... |
-- 80 | --------- 0--------------- --------------- ---------------- | 11.1...1....... ............... |
-- *=================================================================================================*
--
-- Table LRU_SET_RESET_VEC Signal Assignments for Product Terms
MQQ101:LRU_SET_RESET_VEC_PT(1) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(8) &
ENTRY_MATCH_Q(9) & ENTRY_MATCH_Q(10) &
ENTRY_MATCH_Q(11) & ENTRY_MATCH_Q(12) &
ENTRY_MATCH_Q(13) & ENTRY_MATCH_Q(14) &
ENTRY_MATCH_Q(15) ) , STD_ULOGIC_VECTOR'("00111111111111111110000000000000001"));
MQQ102:LRU_SET_RESET_VEC_PT(2) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(8) &
ENTRY_MATCH_Q(9) & ENTRY_MATCH_Q(10) &
ENTRY_MATCH_Q(11) & ENTRY_MATCH_Q(12) &
ENTRY_MATCH_Q(13) & ENTRY_MATCH_Q(14)
) , STD_ULOGIC_VECTOR'("0011111111111111111000000000000001"));
MQQ103:LRU_SET_RESET_VEC_PT(3) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_MATCH_Q(0) & ENTRY_MATCH_Q(1) &
ENTRY_MATCH_Q(2) & ENTRY_MATCH_Q(3) &
ENTRY_MATCH_Q(4) & ENTRY_MATCH_Q(5) &
ENTRY_MATCH_Q(6) & ENTRY_MATCH_Q(7) &
ENTRY_MATCH_Q(8) & ENTRY_MATCH_Q(9) &
ENTRY_MATCH_Q(10) & ENTRY_MATCH_Q(11) &
ENTRY_MATCH_Q(12) & ENTRY_MATCH_Q(13) &
ENTRY_MATCH_Q(14) ) , STD_ULOGIC_VECTOR'("001111111111111111000000000000001"));
MQQ104:LRU_SET_RESET_VEC_PT(4) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(8) &
ENTRY_MATCH_Q(9) & ENTRY_MATCH_Q(10) &
ENTRY_MATCH_Q(11) & ENTRY_MATCH_Q(12) &
ENTRY_MATCH_Q(13) ) , STD_ULOGIC_VECTOR'("001111111111111111100000000000001"));
MQQ105:LRU_SET_RESET_VEC_PT(5) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(8) &
ENTRY_MATCH_Q(9) & ENTRY_MATCH_Q(10) &
ENTRY_MATCH_Q(11) & ENTRY_MATCH_Q(13)
) , STD_ULOGIC_VECTOR'("001111111111111110000000000001"));
MQQ106:LRU_SET_RESET_VEC_PT(6) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(8) &
ENTRY_MATCH_Q(9) & ENTRY_MATCH_Q(10) &
ENTRY_MATCH_Q(11) & ENTRY_MATCH_Q(12)
) , STD_ULOGIC_VECTOR'("00111111111111111110000000000001"));
MQQ107:LRU_SET_RESET_VEC_PT(7) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(8) &
ENTRY_MATCH_Q(9) & ENTRY_MATCH_Q(10) &
ENTRY_MATCH_Q(11) ) , STD_ULOGIC_VECTOR'("0011111111111111111000000000001"));
MQQ108:LRU_SET_RESET_VEC_PT(8) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(11)
) , STD_ULOGIC_VECTOR'("001111111111111000000001"));
MQQ109:LRU_SET_RESET_VEC_PT(9) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(8) &
ENTRY_MATCH_Q(9) & ENTRY_MATCH_Q(10)
) , STD_ULOGIC_VECTOR'("001111111111111111100000000001"));
MQQ110:LRU_SET_RESET_VEC_PT(10) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(8) &
ENTRY_MATCH_Q(9) ) , STD_ULOGIC_VECTOR'("00111111111111111110000000001"));
MQQ111:LRU_SET_RESET_VEC_PT(11) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(9)
) , STD_ULOGIC_VECTOR'("0011111111111111111000000001"));
MQQ112:LRU_SET_RESET_VEC_PT(12) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(8)
) , STD_ULOGIC_VECTOR'("0011111111111111111000000001"));
MQQ113:LRU_SET_RESET_VEC_PT(13) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) & ENTRY_MATCH_Q(8)
) , STD_ULOGIC_VECTOR'("00111111111000000001"));
MQQ114:LRU_SET_RESET_VEC_PT(14) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6) &
ENTRY_MATCH_Q(7) ) , STD_ULOGIC_VECTOR'("001111111111111111100000001"));
MQQ115:LRU_SET_RESET_VEC_PT(15) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_MATCH_Q(7)
) , STD_ULOGIC_VECTOR'("001111111111"));
MQQ116:LRU_SET_RESET_VEC_PT(16) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) & ENTRY_MATCH_Q(6)
) , STD_ULOGIC_VECTOR'("00111111111111111110000001"));
MQQ117:LRU_SET_RESET_VEC_PT(17) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4) &
ENTRY_MATCH_Q(5) ) , STD_ULOGIC_VECTOR'("0011111111111111111000001"));
MQQ118:LRU_SET_RESET_VEC_PT(18) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(5)
) , STD_ULOGIC_VECTOR'("001111111111111111100001"));
MQQ119:LRU_SET_RESET_VEC_PT(19) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4)
) , STD_ULOGIC_VECTOR'("001111111111111111100001"));
MQQ120:LRU_SET_RESET_VEC_PT(20) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) & ENTRY_MATCH_Q(4)
) , STD_ULOGIC_VECTOR'("00111111111111100001"));
MQQ121:LRU_SET_RESET_VEC_PT(21) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2) &
ENTRY_MATCH_Q(3) ) , STD_ULOGIC_VECTOR'("00111111111111111110001"));
MQQ122:LRU_SET_RESET_VEC_PT(22) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(3)
) , STD_ULOGIC_VECTOR'("00111111111111111111"));
MQQ123:LRU_SET_RESET_VEC_PT(23) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2)
) , STD_ULOGIC_VECTOR'("0011111111111111111001"));
MQQ124:LRU_SET_RESET_VEC_PT(24) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0) &
ENTRY_MATCH_Q(1) & ENTRY_MATCH_Q(2)
) , STD_ULOGIC_VECTOR'("00111111111111111001"));
MQQ125:LRU_SET_RESET_VEC_PT(25) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
ENTRY_MATCH_Q(0) & ENTRY_MATCH_Q(1)
) , STD_ULOGIC_VECTOR'("00111111111111111101"));
MQQ126:LRU_SET_RESET_VEC_PT(26) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(1)
) , STD_ULOGIC_VECTOR'("00111111111111111111"));
MQQ127:LRU_SET_RESET_VEC_PT(27) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & LRU_UPDATE_EVENT_Q(6) &
LRU_UPDATE_EVENT_Q(7) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & ENTRY_MATCH_Q(0)
) , STD_ULOGIC_VECTOR'("00111111111111111111"));
MQQ128:LRU_SET_RESET_VEC_PT(28) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
LRU_Q(1) & LRU_Q(3) &
LRU_Q(7) & LRU_Q(15)
) , STD_ULOGIC_VECTOR'("11111111111111111110"));
MQQ129:LRU_SET_RESET_VEC_PT(29) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(3) &
LRU_Q(7) & LRU_Q(15)
) , STD_ULOGIC_VECTOR'("11111111111111111111"));
MQQ130:LRU_SET_RESET_VEC_PT(30) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(3) &
LRU_Q(7) & LRU_Q(14)
) , STD_ULOGIC_VECTOR'("11111111111111111100"));
MQQ131:LRU_SET_RESET_VEC_PT(31) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(3) &
LRU_Q(7) & LRU_Q(14)
) , STD_ULOGIC_VECTOR'("11111111111111111101"));
MQQ132:LRU_SET_RESET_VEC_PT(32) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(3) &
LRU_Q(6) & LRU_Q(13)
) , STD_ULOGIC_VECTOR'("11111111111111111010"));
MQQ133:LRU_SET_RESET_VEC_PT(33) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(3) &
LRU_Q(6) & LRU_Q(13)
) , STD_ULOGIC_VECTOR'("11111111111111111011"));
MQQ134:LRU_SET_RESET_VEC_PT(34) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(3) &
LRU_Q(6) & LRU_Q(12)
) , STD_ULOGIC_VECTOR'("11111111111111111000"));
MQQ135:LRU_SET_RESET_VEC_PT(35) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(3) &
LRU_Q(6) & LRU_Q(12)
) , STD_ULOGIC_VECTOR'("11111111111111111001"));
MQQ136:LRU_SET_RESET_VEC_PT(36) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(2) &
LRU_Q(5) & LRU_Q(11)
) , STD_ULOGIC_VECTOR'("11111111111111110110"));
MQQ137:LRU_SET_RESET_VEC_PT(37) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(2) &
LRU_Q(5) & LRU_Q(11)
) , STD_ULOGIC_VECTOR'("11111111111111110111"));
MQQ138:LRU_SET_RESET_VEC_PT(38) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(2) &
LRU_Q(5) & LRU_Q(10)
) , STD_ULOGIC_VECTOR'("11111111111111110100"));
MQQ139:LRU_SET_RESET_VEC_PT(39) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(2) &
LRU_Q(5) & LRU_Q(10)
) , STD_ULOGIC_VECTOR'("11111111111111110101"));
MQQ140:LRU_SET_RESET_VEC_PT(40) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(2) &
LRU_Q(4) & LRU_Q(9)
) , STD_ULOGIC_VECTOR'("11111111111111110010"));
MQQ141:LRU_SET_RESET_VEC_PT(41) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(2) &
LRU_Q(4) & LRU_Q(9)
) , STD_ULOGIC_VECTOR'("11111111111111110011"));
MQQ142:LRU_SET_RESET_VEC_PT(42) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(2) &
LRU_Q(4) & LRU_Q(8)
) , STD_ULOGIC_VECTOR'("11111111111111110000"));
MQQ143:LRU_SET_RESET_VEC_PT(43) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15) &
LRU_Q(1) & LRU_Q(2) &
LRU_Q(4) & LRU_Q(8)
) , STD_ULOGIC_VECTOR'("11111111111111110001"));
MQQ144:LRU_SET_RESET_VEC_PT(44) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & LRU_Q(1) &
LRU_Q(3) & LRU_Q(7)
) , STD_ULOGIC_VECTOR'("111111111111111110"));
MQQ145:LRU_SET_RESET_VEC_PT(45) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & LRU_Q(1) &
LRU_Q(3) & LRU_Q(7)
) , STD_ULOGIC_VECTOR'("111111111111111111"));
MQQ146:LRU_SET_RESET_VEC_PT(46) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & LRU_Q(1) &
LRU_Q(3) & LRU_Q(6)
) , STD_ULOGIC_VECTOR'("111111111111111100"));
MQQ147:LRU_SET_RESET_VEC_PT(47) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & LRU_Q(1) &
LRU_Q(3) & LRU_Q(6)
) , STD_ULOGIC_VECTOR'("111111111111111101"));
MQQ148:LRU_SET_RESET_VEC_PT(48) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & LRU_Q(1) &
LRU_Q(2) & LRU_Q(5)
) , STD_ULOGIC_VECTOR'("111111111111111010"));
MQQ149:LRU_SET_RESET_VEC_PT(49) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & LRU_Q(1) &
LRU_Q(2) & LRU_Q(5)
) , STD_ULOGIC_VECTOR'("111111111111111011"));
MQQ150:LRU_SET_RESET_VEC_PT(50) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & LRU_Q(1) &
LRU_Q(2) & LRU_Q(4)
) , STD_ULOGIC_VECTOR'("111111111111111000"));
MQQ151:LRU_SET_RESET_VEC_PT(51) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & LRU_Q(1) &
LRU_Q(2) & LRU_Q(4)
) , STD_ULOGIC_VECTOR'("111111111111111001"));
MQQ152:LRU_SET_RESET_VEC_PT(52) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & LRU_Q(1) &
LRU_Q(3) ) , STD_ULOGIC_VECTOR'("111111111111110"));
MQQ153:LRU_SET_RESET_VEC_PT(53) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & LRU_Q(1) &
LRU_Q(3) ) , STD_ULOGIC_VECTOR'("111111111111111"));
MQQ154:LRU_SET_RESET_VEC_PT(54) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & LRU_Q(1) &
LRU_Q(2) ) , STD_ULOGIC_VECTOR'("111111111111100"));
MQQ155:LRU_SET_RESET_VEC_PT(55) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & LRU_Q(1) &
LRU_Q(2) ) , STD_ULOGIC_VECTOR'("111111111111101"));
MQQ156:LRU_SET_RESET_VEC_PT(56) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(0) &
ENTRY_VALID_WATERMARKED(1) & ENTRY_VALID_WATERMARKED(2) &
ENTRY_VALID_WATERMARKED(3) & ENTRY_VALID_WATERMARKED(4) &
ENTRY_VALID_WATERMARKED(5) & ENTRY_VALID_WATERMARKED(6) &
ENTRY_VALID_WATERMARKED(7) & LRU_Q(1)
) , STD_ULOGIC_VECTOR'("1111111110"));
MQQ157:LRU_SET_RESET_VEC_PT(57) <=
Eq(( LRU_UPDATE_EVENT_Q(5) & ENTRY_VALID_WATERMARKED(8) &
ENTRY_VALID_WATERMARKED(9) & ENTRY_VALID_WATERMARKED(10) &
ENTRY_VALID_WATERMARKED(11) & ENTRY_VALID_WATERMARKED(12) &
ENTRY_VALID_WATERMARKED(13) & ENTRY_VALID_WATERMARKED(14) &
ENTRY_VALID_WATERMARKED(15) & LRU_Q(1)
) , STD_ULOGIC_VECTOR'("1111111111"));
MQQ158:LRU_SET_RESET_VEC_PT(58) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) & ENTRY_VALID_WATERMARKED(15)
) , STD_ULOGIC_VECTOR'("1111111111111110"));
MQQ159:LRU_SET_RESET_VEC_PT(59) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13) &
ENTRY_VALID_WATERMARKED(14) ) , STD_ULOGIC_VECTOR'("111111111111110"));
MQQ160:LRU_SET_RESET_VEC_PT(60) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) & ENTRY_VALID_WATERMARKED(13)
) , STD_ULOGIC_VECTOR'("11111111111110"));
MQQ161:LRU_SET_RESET_VEC_PT(61) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(13) ) , STD_ULOGIC_VECTOR'("1111111111110"));
MQQ162:LRU_SET_RESET_VEC_PT(62) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11) &
ENTRY_VALID_WATERMARKED(12) ) , STD_ULOGIC_VECTOR'("1111111111110"));
MQQ163:LRU_SET_RESET_VEC_PT(63) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) & ENTRY_VALID_WATERMARKED(11)
) , STD_ULOGIC_VECTOR'("111111111110"));
MQQ164:LRU_SET_RESET_VEC_PT(64) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(11) ) , STD_ULOGIC_VECTOR'("111111110"));
MQQ165:LRU_SET_RESET_VEC_PT(65) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9) &
ENTRY_VALID_WATERMARKED(10) ) , STD_ULOGIC_VECTOR'("11111111110"));
MQQ166:LRU_SET_RESET_VEC_PT(66) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) & ENTRY_VALID_WATERMARKED(9)
) , STD_ULOGIC_VECTOR'("1111111110"));
MQQ167:LRU_SET_RESET_VEC_PT(67) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(9) ) , STD_ULOGIC_VECTOR'("111111110"));
MQQ168:LRU_SET_RESET_VEC_PT(68) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7) &
ENTRY_VALID_WATERMARKED(8) ) , STD_ULOGIC_VECTOR'("111111110"));
MQQ169:LRU_SET_RESET_VEC_PT(69) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) & ENTRY_VALID_WATERMARKED(7)
) , STD_ULOGIC_VECTOR'("11111110"));
MQQ170:LRU_SET_RESET_VEC_PT(70) <=
Eq(( ENTRY_VALID_WATERMARKED(7) ) , STD_ULOGIC'('0'));
MQQ171:LRU_SET_RESET_VEC_PT(71) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5) &
ENTRY_VALID_WATERMARKED(6) ) , STD_ULOGIC_VECTOR'("1111110"));
MQQ172:LRU_SET_RESET_VEC_PT(72) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) & ENTRY_VALID_WATERMARKED(5)
) , STD_ULOGIC_VECTOR'("111110"));
MQQ173:LRU_SET_RESET_VEC_PT(73) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(5) ) , STD_ULOGIC_VECTOR'("11110"));
MQQ174:LRU_SET_RESET_VEC_PT(74) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3) &
ENTRY_VALID_WATERMARKED(4) ) , STD_ULOGIC_VECTOR'("11110"));
MQQ175:LRU_SET_RESET_VEC_PT(75) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) & ENTRY_VALID_WATERMARKED(3)
) , STD_ULOGIC_VECTOR'("1110"));
MQQ176:LRU_SET_RESET_VEC_PT(76) <=
Eq(( ENTRY_VALID_WATERMARKED(3) ) , STD_ULOGIC'('0'));
MQQ177:LRU_SET_RESET_VEC_PT(77) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1) &
ENTRY_VALID_WATERMARKED(2) ) , STD_ULOGIC_VECTOR'("110"));
MQQ178:LRU_SET_RESET_VEC_PT(78) <=
Eq(( ENTRY_VALID_WATERMARKED(0) & ENTRY_VALID_WATERMARKED(1)
) , STD_ULOGIC_VECTOR'("10"));
MQQ179:LRU_SET_RESET_VEC_PT(79) <=
Eq(( ENTRY_VALID_WATERMARKED(1) ) , STD_ULOGIC'('0'));
MQQ180:LRU_SET_RESET_VEC_PT(80) <=
Eq(( ENTRY_VALID_WATERMARKED(0) ) , STD_ULOGIC'('0'));
-- Table LRU_SET_RESET_VEC Signal Assignments for Outputs
MQQ181:LRU_RESET_VEC(1) <=
(LRU_SET_RESET_VEC_PT(1) OR LRU_SET_RESET_VEC_PT(2)
OR LRU_SET_RESET_VEC_PT(4) OR LRU_SET_RESET_VEC_PT(6)
OR LRU_SET_RESET_VEC_PT(7) OR LRU_SET_RESET_VEC_PT(9)
OR LRU_SET_RESET_VEC_PT(10) OR LRU_SET_RESET_VEC_PT(13)
OR LRU_SET_RESET_VEC_PT(57) OR LRU_SET_RESET_VEC_PT(70)
OR LRU_SET_RESET_VEC_PT(71) OR LRU_SET_RESET_VEC_PT(73)
OR LRU_SET_RESET_VEC_PT(74) OR LRU_SET_RESET_VEC_PT(76)
OR LRU_SET_RESET_VEC_PT(77) OR LRU_SET_RESET_VEC_PT(79)
OR LRU_SET_RESET_VEC_PT(80));
MQQ182:LRU_RESET_VEC(2) <=
(LRU_SET_RESET_VEC_PT(14) OR LRU_SET_RESET_VEC_PT(16)
OR LRU_SET_RESET_VEC_PT(17) OR LRU_SET_RESET_VEC_PT(20)
OR LRU_SET_RESET_VEC_PT(55) OR LRU_SET_RESET_VEC_PT(76)
OR LRU_SET_RESET_VEC_PT(77) OR LRU_SET_RESET_VEC_PT(79)
OR LRU_SET_RESET_VEC_PT(80));
MQQ183:LRU_RESET_VEC(3) <=
(LRU_SET_RESET_VEC_PT(1) OR LRU_SET_RESET_VEC_PT(2)
OR LRU_SET_RESET_VEC_PT(4) OR LRU_SET_RESET_VEC_PT(6)
OR LRU_SET_RESET_VEC_PT(53) OR LRU_SET_RESET_VEC_PT(64)
OR LRU_SET_RESET_VEC_PT(65) OR LRU_SET_RESET_VEC_PT(67)
OR LRU_SET_RESET_VEC_PT(68));
MQQ184:LRU_RESET_VEC(4) <=
(LRU_SET_RESET_VEC_PT(21) OR LRU_SET_RESET_VEC_PT(24)
OR LRU_SET_RESET_VEC_PT(51) OR LRU_SET_RESET_VEC_PT(79)
OR LRU_SET_RESET_VEC_PT(80));
MQQ185:LRU_RESET_VEC(5) <=
(LRU_SET_RESET_VEC_PT(14) OR LRU_SET_RESET_VEC_PT(16)
OR LRU_SET_RESET_VEC_PT(49) OR LRU_SET_RESET_VEC_PT(73)
OR LRU_SET_RESET_VEC_PT(74));
MQQ186:LRU_RESET_VEC(6) <=
(LRU_SET_RESET_VEC_PT(7) OR LRU_SET_RESET_VEC_PT(9)
OR LRU_SET_RESET_VEC_PT(47) OR LRU_SET_RESET_VEC_PT(67)
OR LRU_SET_RESET_VEC_PT(68));
MQQ187:LRU_RESET_VEC(7) <=
(LRU_SET_RESET_VEC_PT(1) OR LRU_SET_RESET_VEC_PT(2)
OR LRU_SET_RESET_VEC_PT(45) OR LRU_SET_RESET_VEC_PT(61)
OR LRU_SET_RESET_VEC_PT(62));
MQQ188:LRU_RESET_VEC(8) <=
(LRU_SET_RESET_VEC_PT(25) OR LRU_SET_RESET_VEC_PT(43)
OR LRU_SET_RESET_VEC_PT(80));
MQQ189:LRU_RESET_VEC(9) <=
(LRU_SET_RESET_VEC_PT(21) OR LRU_SET_RESET_VEC_PT(41)
OR LRU_SET_RESET_VEC_PT(77));
MQQ190:LRU_RESET_VEC(10) <=
(LRU_SET_RESET_VEC_PT(17) OR LRU_SET_RESET_VEC_PT(39)
OR LRU_SET_RESET_VEC_PT(74));
MQQ191:LRU_RESET_VEC(11) <=
(LRU_SET_RESET_VEC_PT(14) OR LRU_SET_RESET_VEC_PT(37)
OR LRU_SET_RESET_VEC_PT(71));
MQQ192:LRU_RESET_VEC(12) <=
(LRU_SET_RESET_VEC_PT(10) OR LRU_SET_RESET_VEC_PT(35)
OR LRU_SET_RESET_VEC_PT(68));
MQQ193:LRU_RESET_VEC(13) <=
(LRU_SET_RESET_VEC_PT(7) OR LRU_SET_RESET_VEC_PT(33)
OR LRU_SET_RESET_VEC_PT(65));
MQQ194:LRU_RESET_VEC(14) <=
(LRU_SET_RESET_VEC_PT(4) OR LRU_SET_RESET_VEC_PT(31)
OR LRU_SET_RESET_VEC_PT(62));
MQQ195:LRU_RESET_VEC(15) <=
(LRU_SET_RESET_VEC_PT(1) OR LRU_SET_RESET_VEC_PT(29)
OR LRU_SET_RESET_VEC_PT(59));
MQQ196:LRU_SET_VEC(1) <=
(LRU_SET_RESET_VEC_PT(15) OR LRU_SET_RESET_VEC_PT(16)
OR LRU_SET_RESET_VEC_PT(18) OR LRU_SET_RESET_VEC_PT(19)
OR LRU_SET_RESET_VEC_PT(22) OR LRU_SET_RESET_VEC_PT(23)
OR LRU_SET_RESET_VEC_PT(26) OR LRU_SET_RESET_VEC_PT(27)
OR LRU_SET_RESET_VEC_PT(56) OR LRU_SET_RESET_VEC_PT(58)
OR LRU_SET_RESET_VEC_PT(59) OR LRU_SET_RESET_VEC_PT(60)
OR LRU_SET_RESET_VEC_PT(62) OR LRU_SET_RESET_VEC_PT(63)
OR LRU_SET_RESET_VEC_PT(65) OR LRU_SET_RESET_VEC_PT(66)
OR LRU_SET_RESET_VEC_PT(68));
MQQ197:LRU_SET_VEC(2) <=
(LRU_SET_RESET_VEC_PT(22) OR LRU_SET_RESET_VEC_PT(23)
OR LRU_SET_RESET_VEC_PT(26) OR LRU_SET_RESET_VEC_PT(27)
OR LRU_SET_RESET_VEC_PT(54) OR LRU_SET_RESET_VEC_PT(69)
OR LRU_SET_RESET_VEC_PT(71) OR LRU_SET_RESET_VEC_PT(72)
OR LRU_SET_RESET_VEC_PT(74));
MQQ198:LRU_SET_VEC(3) <=
(LRU_SET_RESET_VEC_PT(8) OR LRU_SET_RESET_VEC_PT(9)
OR LRU_SET_RESET_VEC_PT(11) OR LRU_SET_RESET_VEC_PT(12)
OR LRU_SET_RESET_VEC_PT(52) OR LRU_SET_RESET_VEC_PT(58)
OR LRU_SET_RESET_VEC_PT(59) OR LRU_SET_RESET_VEC_PT(60)
OR LRU_SET_RESET_VEC_PT(62));
MQQ199:LRU_SET_VEC(4) <=
(LRU_SET_RESET_VEC_PT(26) OR LRU_SET_RESET_VEC_PT(27)
OR LRU_SET_RESET_VEC_PT(50) OR LRU_SET_RESET_VEC_PT(75)
OR LRU_SET_RESET_VEC_PT(77));
MQQ200:LRU_SET_VEC(5) <=
(LRU_SET_RESET_VEC_PT(18) OR LRU_SET_RESET_VEC_PT(19)
OR LRU_SET_RESET_VEC_PT(48) OR LRU_SET_RESET_VEC_PT(69)
OR LRU_SET_RESET_VEC_PT(71));
MQQ201:LRU_SET_VEC(6) <=
(LRU_SET_RESET_VEC_PT(11) OR LRU_SET_RESET_VEC_PT(12)
OR LRU_SET_RESET_VEC_PT(46) OR LRU_SET_RESET_VEC_PT(63)
OR LRU_SET_RESET_VEC_PT(65));
MQQ202:LRU_SET_VEC(7) <=
(LRU_SET_RESET_VEC_PT(5) OR LRU_SET_RESET_VEC_PT(6)
OR LRU_SET_RESET_VEC_PT(44) OR LRU_SET_RESET_VEC_PT(58)
OR LRU_SET_RESET_VEC_PT(59));
MQQ203:LRU_SET_VEC(8) <=
(LRU_SET_RESET_VEC_PT(27) OR LRU_SET_RESET_VEC_PT(42)
OR LRU_SET_RESET_VEC_PT(78));
MQQ204:LRU_SET_VEC(9) <=
(LRU_SET_RESET_VEC_PT(23) OR LRU_SET_RESET_VEC_PT(40)
OR LRU_SET_RESET_VEC_PT(75));
MQQ205:LRU_SET_VEC(10) <=
(LRU_SET_RESET_VEC_PT(19) OR LRU_SET_RESET_VEC_PT(38)
OR LRU_SET_RESET_VEC_PT(72));
MQQ206:LRU_SET_VEC(11) <=
(LRU_SET_RESET_VEC_PT(16) OR LRU_SET_RESET_VEC_PT(36)
OR LRU_SET_RESET_VEC_PT(69));
MQQ207:LRU_SET_VEC(12) <=
(LRU_SET_RESET_VEC_PT(12) OR LRU_SET_RESET_VEC_PT(34)
OR LRU_SET_RESET_VEC_PT(66));
MQQ208:LRU_SET_VEC(13) <=
(LRU_SET_RESET_VEC_PT(9) OR LRU_SET_RESET_VEC_PT(32)
OR LRU_SET_RESET_VEC_PT(63));
MQQ209:LRU_SET_VEC(14) <=
(LRU_SET_RESET_VEC_PT(6) OR LRU_SET_RESET_VEC_PT(30)
OR LRU_SET_RESET_VEC_PT(60));
MQQ210:LRU_SET_VEC(15) <=
(LRU_SET_RESET_VEC_PT(3) OR LRU_SET_RESET_VEC_PT(28)
OR LRU_SET_RESET_VEC_PT(58));
-- Encoder for the LRU selected entry
--
-- Final Table Listing
-- *INPUTS*==========================*OUTPUTS*==========*
-- | | |
-- | mmucr1_q | lru_way_encode |
-- | | lru_eff | | |
-- | | | | | |
-- | | | | | |
-- | | | 111111 | | |
-- | 012345678 123456789012345 | 0123 |
-- *TYPE*============================+==================+
-- | PPPPPPPPP PPPPPPPPPPPPPPP | PPPP |
-- *POLARITY*----------------------->| ++++ |
-- *PHASE*-------------------------->| TTTT |
-- *OPTIMIZE*----------------------->| AAAA |
-- *TERMS*===========================+==================+
-- 1 | --------- 1-1---1-------1 | ...1 |
-- 2 | --------- 1-1---0------1- | ...1 |
-- 3 | --------- 1-0--1------1-- | ...1 |
-- 4 | --------- 1-0--0-----1--- | ...1 |
-- 5 | --------- 01--1-----1---- | ...1 |
-- 6 | --------- 01--0----1----- | ...1 |
-- 7 | --------- 00-1----1------ | ...1 |
-- 8 | --------- 00-0---1------- | ...1 |
-- 9 | --------- 1-1---1-------- | ..1. |
-- 10 | --------- 1-0--1--------- | ..1. |
-- 11 | --------- 01--1---------- | ..1. |
-- 12 | --------- 00-1----------- | ..1. |
-- 13 | --------- 1-1------------ | .1.. |
-- 14 | --------- 01------------- | .1.. |
-- 15 | --------- 1-------------- | 1... |
-- *====================================================*
--
-- Table LRU_WAY_ENCODE Signal Assignments for Product Terms
MQQ211:LRU_WAY_ENCODE_PT(1) <=
Eq(( LRU_EFF(1) & LRU_EFF(3) &
LRU_EFF(7) & LRU_EFF(15)
) , STD_ULOGIC_VECTOR'("1111"));
MQQ212:LRU_WAY_ENCODE_PT(2) <=
Eq(( LRU_EFF(1) & LRU_EFF(3) &
LRU_EFF(7) & LRU_EFF(14)
) , STD_ULOGIC_VECTOR'("1101"));
MQQ213:LRU_WAY_ENCODE_PT(3) <=
Eq(( LRU_EFF(1) & LRU_EFF(3) &
LRU_EFF(6) & LRU_EFF(13)
) , STD_ULOGIC_VECTOR'("1011"));
MQQ214:LRU_WAY_ENCODE_PT(4) <=
Eq(( LRU_EFF(1) & LRU_EFF(3) &
LRU_EFF(6) & LRU_EFF(12)
) , STD_ULOGIC_VECTOR'("1001"));
MQQ215:LRU_WAY_ENCODE_PT(5) <=
Eq(( LRU_EFF(1) & LRU_EFF(2) &
LRU_EFF(5) & LRU_EFF(11)
) , STD_ULOGIC_VECTOR'("0111"));
MQQ216:LRU_WAY_ENCODE_PT(6) <=
Eq(( LRU_EFF(1) & LRU_EFF(2) &
LRU_EFF(5) & LRU_EFF(10)
) , STD_ULOGIC_VECTOR'("0101"));
MQQ217:LRU_WAY_ENCODE_PT(7) <=
Eq(( LRU_EFF(1) & LRU_EFF(2) &
LRU_EFF(4) & LRU_EFF(9)
) , STD_ULOGIC_VECTOR'("0011"));
MQQ218:LRU_WAY_ENCODE_PT(8) <=
Eq(( LRU_EFF(1) & LRU_EFF(2) &
LRU_EFF(4) & LRU_EFF(8)
) , STD_ULOGIC_VECTOR'("0001"));
MQQ219:LRU_WAY_ENCODE_PT(9) <=
Eq(( LRU_EFF(1) & LRU_EFF(3) &
LRU_EFF(7) ) , STD_ULOGIC_VECTOR'("111"));
MQQ220:LRU_WAY_ENCODE_PT(10) <=
Eq(( LRU_EFF(1) & LRU_EFF(3) &
LRU_EFF(6) ) , STD_ULOGIC_VECTOR'("101"));
MQQ221:LRU_WAY_ENCODE_PT(11) <=
Eq(( LRU_EFF(1) & LRU_EFF(2) &
LRU_EFF(5) ) , STD_ULOGIC_VECTOR'("011"));
MQQ222:LRU_WAY_ENCODE_PT(12) <=
Eq(( LRU_EFF(1) & LRU_EFF(2) &
LRU_EFF(4) ) , STD_ULOGIC_VECTOR'("001"));
MQQ223:LRU_WAY_ENCODE_PT(13) <=
Eq(( LRU_EFF(1) & LRU_EFF(3)
) , STD_ULOGIC_VECTOR'("11"));
MQQ224:LRU_WAY_ENCODE_PT(14) <=
Eq(( LRU_EFF(1) & LRU_EFF(2)
) , STD_ULOGIC_VECTOR'("01"));
MQQ225:LRU_WAY_ENCODE_PT(15) <=
Eq(( LRU_EFF(1) ) , STD_ULOGIC'('1'));
-- Table LRU_WAY_ENCODE Signal Assignments for Outputs
MQQ226:LRU_WAY_ENCODE(0) <=
(LRU_WAY_ENCODE_PT(15));
MQQ227:LRU_WAY_ENCODE(1) <=
(LRU_WAY_ENCODE_PT(13) OR LRU_WAY_ENCODE_PT(14)
);
MQQ228:LRU_WAY_ENCODE(2) <=
(LRU_WAY_ENCODE_PT(9) OR LRU_WAY_ENCODE_PT(10)
OR LRU_WAY_ENCODE_PT(11) OR LRU_WAY_ENCODE_PT(12)
);
MQQ229:LRU_WAY_ENCODE(3) <=
(LRU_WAY_ENCODE_PT(1) OR LRU_WAY_ENCODE_PT(2)
OR LRU_WAY_ENCODE_PT(3) OR LRU_WAY_ENCODE_PT(4)
OR LRU_WAY_ENCODE_PT(5) OR LRU_WAY_ENCODE_PT(6)
OR LRU_WAY_ENCODE_PT(7) OR LRU_WAY_ENCODE_PT(8)
);
-- power-on reset sequencer to load initial erat entries
Por_Sequencer: PROCESS (por_seq_q, init_alias, bcfg_q(0 to 106))
BEGIN
por_wr_cam_val <= (others => '0');
por_wr_array_val <= (others => '0');
por_wr_cam_data <= (others => '0');
por_wr_array_data <= (others => '0');
por_wr_entry <= (others => '0');
CASE por_seq_q IS
WHEN PorSeq_Idle =>
por_wr_cam_val <= (others => '0'); por_wr_array_val <= (others => '0');
por_hold_req <= (others => init_alias);
if init_alias ='1' then
por_seq_d <= PorSeq_Stg1;
else
por_seq_d <= PorSeq_Idle;
end if;
WHEN PorSeq_Stg1 =>
por_wr_cam_val <= (others => '0'); por_wr_array_val <= (others => '0');
por_seq_d <= PorSeq_Stg2; por_hold_req <= (others => '1');
WHEN PorSeq_Stg2 =>
por_wr_cam_val <= (others => '1'); por_wr_array_val <= (others => '1');
por_wr_entry <= Por_Wr_Entry_Num1;
por_wr_cam_data <= bcfg_q(0 to 51) & Por_Wr_Cam_Data1(52 to 83);
-- 16x143 version, 42b RA
-- wr_array_data
-- 0:29 - RPN
-- 30:31 - R,C
-- 32:33 - WLC
-- 34 - ResvAttr
-- 35 - VF
-- 36:39 - U0-U3
-- 40:44 - WIMGE
-- 45:46 - UX,SX
-- 47:48 - UW,SW
-- 49:50 - UR,SR
-- 51:60 - CAM parity
-- 61:67 - Array parity
por_wr_array_data <= bcfg_q(52 to 81) & Por_Wr_Array_Data1(30 to 35) & bcfg_q(82 to 85) &
Por_Wr_Array_Data1(40 to 43) & bcfg_q(86) & Por_Wr_Array_Data1(45 to 67);
por_hold_req <= (others => '1');
por_seq_d <= PorSeq_Stg3;
WHEN PorSeq_Stg3 =>
por_wr_cam_val <= (others => '0'); por_wr_array_val <= (others => '0');
por_hold_req <= (others => '1');
por_seq_d <= PorSeq_Stg4;
WHEN PorSeq_Stg4 =>
por_wr_cam_val <= (others => '1'); por_wr_array_val <= (others => '1');
por_wr_entry <= Por_Wr_Entry_Num2;
por_wr_cam_data <= Por_Wr_Cam_Data2;
por_wr_array_data <= bcfg_q(52 to 61) & bcfg_q(87 to 106) & Por_Wr_Array_Data2(30 to 35) & bcfg_q(82 to 85) &
Por_Wr_Array_Data2(40 to 43) & bcfg_q(86) & Por_Wr_Array_Data2(45 to 67);
por_hold_req <= (others => '1');
por_seq_d <= PorSeq_Stg5;
WHEN PorSeq_Stg5 =>
por_wr_cam_val <= (others => '0'); por_wr_array_val <= (others => '0');
por_hold_req <= (others => '1');
por_seq_d <= PorSeq_Stg6;
WHEN PorSeq_Stg6 =>
por_wr_cam_val <= (others => '0'); por_wr_array_val <= (others => '0');
por_hold_req <= (others => '0');
por_seq_d <= PorSeq_Stg7;
WHEN PorSeq_Stg7 =>
por_wr_cam_val <= (others => '0'); por_wr_array_val <= (others => '0');
por_hold_req <= (others => '0');
if init_alias ='0' then
por_seq_d <= PorSeq_Idle;
else
por_seq_d <= PorSeq_Stg7;
end if;
WHEN OTHERS =>
por_seq_d <= PorSeq_Idle;
END CASE;
END PROCESS Por_Sequencer;
-- page size 4b to 3b swizzles for cam write
cam_pgsize(0 TO 2) <= (CAM_PgSize_1GB and (0 to 2 => Eq(ex6_data_in_q(56 to 59),WS0_PgSize_1GB)))
or (CAM_PgSize_16MB and (0 to 2 => Eq(ex6_data_in_q(56 to 59),WS0_PgSize_16MB)))
or (CAM_PgSize_1MB and (0 to 2 => Eq(ex6_data_in_q(56 to 59),WS0_PgSize_1MB)))
or (CAM_PgSize_64KB and (0 to 2 => Eq(ex6_data_in_q(56 to 59),WS0_PgSize_64KB)))
or (CAM_PgSize_4KB and (0 to 2 => not(Eq(ex6_data_in_q(56 to 59),WS0_PgSize_1GB) or
Eq(ex6_data_in_q(56 to 59),WS0_PgSize_16MB) or
Eq(ex6_data_in_q(56 to 59),WS0_PgSize_1MB) or
Eq(ex6_data_in_q(56 to 59),WS0_PgSize_64KB))));
-- page size 3b to 4b swizzles for cam read
ws0_pgsize(0 TO 3) <= (WS0_PgSize_1GB and (0 to 3 => Eq(rd_cam_data(53 to 55),CAM_PgSize_1GB)))
or (WS0_PgSize_16MB and (0 to 3 => Eq(rd_cam_data(53 to 55),CAM_PgSize_16MB)))
or (WS0_PgSize_1MB and (0 to 3 => Eq(rd_cam_data(53 to 55),CAM_PgSize_1MB)))
or (WS0_PgSize_64KB and (0 to 3 => Eq(rd_cam_data(53 to 55),CAM_PgSize_64KB)))
or (WS0_PgSize_4KB and (0 to 3 => Eq(rd_cam_data(53 to 55),CAM_PgSize_4KB)));
-- CAM control signal assignments
-- ttype: eratre & eratwe & eratsx & erativax;
-- mmucr1_q: 0-IRRE, 1-REE, 2-CEE, 3-csync, 4-isync, 5:6-IPEI, 7:8-ICTID/ITTID
rd_val <= or_reduce(ex2_valid_q) and ex2_ttype_q(0) and Eq(ex2_tlbsel_q, TlbSel_IErat);
rw_entry <= ( por_wr_entry and (0 to 3 => or_reduce(por_seq_q)) )
or ( eptr_q and (0 to 3 => (or_reduce(tlb_rel_val_q(0 to 3)) and tlb_rel_val_q(4) and mmucr1_q(0))) )
or ( lru_way_encode and (0 to 3 => (or_reduce(tlb_rel_val_q(0 to 3)) and tlb_rel_val_q(4) and not mmucr1_q(0))) )
or ( eptr_q and (0 to 3 => (or_reduce(ex6_valid_q) and ex6_ttype_q(1) and Eq(ex6_tlbsel_q, TlbSel_IErat) and not tlb_rel_val_q(4) and mmucr1_q(0))) )
or ( ex6_ra_entry_q and (0 to 3 => (or_reduce(ex6_valid_q) and ex6_ttype_q(1) and Eq(ex6_tlbsel_q, TlbSel_IErat) and not tlb_rel_val_q(4) and not mmucr1_q(0))) )
or ( ex2_ra_entry_q and (0 to 3 => (or_reduce(ex2_valid_q) and ex2_ttype_q(0) and not(or_reduce(ex6_valid_q) and ex6_ttype_q(1) and Eq(ex6_tlbsel_q, TlbSel_IErat)) and not tlb_rel_val_q(4))) );
-- Write Port
wr_cam_val <= por_wr_cam_val when por_seq_q/=PorSeq_Idle
else (others => '0') when (ex6_valid_q/="0000" and ex6_ttype_q(4 to 5)/="00")
else (others => tlb_rel_data_q(eratpos_wren)) when (tlb_rel_val_q(0 to 3)/="0000" and tlb_rel_val_q(4)='1')
else (others => '1') when (ex6_valid_q/="0000" and ex6_ttype_q(1)='1' and ex6_ws_q="00" and ex6_tlbsel_q=TlbSel_IErat)
else (others => '0');
-- write port act pin
wr_val_early <= or_reduce(por_seq_q) or
or_reduce(tlb_req_inprogress_q) or
(or_reduce(ex5_valid_q) and ex5_ttype_q(1) and Eq(ex5_ws_q,"00") and Eq(ex5_tlbsel_q,TlbSel_IErat)) or
(or_reduce(ex6_valid_q) and ex6_ttype_q(1) and Eq(ex6_ws_q,"00") and Eq(ex6_tlbsel_q,TlbSel_IErat));
-- tlb_low_data
-- 0:51 - EPN
-- 52:55 - SIZE (4b)
-- 56:59 - ThdID
-- 60:61 - Class
-- 62 - ExtClass
-- 63 - TID_NZ
-- 64:65 - reserved (2b)
-- 66:73 - 8b for LPID
-- 74:83 - parity 10bits
-- wr_ws0_data (LO)
-- 0:51 - EPN
-- 52:53 - Class
-- 54 - V
-- 55 - X
-- 56:59 - SIZE
-- 60:63 - ThdID
-- wr_cam_data
-- 0:51 - EPN
-- 52 - X
-- 53:55 - SIZE
-- 56 - V
-- 57:60 - ThdID
-- 61:62 - Class
-- 63:64 - ExtClass | TID_NZ
-- 65 - TGS
-- 66 - TS
-- 67:74 - TID
-- 75:78 - epn_cmpmasks: 34_39, 40_43, 44_47, 48_51
-- 79:82 - xbit_cmpmasks: 34_51, 40_51, 44_51, 48_51
-- 83 - parity for 75:82
----------- this is what the erat expects on reload bus
-- 0:51 - EPN
-- 52 - X
-- 53:55 - SIZE
-- 56 - V
-- 57:60 - ThdID
-- 61:62 - Class
-- 63:64 - ExtClass | TID_NZ
-- 65 - write enable
-- 0:3 66:69 - reserved RPN
-- 4:33 70:99 - RPN
-- 34:35 100:101 - R,C
-- 36 102 - reserved
-- 37:38 103:104 - WLC
-- 39 105 - ResvAttr
-- 40 106 - VF
-- 41:44 107:110 - U0-U3
-- 45:49 111:115 - WIMGE
-- 50:51 116:117 - UX,SX
-- 52:53 118:119 - UW,SW
-- 54:55 120:121 - UR,SR
-- 56 122 - GS
-- 57 123 - TS
-- 58:65 124:131 - TID lsbs
gen64_wr_cam_data: if rs_data_width = 64 generate
wr_cam_data <= por_wr_cam_data when por_seq_q/=PorSeq_Idle
else (tlb_rel_data_q(0 to 64) & tlb_rel_data_q(122 to 131) &
tlb_rel_cmpmask(0 to 3) & tlb_rel_xbitmask(0 to 3) & tlb_rel_maskpar )
when (tlb_rel_val_q(0 to 3)/="0000" and tlb_rel_val_q(4)='1')
else ( (ex6_data_in_q(0 to 31) and (0 to 31 => ex6_state_q(3))) & ex6_data_in_q(32 to 51) & ex6_data_in_q(55) &
cam_pgsize(0 to 2) & ex6_data_in_q(54) & ex6_data_in_q(60 to 63) & ex6_data_in_q(52 to 53) &
ex6_extclass_q & ex6_state_q(1 to 2) & ex6_pid_q(pid_width-8 to pid_width-1) &
ex6_data_cmpmask(0 to 3) & ex6_data_xbitmask(0 to 3) & ex6_data_maskpar )
when (ex6_valid_q/="0000" and ex6_ttype_q(1)='1' and ex6_ws_q="00")
else (others => '0');
end generate gen64_wr_cam_data;
gen32_wr_cam_data: if rs_data_width = 32 generate
wr_cam_data <= por_wr_cam_data when por_seq_q/=PorSeq_Idle
else (tlb_rel_data_q(0 to 64) & tlb_rel_data_q(122 to 131) &
tlb_rel_cmpmask(0 to 3) & tlb_rel_xbitmask(0 to 3) & tlb_rel_maskpar )
when (tlb_rel_val_q(0 to 3)/="0000" and tlb_rel_val_q(4)='1')
else ((0 to 31 => '0') & ex6_data_in_q(32 to 51) & ex6_data_in_q(55) & cam_pgsize(0 to 2) & ex6_data_in_q(54) &
ex6_data_in_q(60 to 63) & ex6_data_in_q(52 to 53) &
ex6_extclass_q & ex6_state_q(1 to 2) & ex6_pid_q(pid_width-8 to pid_width-1) &
ex6_data_cmpmask(0 to 3) & ex6_data_xbitmask(0 to 3) & ex6_data_maskpar )
when (ex6_valid_q/="0000" and ex6_ttype_q(1)='1' and ex6_ws_q="00")
else (others => '0');
end generate gen32_wr_cam_data;
-- cmpmask(0) (1) (2) (3) xbitmask(0) (1) (2) (3)
-- xbit pgsize 34_39 40_43 44_47 48_51 34_39 40_43 44_47 48_51 size
-- 0 001 1 1 1 1 0 0 0 0 4K
-- 0 011 1 1 1 0 0 0 0 0 64K
-- 0 101 1 1 0 0 0 0 0 0 1M
-- 0 111 1 0 0 0 0 0 0 0 16M
-- 0 110 0 0 0 0 0 0 0 0 1G
-- 1 001 1 1 1 1 0 0 0 0 4K
-- 1 011 1 1 1 0 0 0 0 1 64K
-- 1 101 1 1 0 0 0 0 1 0 1M
-- 1 111 1 0 0 0 0 1 0 0 16M
-- 1 110 0 0 0 0 1 0 0 0 1G
-- Encoder for the cam compare mask bits write data
--
-- Final Table Listing
-- *INPUTS*==================*OUTPUTS*===================================*
-- | | |
-- | tlb_rel_data_q | tlb_rel_cmpmask |
-- | | ex6_data_in_q | | tlb_rel_xbitmask |
-- | | | | | | tlb_rel_maskpar |
-- | | | | | | | ex6_data_cmpmask |
-- | | | | | | | | ex6_data_xbitmask |
-- | | | | | | | | | ex6_data_maskpar |
-- | | | | | | | | | | |
-- | 5555 55555 | | | | | | | |
-- | 2345 56789 | 0123 0123 | 0123 0123 | |
-- *TYPE*====================+===========================================+
-- | PPPP PPPPP | PPPP PPPP P PPPP PPPP P |
-- *POLARITY*--------------->| ++++ ++++ + ++++ ++++ + |
-- *PHASE*------------------>| TTTT TTTT T TTTT TTTT T |
-- *OPTIMIZE*--------------->| AAAA AAAA A AAAA AAAA A |
-- *TERMS*===================+===========================================+
-- 1 | ---- 11010 | .... .... . .... 1... 1 |
-- 2 | ---- -0--0 | .... .... . 1111 .... . |
-- 3 | ---- 10101 | .... .... . .... ..1. 1 |
-- 4 | ---- 10011 | .... .... . 1... ...1 . |
-- 5 | ---- 10111 | .... .... . 1... .1.. . |
-- 6 | ---- 00-11 | .... .... . 1... .... 1 |
-- 7 | ---- -1--1 | .... .... . 1111 .... . |
-- 8 | ---- --00- | .... .... . ..11 .... . |
-- 9 | ---- ---0- | .... .... . 11.. .... . |
-- 10 | ---- -00-- | .... .... . .11. .... . |
-- 11 | ---- -11-- | .... .... . 1111 .... . |
-- 12 | 1--0 ----- | .... 1... 1 .... .... . |
-- 13 | 1111 ----- | 1... .1.. . .... .... . |
-- 14 | 0-11 ----- | 1... .... 1 .... .... . |
-- 15 | -00- ----- | ...1 .... . .... .... . |
-- 16 | 110- ----- | .... ..1. 1 .... .... . |
-- 17 | --0- ----- | 11.. .... . .... .... . |
-- 18 | 101- ----- | 1... ...1 . .... .... . |
-- 19 | -0-- ----- | .11. .... . .... .... . |
-- *=====================================================================*
--
-- Table CAM_MASK_BITS Signal Assignments for Product Terms
MQQ230:CAM_MASK_BITS_PT(1) <=
Eq(( EX6_DATA_IN_Q(55) & EX6_DATA_IN_Q(56) &
EX6_DATA_IN_Q(57) & EX6_DATA_IN_Q(58) &
EX6_DATA_IN_Q(59) ) , STD_ULOGIC_VECTOR'("11010"));
MQQ231:CAM_MASK_BITS_PT(2) <=
Eq(( EX6_DATA_IN_Q(56) & EX6_DATA_IN_Q(59)
) , STD_ULOGIC_VECTOR'("00"));
MQQ232:CAM_MASK_BITS_PT(3) <=
Eq(( EX6_DATA_IN_Q(55) & EX6_DATA_IN_Q(56) &
EX6_DATA_IN_Q(57) & EX6_DATA_IN_Q(58) &
EX6_DATA_IN_Q(59) ) , STD_ULOGIC_VECTOR'("10101"));
MQQ233:CAM_MASK_BITS_PT(4) <=
Eq(( EX6_DATA_IN_Q(55) & EX6_DATA_IN_Q(56) &
EX6_DATA_IN_Q(57) & EX6_DATA_IN_Q(58) &
EX6_DATA_IN_Q(59) ) , STD_ULOGIC_VECTOR'("10011"));
MQQ234:CAM_MASK_BITS_PT(5) <=
Eq(( EX6_DATA_IN_Q(55) & EX6_DATA_IN_Q(56) &
EX6_DATA_IN_Q(57) & EX6_DATA_IN_Q(58) &
EX6_DATA_IN_Q(59) ) , STD_ULOGIC_VECTOR'("10111"));
MQQ235:CAM_MASK_BITS_PT(6) <=
Eq(( EX6_DATA_IN_Q(55) & EX6_DATA_IN_Q(56) &
EX6_DATA_IN_Q(58) & EX6_DATA_IN_Q(59)
) , STD_ULOGIC_VECTOR'("0011"));
MQQ236:CAM_MASK_BITS_PT(7) <=
Eq(( EX6_DATA_IN_Q(56) & EX6_DATA_IN_Q(59)
) , STD_ULOGIC_VECTOR'("11"));
MQQ237:CAM_MASK_BITS_PT(8) <=
Eq(( EX6_DATA_IN_Q(57) & EX6_DATA_IN_Q(58)
) , STD_ULOGIC_VECTOR'("00"));
MQQ238:CAM_MASK_BITS_PT(9) <=
Eq(( EX6_DATA_IN_Q(58) ) , STD_ULOGIC'('0'));
MQQ239:CAM_MASK_BITS_PT(10) <=
Eq(( EX6_DATA_IN_Q(56) & EX6_DATA_IN_Q(57)
) , STD_ULOGIC_VECTOR'("00"));
MQQ240:CAM_MASK_BITS_PT(11) <=
Eq(( EX6_DATA_IN_Q(56) & EX6_DATA_IN_Q(57)
) , STD_ULOGIC_VECTOR'("11"));
MQQ241:CAM_MASK_BITS_PT(12) <=
Eq(( TLB_REL_DATA_Q(52) & TLB_REL_DATA_Q(55)
) , STD_ULOGIC_VECTOR'("10"));
MQQ242:CAM_MASK_BITS_PT(13) <=
Eq(( TLB_REL_DATA_Q(52) & TLB_REL_DATA_Q(53) &
TLB_REL_DATA_Q(54) & TLB_REL_DATA_Q(55)
) , STD_ULOGIC_VECTOR'("1111"));
MQQ243:CAM_MASK_BITS_PT(14) <=
Eq(( TLB_REL_DATA_Q(52) & TLB_REL_DATA_Q(54) &
TLB_REL_DATA_Q(55) ) , STD_ULOGIC_VECTOR'("011"));
MQQ244:CAM_MASK_BITS_PT(15) <=
Eq(( TLB_REL_DATA_Q(53) & TLB_REL_DATA_Q(54)
) , STD_ULOGIC_VECTOR'("00"));
MQQ245:CAM_MASK_BITS_PT(16) <=
Eq(( TLB_REL_DATA_Q(52) & TLB_REL_DATA_Q(53) &
TLB_REL_DATA_Q(54) ) , STD_ULOGIC_VECTOR'("110"));
MQQ246:CAM_MASK_BITS_PT(17) <=
Eq(( TLB_REL_DATA_Q(54) ) , STD_ULOGIC'('0'));
MQQ247:CAM_MASK_BITS_PT(18) <=
Eq(( TLB_REL_DATA_Q(52) & TLB_REL_DATA_Q(53) &
TLB_REL_DATA_Q(54) ) , STD_ULOGIC_VECTOR'("101"));
MQQ248:CAM_MASK_BITS_PT(19) <=
Eq(( TLB_REL_DATA_Q(53) ) , STD_ULOGIC'('0'));
-- Table CAM_MASK_BITS Signal Assignments for Outputs
MQQ249:TLB_REL_CMPMASK(0) <=
(CAM_MASK_BITS_PT(13) OR CAM_MASK_BITS_PT(14)
OR CAM_MASK_BITS_PT(17) OR CAM_MASK_BITS_PT(18)
);
MQQ250:TLB_REL_CMPMASK(1) <=
(CAM_MASK_BITS_PT(17) OR CAM_MASK_BITS_PT(19)
);
MQQ251:TLB_REL_CMPMASK(2) <=
(CAM_MASK_BITS_PT(19));
MQQ252:TLB_REL_CMPMASK(3) <=
(CAM_MASK_BITS_PT(15));
MQQ253:TLB_REL_XBITMASK(0) <=
(CAM_MASK_BITS_PT(12));
MQQ254:TLB_REL_XBITMASK(1) <=
(CAM_MASK_BITS_PT(13));
MQQ255:TLB_REL_XBITMASK(2) <=
(CAM_MASK_BITS_PT(16));
MQQ256:TLB_REL_XBITMASK(3) <=
(CAM_MASK_BITS_PT(18));
MQQ257:TLB_REL_MASKPAR <=
(CAM_MASK_BITS_PT(12) OR CAM_MASK_BITS_PT(14)
OR CAM_MASK_BITS_PT(16));
MQQ258:EX6_DATA_CMPMASK(0) <=
(CAM_MASK_BITS_PT(2) OR CAM_MASK_BITS_PT(4)
OR CAM_MASK_BITS_PT(5) OR CAM_MASK_BITS_PT(6)
OR CAM_MASK_BITS_PT(7) OR CAM_MASK_BITS_PT(9)
OR CAM_MASK_BITS_PT(11));
MQQ259:EX6_DATA_CMPMASK(1) <=
(CAM_MASK_BITS_PT(2) OR CAM_MASK_BITS_PT(7)
OR CAM_MASK_BITS_PT(9) OR CAM_MASK_BITS_PT(10)
OR CAM_MASK_BITS_PT(11));
MQQ260:EX6_DATA_CMPMASK(2) <=
(CAM_MASK_BITS_PT(2) OR CAM_MASK_BITS_PT(7)
OR CAM_MASK_BITS_PT(8) OR CAM_MASK_BITS_PT(10)
OR CAM_MASK_BITS_PT(11));
MQQ261:EX6_DATA_CMPMASK(3) <=
(CAM_MASK_BITS_PT(2) OR CAM_MASK_BITS_PT(7)
OR CAM_MASK_BITS_PT(8) OR CAM_MASK_BITS_PT(11)
);
MQQ262:EX6_DATA_XBITMASK(0) <=
(CAM_MASK_BITS_PT(1));
MQQ263:EX6_DATA_XBITMASK(1) <=
(CAM_MASK_BITS_PT(5));
MQQ264:EX6_DATA_XBITMASK(2) <=
(CAM_MASK_BITS_PT(3));
MQQ265:EX6_DATA_XBITMASK(3) <=
(CAM_MASK_BITS_PT(4));
MQQ266:EX6_DATA_MASKPAR <=
(CAM_MASK_BITS_PT(1) OR CAM_MASK_BITS_PT(3)
OR CAM_MASK_BITS_PT(6));
wr_array_val <= por_wr_array_val when por_seq_q/=PorSeq_Idle
else (others => '0') when (ex6_valid_q/="0000" and ex6_ttype_q(4 to 5)/="00")
else (others => tlb_rel_data_q(eratpos_wren))
when (tlb_rel_val_q(0 to 3)/="0000" and tlb_rel_val_q(4)='1')
else (others => '1') when (ex6_valid_q/="0000" and ex6_ttype_q(1)='1'
and ex6_ws_q="00" and ex6_tlbsel_q=TlbSel_IErat)
else (others => '0');
-- tlb_high_data
-- 84 - 0 - X-bit
-- 85:87 - 1:3 - reserved (3b)
-- 88:117 - 4:33 - RPN (30b)
-- 118:119 - 34:35 - R,C
-- 120:121 - 36:37 - WLC (2b)
-- 122 - 38 - ResvAttr
-- 123 - 39 - VF
-- 124 - 40 - IND
-- 125:128 - 41:44 - U0-U3
-- 129:133 - 45:49 - WIMGE
-- 134:136 - 50:52 - UX,UW,UR
-- 137:139 - 53:55 - SX,SW,SR
-- 140 - 56 - GS
-- 141 - 57 - TS
-- 142:143 - 58:59 - reserved (2b)
-- 144:149 - 60:65 - 6b TID msbs
-- 150:157 - 66:73 - 8b TID lsbs
-- 158:167 - 74:83 - parity 10bits
-- 16x143 version, 42b RA
-- wr_array_data
-- 0:29 - RPN
-- 30:31 - R,C
-- 32:33 - WLC
-- 34 - ResvAttr
-- 35 - VF
-- 36:39 - U0-U3
-- 40:44 - WIMGE
-- 45:46 - UX,SX
-- 47:48 - UW,SW
-- 49:50 - UR,SR
-- 51:60 - CAM parity
-- 61:67 - Array parity
-- wr_ws1_data (HI)
-- 0:7 - unused
-- 8:9 - WLC
-- 10 - ResvAttr
-- 11 - unused
-- 12:15 - U0-U3
-- 16:17 - R,C
-- 18:21 - unused
-- 22:51 - RPN
-- 52:56 - WIMGE
-- 57 - VF (not supported in ierat)
-- 58:59 - UX,SX
-- 60:61 - UW,SW
-- 62:63 - UR,SR
wr_array_data_nopar <= por_wr_array_data(0 to 50) when por_seq_q/=PorSeq_Idle
else (tlb_rel_data_q(70 to 101) & tlb_rel_data_q(103 to 121))
when (tlb_rel_val_q(0 to 3)/="0000" and tlb_rel_val_q(4)='1')
else (rpn_holdreg0_q(22 to 51) & rpn_holdreg0_q(16 to 17) & rpn_holdreg0_q(8 to 10) & '0' &
rpn_holdreg0_q(12 to 15) & rpn_holdreg0_q(52 to 56) & rpn_holdreg0_q(58 to 63))
when (ex6_valid_q(0)='1' and ex6_ttype_q(1)='1' and ex6_ws_q="00")
else (rpn_holdreg1_q(22 to 51) & rpn_holdreg1_q(16 to 17) & rpn_holdreg1_q(8 to 10) & '0' &
rpn_holdreg1_q(12 to 15) & rpn_holdreg1_q(52 to 56) & rpn_holdreg1_q(58 to 63))
when (ex6_valid_q(1)='1' and ex6_ttype_q(1)='1' and ex6_ws_q="00")
else (rpn_holdreg2_q(22 to 51) & rpn_holdreg2_q(16 to 17) & rpn_holdreg2_q(8 to 10) & '0' &
rpn_holdreg2_q(12 to 15) & rpn_holdreg2_q(52 to 56) & rpn_holdreg2_q(58 to 63))
when (ex6_valid_q(2)='1' and ex6_ttype_q(1)='1' and ex6_ws_q="00")
else (rpn_holdreg3_q(22 to 51) & rpn_holdreg3_q(16 to 17) & rpn_holdreg3_q(8 to 10) & '0' &
rpn_holdreg3_q(12 to 15) & rpn_holdreg3_q(52 to 56) & rpn_holdreg3_q(58 to 63))
when (ex6_valid_q(3)='1' and ex6_ttype_q(1)='1' and ex6_ws_q="00")
else (others => '0');
-- PARITY DEF's
wr_array_par(51) <= xor_reduce(wr_cam_data(0 to 7));
wr_array_par(52) <= xor_reduce(wr_cam_data(8 to 15));
wr_array_par(53) <= xor_reduce(wr_cam_data(16 to 23));
wr_array_par(54) <= xor_reduce(wr_cam_data(24 to 31));
wr_array_par(55) <= xor_reduce(wr_cam_data(32 to 39));
wr_array_par(56) <= xor_reduce(wr_cam_data(40 to 47));
wr_array_par(57) <= xor_reduce(wr_cam_data(48 to 55));
wr_array_par(58) <= xor_reduce(wr_cam_data(57 to 62));
wr_array_par(59) <= xor_reduce(wr_cam_data(63 to 66));
wr_array_par(60) <= xor_reduce(wr_cam_data(67 to 74));
wr_array_par(61) <= xor_reduce(wr_array_data_nopar(0 to 5));
wr_array_par(62) <= xor_reduce(wr_array_data_nopar(6 to 13));
wr_array_par(63) <= xor_reduce(wr_array_data_nopar(14 to 21));
wr_array_par(64) <= xor_reduce(wr_array_data_nopar(22 to 29));
wr_array_par(65) <= xor_reduce(wr_array_data_nopar(30 to 37));
wr_array_par(66) <= xor_reduce(wr_array_data_nopar(38 to 44));
wr_array_par(67) <= xor_reduce(wr_array_data_nopar(45 to 50));
wr_array_data(0 TO 50) <= wr_array_data_nopar;
wr_array_data(51 TO 67) <= (wr_array_par(51 to 60) & wr_array_par(61 to 67))
when ((tlb_rel_val_q(0 to 3)/="0000" and tlb_rel_val_q(4)='1') or
por_seq_q/=PorSeq_Idle)
else ((wr_array_par(51) xor mmucr1_q(5)) & wr_array_par(52 to 60) &
(wr_array_par(61) xor mmucr1_q(6)) & wr_array_par(62 to 67))
when (ex6_valid_q(0 to 3)/="0000" and ex6_ttype_q(1)='1' and ex6_ws_q="00")
else (others => '0');
-- Parity Checking
unused_dc(22) <= lcb_delay_lclkr_dc(1) or lcb_mpw1_dc_b(1);
iu2_cmp_data_calc_par(50) <= xor_reduce(iu2_cam_cmp_data_q(75 to 82));
iu2_cmp_data_calc_par(51) <= xor_reduce(iu2_cam_cmp_data_q(0 to 7));
iu2_cmp_data_calc_par(52) <= xor_reduce(iu2_cam_cmp_data_q(8 to 15));
iu2_cmp_data_calc_par(53) <= xor_reduce(iu2_cam_cmp_data_q(16 to 23));
iu2_cmp_data_calc_par(54) <= xor_reduce(iu2_cam_cmp_data_q(24 to 31));
iu2_cmp_data_calc_par(55) <= xor_reduce(iu2_cam_cmp_data_q(32 to 39));
iu2_cmp_data_calc_par(56) <= xor_reduce(iu2_cam_cmp_data_q(40 to 47));
iu2_cmp_data_calc_par(57) <= xor_reduce(iu2_cam_cmp_data_q(48 to 55));
iu2_cmp_data_calc_par(58) <= xor_reduce(iu2_cam_cmp_data_q(57 to 62));
iu2_cmp_data_calc_par(59) <= xor_reduce(iu2_cam_cmp_data_q(63 to 66));
iu2_cmp_data_calc_par(60) <= xor_reduce(iu2_cam_cmp_data_q(67 to 74));
iu2_cmp_data_calc_par(61) <= xor_reduce(iu2_array_cmp_data_q(0 to 5));
iu2_cmp_data_calc_par(62) <= xor_reduce(iu2_array_cmp_data_q(6 to 13));
iu2_cmp_data_calc_par(63) <= xor_reduce(iu2_array_cmp_data_q(14 to 21));
iu2_cmp_data_calc_par(64) <= xor_reduce(iu2_array_cmp_data_q(22 to 29));
iu2_cmp_data_calc_par(65) <= xor_reduce(iu2_array_cmp_data_q(30 to 37));
iu2_cmp_data_calc_par(66) <= xor_reduce(iu2_array_cmp_data_q(38 to 44));
iu2_cmp_data_calc_par(67) <= xor_reduce(iu2_array_cmp_data_q(45 to 50));
ex4_rd_data_calc_par(50) <= xor_reduce(ex4_rd_cam_data_q(75 to 82));
ex4_rd_data_calc_par(51) <= xor_reduce(ex4_rd_cam_data_q(0 to 7));
ex4_rd_data_calc_par(52) <= xor_reduce(ex4_rd_cam_data_q(8 to 15));
ex4_rd_data_calc_par(53) <= xor_reduce(ex4_rd_cam_data_q(16 to 23));
ex4_rd_data_calc_par(54) <= xor_reduce(ex4_rd_cam_data_q(24 to 31));
ex4_rd_data_calc_par(55) <= xor_reduce(ex4_rd_cam_data_q(32 to 39));
ex4_rd_data_calc_par(56) <= xor_reduce(ex4_rd_cam_data_q(40 to 47));
ex4_rd_data_calc_par(57) <= xor_reduce(ex4_rd_cam_data_q(48 to 55));
ex4_rd_data_calc_par(58) <= xor_reduce(ex4_rd_cam_data_q(57 to 62));
ex4_rd_data_calc_par(59) <= xor_reduce(ex4_rd_cam_data_q(63 to 66));
ex4_rd_data_calc_par(60) <= xor_reduce(ex4_rd_cam_data_q(67 to 74));
ex4_rd_data_calc_par(61) <= xor_reduce(ex4_rd_array_data_q(0 to 5));
ex4_rd_data_calc_par(62) <= xor_reduce(ex4_rd_array_data_q(6 to 13));
ex4_rd_data_calc_par(63) <= xor_reduce(ex4_rd_array_data_q(14 to 21));
ex4_rd_data_calc_par(64) <= xor_reduce(ex4_rd_array_data_q(22 to 29));
ex4_rd_data_calc_par(65) <= xor_reduce(ex4_rd_array_data_q(30 to 37));
ex4_rd_data_calc_par(66) <= xor_reduce(ex4_rd_array_data_q(38 to 44));
ex4_rd_data_calc_par(67) <= xor_reduce(ex4_rd_array_data_q(45 to 50));
parerr_gen0: if check_parity = 0 generate
iu2_cmp_data_parerr_epn <= '0';
iu2_cmp_data_parerr_rpn <= '0';
end generate parerr_gen0;
parerr_gen1: if check_parity = 1 generate
iu2_cmp_data_parerr_epn <= or_reduce(iu2_cmp_data_calc_par(50 to 60) xor (iu2_cam_cmp_data_q(83) & iu2_array_cmp_data_q(51 to 60)));
iu2_cmp_data_parerr_rpn <= or_reduce(iu2_cmp_data_calc_par(61 to 67) xor iu2_array_cmp_data_q(61 to 67));
end generate parerr_gen1;
parerr_gen2: if check_parity = 0 generate
ex4_rd_data_parerr_epn <= '0';
ex4_rd_data_parerr_rpn <= '0';
end generate parerr_gen2;
parerr_gen3: if check_parity = 1 generate
ex4_rd_data_parerr_epn <= or_reduce(ex4_rd_data_calc_par(50 to 60) xor (ex4_rd_cam_data_q(83) & ex4_rd_array_data_q(51 to 60)));
ex4_rd_data_parerr_rpn <= or_reduce(ex4_rd_data_calc_par(61 to 67) xor ex4_rd_array_data_q(61 to 67));
end generate parerr_gen3;
-- end of parity checking
-- CAM Port
flash_invalidate <= Eq(por_seq_q,PorSeq_Stg1) or mchk_flash_inv_enab;
comp_invalidate <= '1' when (ex6_valid_q/="0000" and ex6_ttype_q(4 to 5)/="00")
else '0' when (tlb_rel_val_q(0 to 3)/="0000" and tlb_rel_val_q(4)='1')
else '1' when snoop_val_q(0 to 1)="11"
else '0';
comp_request <= ( or_reduce(ex6_valid_q) and or_reduce(ex6_ttype_q(4 to 5)) )
or ( snoop_val_q(0) and snoop_val_q(1) and not(or_reduce(tlb_rel_val_q(0 to 3)) and tlb_rel_val_q(4)) )
or ( ex1_ieratsx )
or ( iu_ierat_iu0_val );
gen64_comp_addr: if rs_data_width = 64 generate
comp_addr_mux1 <= ( snoop_addr_q and (52-epn_width to 51 => (snoop_val_q(0) and snoop_val_q(1))) )
or ( xu_iu_ex1_rb and (64-rs_data_width to 51 => (not(snoop_val_q(0) and snoop_val_q(1)) and ex1_ieratsx)) );
comp_addr_mux1_sel <= (snoop_val_q(0) and snoop_val_q(1)) or (ex1_ieratsx and snoop_val_q(1));
comp_addr <= ( comp_addr_mux1 and (52-epn_width to 51 => comp_addr_mux1_sel) ) or
( iu_ierat_iu0_ifar and (52-epn_width to 51 => not comp_addr_mux1_sel) );
end generate gen64_comp_addr;
iu_xu_ierat_ex2_flush_d <= ( ex1_valid_q and not(xu_ex1_flush) and (0 to 3 => (ex1_ieratsx and not snoop_val_q(1))) )
or ( ex1_valid_q and not(xu_ex1_flush) and (0 to 3 => ((ex1_ieratre or ex1_ieratwe or ex1_ieratsx) and tlb_rel_data_q(eratpos_relsoon))) );
iu_xu_ierat_ex2_flush_req <= iu_xu_ierat_ex2_flush_q;
gen32_comp_addr: if rs_data_width = 32 generate
comp_addr_mux1 <= ( ((0 to 31 => '0') & snoop_addr_q) and (52-epn_width to 51 => (snoop_val_q(0) and snoop_val_q(1))) )
or ( ((0 to 31 => '0') & xu_iu_ex1_rb) and (64-rs_data_width to 51 => (not(snoop_val_q(0) and snoop_val_q(1)) and ex1_ieratsx)) );
comp_addr_mux1_sel <= (snoop_val_q(0) and snoop_val_q(1)) or ex1_ieratsx;
comp_addr <= ( comp_addr_mux1 and (0 to 51 => comp_addr_mux1_sel) )
or ( ((0 to 31 => '0') & iu_ierat_iu0_ifar(32 to 51)) and (0 to 51 => not comp_addr_mux1_sel) );
end generate gen32_comp_addr;
-- ex1_rs_is(0 to 9) from erativax instr.
-- RS(55) -> ex1_rs_is(0) -> snoop_attr(0) -> Local
-- RS(56:57) -> ex1_rs_is(1:2) -> snoop_attr(0:1) -> IS
-- RS(58:59) -> ex1_rs_is(3:4) -> snoop_attr(2:3) -> Class
-- n/a -> n/a -> snoop_attr(4:5) -> State
-- n/a -> n/a -> snoop_attr(6:13) -> TID(6:13)
-- RS(60:63) -> ex1_rs_is(5:8) -> snoop_attr(14:17) -> Size
-- n/a -> n/a -> snoop_attr(20:25) -> TID(0:5)
-- snoop_attr:
-- 0 -> Local
-- 1:3 -> IS/Class: 0=all, 1=tid, 2=gs, 3=epn, 4=class0, 5=class1, 6=class2, 7=class3
-- 4:5 -> GS/TS
-- 6:13 -> TID(6:13)
-- 14:17 -> Size
-- 18 -> reserved for tlb, extclass_enable(0) for erats
-- 19 -> mmucsr0.tlb0fi for tlb, or TID_NZ for erats
-- 20:25 -> TID(0:5)
addr_enable(0) <= not(or_reduce(ex6_valid_q) and or_reduce(ex6_ttype_q(4 to 5))) and
( (snoop_val_q(0) and snoop_val_q(1) and not snoop_attr_q(1) and snoop_attr_q(2) and snoop_attr_q(3))
or (or_reduce(ex1_valid_q) and ex1_ttype_q(2) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1) and not(snoop_val_q(0) and snoop_val_q(1)))
or (iu_ierat_iu0_val and not(snoop_val_q(0) and snoop_val_q(1))) );
addr_enable(1) <= not(or_reduce(ex6_valid_q) and or_reduce(ex6_ttype_q(4 to 5))) and
( (snoop_val_q(0) and snoop_val_q(1) and snoop_attr_q(0) and not snoop_attr_q(1) and snoop_attr_q(2) and snoop_attr_q(3))
or (or_reduce(ex1_valid_q) and ex1_ttype_q(2) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1) and not(snoop_val_q(0) and snoop_val_q(1)))
or (iu_ierat_iu0_val and not(snoop_val_q(0) and snoop_val_q(1))) );
comp_pgsize <= CAM_PgSize_1GB when snoop_attr_q(14 to 17)=WS0_PgSize_1GB
else CAM_PgSize_16MB when snoop_attr_q(14 to 17)=WS0_PgSize_16MB
else CAM_PgSize_1MB when snoop_attr_q(14 to 17)=WS0_PgSize_1MB
else CAM_PgSize_64KB when snoop_attr_q(14 to 17)=WS0_PgSize_64KB
else CAM_PgSize_4KB;
pgsize_enable <= '0' when (ex6_valid_q/="0000" and ex6_ttype_q(4 to 5)/="00")
else '1' when (snoop_val_q(0 to 1)="11" and snoop_attr_q(0 to 3)="0011")
else '0';
-- mmucr1_q: 0-IRRE, 1-REE, 2-CEE, 3-csync, 4-isync, 5:6-IPEI, 7:8-ICTID/ITTID
comp_class <= ( snoop_attr_q(20 to 21) and (0 to 1 => (snoop_val_q(0) and snoop_val_q(1) and mmucr1_q(7))) )
or ( snoop_attr_q(2 to 3) and (0 to 1 => (snoop_val_q(0) and snoop_val_q(1) and not mmucr1_q(7))) )
or ( ex1_pid_q(pid_width-14 to pid_width-13) and (0 to 1 => (not(snoop_val_q(0) and snoop_val_q(1)) and mmucr1_q(7) and ex1_ieratsx)) )
or ( iu1_pid_d(pid_width-14 to pid_width-13) and (0 to 1 => (not(snoop_val_q(0) and snoop_val_q(1)) and mmucr1_q(7) and not(ex1_ieratsx))) );
class_enable(0) <= '0' when (mmucr1_q(7)='1')
else '0' when (ex6_valid_q/="0000" and ex6_ttype_q(4 to 5)/="00")
else '1' when (snoop_val_q(0 to 1)="11" and snoop_attr_q(1)='1')
else '0';
class_enable(1) <= '0' when (mmucr1_q(7)='1')
else '0' when (ex6_valid_q/="0000" and ex6_ttype_q(4 to 5)/="00")
else '1' when (snoop_val_q(0 to 1)="11" and snoop_attr_q(1)='1')
else '0';
class_enable(2) <= '0' when (mmucr1_q(7)='0')
else pid_enable;
-- snoop_attr:
-- 0 -> Local
-- 1:3 -> IS/Class: 0=all, 1=tid, 2=gs, 3=epn, 4=class0, 5=class1, 6=class2, 7=class3
-- 4:5 -> GS/TS
-- 6:13 -> TID(6:13)
-- 14:17 -> Size
-- 18 -> reserved for tlb, extclass_enable(0) for erats
-- 19 -> mmucsr0.tlb0fi for tlb, or TID_NZ for erats
-- 20:25 -> TID(0:5)
--comp_extclass <= (others => '0'); -- std_ulogic_vector(0 to 1);
--extclass_enable <= 10 when (ex6_valid_q/= 0000 and ex6_ttype_q(4 to 5)/= 00 ) -- csync or isync enabled
-- else 10 when (snoop_val_q(0 to 1)= 11 ) -- any invalidate snoop
-- else 00 ; -- std_ulogic;
comp_extclass(0) <= '0';
comp_extclass(1) <= snoop_attr_q(19);
extclass_enable(0) <= ( or_reduce(ex6_valid_q) and or_reduce(ex6_ttype_q(4 to 5)) )
or ( snoop_val_q(0) and snoop_val_q(1) and snoop_attr_q(18) );
extclass_enable(1) <= ( snoop_val_q(0) and snoop_val_q(1) and not snoop_attr_q(1) and snoop_attr_q(3) );
-- state: 0:pr 1:gs 2:is 3:cm
-- cam state bits are 0:HS, 1:AS
comp_state <= ( snoop_attr_q(4 to 5) and (0 to 1 => (snoop_val_q(0) and snoop_val_q(1) and not snoop_attr_q(1) and snoop_attr_q(2))) )
or ( ex1_state_q(1 to 2) and (0 to 1 => (not(snoop_val_q(0) and snoop_val_q(1)) and ex1_ieratsx)) )
or ( iu1_state_d(1 to 2) and (0 to 1 => (not(snoop_val_q(0) and snoop_val_q(1)) and not ex1_ieratsx)) ) ;
state_enable(0) <= not(or_reduce(ex6_valid_q) and or_reduce(ex6_ttype_q(4 to 5))) and
( (snoop_val_q(0) and snoop_val_q(1) and not snoop_attr_q(1) and snoop_attr_q(2) )
or (or_reduce(ex1_valid_q) and ex1_ttype_q(2) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1) and not(snoop_val_q(0) and snoop_val_q(1)))
or (iu_ierat_iu0_val and not(snoop_val_q(0) and snoop_val_q(1))) );
state_enable(1) <= not(or_reduce(ex6_valid_q) and or_reduce(ex6_ttype_q(4 to 5))) and
( (snoop_val_q(0) and snoop_val_q(1) and not snoop_attr_q(1) and snoop_attr_q(2) and snoop_attr_q(3))
or (or_reduce(ex1_valid_q) and ex1_ttype_q(2) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1) and not(snoop_val_q(0) and snoop_val_q(1)))
or (iu_ierat_iu0_val and not(snoop_val_q(0) and snoop_val_q(1))) );
comp_thdid <= ( snoop_attr_q(22 to 25) and (0 to 3 => (mmucr1_q(8) and snoop_val_q(0) and snoop_val_q(1))) )
or ( ex1_pid_q(pid_width-12 to pid_width-9) and (0 to 3 => (mmucr1_q(8) and not(snoop_val_q(0) and snoop_val_q(1)) and ex1_ieratsx)) )
or ( iu1_pid_d(pid_width-12 to pid_width-9) and (0 to 3 => (mmucr1_q(8) and not(snoop_val_q(0) and snoop_val_q(1)) and not ex1_ieratsx)) )
or ( 0 to 3 => (snoop_val_q(0) and snoop_val_q(1) and not mmucr1_q(8)) )
or ( ex1_valid_q and (0 to 3 => (ex1_ttype_q(2) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1) and not(snoop_val_q(0) and snoop_val_q(1)) and not mmucr1_q(8))) )
or ( iu_ierat_iu0_thdid and (0 to 3 => ((not or_reduce(ex1_valid_q) or not ex1_ttype_q(2) or not Eq(ex1_tlbsel_q,TlbSel_IErat))
and not(snoop_val_q(0) and snoop_val_q(1)) and not mmucr1_q(8))) );
thdid_enable(0) <= ( (iu_ierat_iu0_val or (or_reduce(ex1_valid_q) and ex1_ttype_q(2) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1))) and
(not mmucr1_q(8) and not(snoop_val_q(0) and snoop_val_q(1)) and not(or_reduce(ex6_valid_q) and or_reduce(ex6_ttype_q(4 to 5)))) );
thdid_enable(1) <= pid_enable and mmucr1_q(8);
comp_pid <= ( snoop_attr_q(6 to 13) and (0 to 7 => (snoop_val_q(0) and snoop_val_q(1))) )
or ( ex1_pid_q(pid_width-8 to pid_width-1) and
(0 to 7 => (or_reduce(ex1_valid_q) and ex1_ttype_q(2) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1) and not(snoop_val_q(0) and snoop_val_q(1)))) )
or ( iu1_pid_d(pid_width-8 to pid_width-1) and
(0 to 7 => (not(or_reduce(ex1_valid_q) and ex1_ttype_q(2) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1)) and not(snoop_val_q(0) and snoop_val_q(1)))) );
pid_enable <= not(or_reduce(ex6_valid_q) and or_reduce(ex6_ttype_q(4 to 5))) and
( (snoop_val_q(0) and snoop_val_q(1) and not snoop_attr_q(1) and snoop_attr_q(3))
or (or_reduce(ex1_valid_q) and ex1_ttype_q(2) and ex1_tlbsel_q(0) and not ex1_tlbsel_q(1) and not(snoop_val_q(0) and snoop_val_q(1)))
or (iu_ierat_iu0_val and not(snoop_val_q(0) and snoop_val_q(1))) );
-- wr_cam_data
-- 0:51 - EPN
-- 52 - X
-- 53:55 - SIZE
-- 56 - V
-- 57:60 - ThdID
-- 61:62 - Class
-- 63:64 - ExtClass | TID_NZ
-- 65 - TGS
-- 66 - TS
-- 67:74 - TID
-- 75:78 - epn_cmpmasks: 34_39, 40_43, 44_47, 48_51
-- 79:82 - xbit_cmpmasks: 34_51, 40_51, 44_51, 48_51
-- 83 - parity for 75:82
-- 16x143 version, 42b RA
-- wr_array_data
-- 0:29 - RPN
-- 30:31 - R,C
-- 32:33 - WLC
-- 34 - ResvAttr
-- 35 - VF
-- 36:39 - U0-U3
-- 40:44 - WIMGE
-- 45:46 - UX,SX
-- 47:48 - UW,SW
-- 49:50 - UR,SR
-- 51:60 - CAM parity
-- 61:67 - Array parity
-- wr_ws0_data (LO)
-- 0:51 - EPN
-- 52:53 - Class
-- 54 - V
-- 55 - X
-- 56:59 - SIZE
-- 60:63 - ThdID
-- CAM.ExtClass - MMUCR ExtClass
-- CAM.TS - MMUCR TS
-- CAM.TID - MMUCR TID
-- wr_ws1_data (HI)
-- 0:7 - unused
-- 8:9 - WLC
-- 10 - ResvAttr
-- 11 - unused
-- 12:15 - U0-U3
-- 16:17 - R,C
-- 18:21 - unused
-- 22:51 - RPN
-- 52:56 - WIMGE
-- 57 - VF (not supported in ierat)
-- 58:59 - UX,SX
-- 60:61 - UW,SW
-- 62:63 - UR,SR
-- EPN Class V
-- X SIZE ThdID
-- Unused ResvAttr U0-U3 R,C
-- RPN WIMGE Unused UX,UW,UR,SX,SW,SR
gen64_data_out: if data_out_width = 64 generate
ex4_data_out_d <= ( ((0 to 31 => '0') & rd_cam_data(32 to 51) & rd_cam_data(61 to 62) & rd_cam_data(56) &
rd_cam_data(52) & ws0_pgsize(0 to 3) & rd_cam_data(57 to 60))
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and not ex3_ws_q(0) and not ex3_ws_q(1) and not ex3_state_q(3))) )
or ( ((0 to 31 => '0') & rd_array_data(10 to 29) & "00" & rd_array_data(0 to 9))
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and not ex3_ws_q(0) and ex3_ws_q(1) and not ex3_state_q(3))) )
or ( ((0 to 31 => '0') & "00000000" & rd_array_data(32 to 34) & '0' & rd_array_data(36 to 39) & rd_array_data(30 to 31) &
"00" & rd_array_data(40 to 44) & '0' & rd_array_data(45 to 50))
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and ex3_ws_q(0) and not ex3_ws_q(1) and not ex3_state_q(3))) )
or ( (rd_cam_data(0 to 51) & rd_cam_data(61 to 62) & rd_cam_data(56) &
rd_cam_data(52) & ws0_pgsize(0 to 3) & rd_cam_data(57 to 60))
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and not ex3_ws_q(0) and not ex3_ws_q(1) and ex3_state_q(3))) )
or ( ("00000000" & rd_array_data(32 to 34) & '0' & rd_array_data(36 to 39) & rd_array_data(30 to 31) &
"0000" & rd_array_data(0 to 29) & rd_array_data(40 to 44) & '0' & rd_array_data(45 to 50))
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and not ex3_ws_q(0) and ex3_ws_q(1) and ex3_state_q(3))) )
or ( ((0 to 47-watermark_width => '0') & (watermark_q and (48-watermark_width to 47 => bcfg_q(107))) & (48 to 63-eptr_width => '0') & eptr_q)
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and ex3_ws_q(0) and ex3_ws_q(1) and mmucr1_q(0))) )
or ( ((0 to 47-watermark_width => '0') & (watermark_q and (48-watermark_width to 47 => bcfg_q(107))) & (48 to 63-num_entry_log2 => '0') & lru_way_encode)
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and ex3_ws_q(0) and ex3_ws_q(1) and not mmucr1_q(0))) )
or ( ((0 to 49 => '0') & ex3_eratsx_data_q(0 to 1) & (52 to 59 => '0') & ex3_eratsx_data_q(2 to 2+num_entry_log2-1))
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(2))) );
end generate gen64_data_out;
gen32_data_out: if data_out_width = 32 generate
ex4_data_out_d <= ( (rd_cam_data(32 to 51) & rd_cam_data(61 to 62) & rd_cam_data(56) &
rd_cam_data(52) & ws0_pgsize(0 to 3) & rd_cam_data(57 to 60))
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and not ex3_ws_q(0) and not ex3_ws_q(1))) )
or ( (rd_array_data(10 to 29) & "00" & rd_array_data(0 to 9))
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and not ex3_ws_q(0) and ex3_ws_q(1))) )
or ( ("00000000" & rd_array_data(32 to 34) & '0' & rd_array_data(36 to 39) & rd_array_data(30 to 31) &
"00" & rd_array_data(40 to 44) & rd_array_data(35) & rd_array_data(45 to 50))
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and ex3_ws_q(0) and not ex3_ws_q(1))) )
or ( ((32 to 47-watermark_width => '0') & (watermark_q and (48-watermark_width to 47 => bcfg_q(107))) & (48 to 63-eptr_width => '0') & eptr_q)
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and ex3_ws_q(0) and ex3_ws_q(1) and mmucr1_q(0))) )
or ( ((32 to 47-watermark_width => '0') & (watermark_q and (48-watermark_width to 47 => bcfg_q(107))) & (48 to 63-num_entry_log2 => '0') & lru_way_encode)
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(0) and ex3_ws_q(0) and ex3_ws_q(1) and not mmucr1_q(0))) )
or ( ((32 to 49 => '0') & ex3_eratsx_data_q(0 to 1) & (52 to 59 => '0') & ex3_eratsx_data_q(2 to 2+num_entry_log2-1))
and (64-data_out_width to 63 => (or_reduce(ex3_valid_q) and ex3_ttype_q(2))) );
end generate gen32_data_out;
-- ERAT outputs
-- pass thru ifar offset bits depending on page size from cam entry
-- wr_cam_data(75) (76) (77) (78) (79) (80) (81) (82)
-- cmpmask(0) (1) (2) (3) xbitmask(0) (1) (2) (3)
-- xbit pgsize 34_39 40_43 44_47 48_51 34_39 40_43 44_47 48_51 size
-- 0 001 1 1 1 1 0 0 0 0 4K
-- 0 011 1 1 1 0 0 0 0 0 64K
-- 0 101 1 1 0 0 0 0 0 0 1M
-- 0 111 1 0 0 0 0 0 0 0 16M
-- 0 110 0 0 0 0 0 0 0 0 1G
-- new cam _np2 bypass attributes (bit numbering per array)
-- 30:31 - R,C
-- 32:33 - WLC
-- 34 - ResvAttr
-- 35 - VF
-- 36:39 - U0-U3
-- 40:44 - WIMGE
-- 45:46 - UX,SX
-- 47:48 - UW,SW
-- 49:50 - UR,SR
bypass_mux_enab_np1 <= (ccr2_frat_paranoia_q(9) or iu_ierat_iu1_back_inv or an_ac_grffence_en_dc);
bypass_attr_np1(0 TO 5) <= (others => '0');
bypass_attr_np1(6 TO 9) <= ccr2_frat_paranoia_q(5 to 8);
bypass_attr_np1(10 TO 14) <= ccr2_frat_paranoia_q(0 to 4);
bypass_attr_np1(15 TO 20) <= "111111";
ierat_iu_iu2_error(0) <= iu2_miss_sig or iu2_multihit_sig or iu2_parerr_sig or iu2_isi_sig;
ierat_iu_iu2_error(1) <= iu2_miss_sig or iu2_multihit_sig;
ierat_iu_iu2_error(2) <= iu2_miss_sig or iu2_parerr_sig;
ierat_iu_iu2_miss <= iu2_miss_sig;
ierat_iu_iu2_multihit <= iu2_multihit_sig;
ierat_iu_iu2_isi <= iu2_isi_sig;
ierat_iu_hold_req <= hold_req_q;
ierat_iu_iu2_flush_req <= iu2_n_flush_req_q;
iu_xu_ex4_data <= ex4_data_out_q;
iu_mm_ierat_req <= iu2_tlbreq_q;
iu_mm_ierat_thdid <= iu2_valid_q;
iu_mm_ierat_state <= iu2_state_q;
iu_mm_ierat_tid <= iu2_pid_q;
iu_mm_ierat_flush <= iu_mm_ierat_flush_q;
iu_mm_ierat_mmucr0 <= ex6_extclass_q & ex6_state_q(1 to 2) & ex6_pid_q;
iu_mm_ierat_mmucr0_we <= ex6_valid_q when (ex6_ttype_q(0)='1' and ex6_ws_q="00" and ex6_tlbsel_q=TlbSel_IErat)
else (others => '0');
iu_mm_ierat_mmucr1 <= ex6_ieen_q(1 to num_entry_log2);
iu_mm_ierat_mmucr1_we <= ex6_ieen_q(0);
iu_xu_ierat_ex3_par_err <= ex3_parerr_q(0 to thdid_width-1) and (0 to thdid_width-1 => ex3_parerr_enab);
iu_xu_ierat_ex4_par_err <= ex4_parerr_q(0 to thdid_width-1) and (0 to thdid_width-1 => ex4_parerr_enab);
-- NOTE: example parity generation/checks in iuq_ic_dir.vhdl or xuq_lsu_dc_arr.vhdl.
-----------------------------------------------------------------------
-- CAM Instantiation
-----------------------------------------------------------------------
ierat_cam: entity tri.tri_cam_16x143_1r1w1c
generic map (expand_type => expand_type)
port map (
gnd => gnd,
vdd => vdd,
vcs => vcs,
nclk => nclk,
tc_ccflush_dc => tc_ccflush_dc,
tc_scan_dis_dc_b => tc_scan_dis_dc_b,
tc_scan_diag_dc => tc_scan_diag_dc,
tc_lbist_en_dc => tc_lbist_en_dc,
an_ac_atpg_en_dc => an_ac_atpg_en_dc,
lcb_d_mode_dc => cam_d_mode,
lcb_clkoff_dc_b => cam_clkoff_b,
lcb_act_dis_dc => cam_act_dis,
lcb_mpw1_dc_b => cam_mpw1_b(0 to 3),
lcb_mpw2_dc_b => cam_mpw2_b,
lcb_delay_lclkr_dc => cam_delay_lclkr(0 to 3),
pc_sg_2 => pc_iu_sg_2,
pc_func_slp_sl_thold_2 => pc_iu_func_slp_sl_thold_2,
pc_func_slp_nsl_thold_2 => pc_iu_func_slp_nsl_thold_2,
pc_regf_slp_sl_thold_2 => pc_iu_regf_slp_sl_thold_2,
pc_time_sl_thold_2 => pc_iu_time_sl_thold_2,
pc_fce_2 => pc_iu_fce_2,
func_scan_in => func_scan_in_cam,
func_scan_out => func_scan_out_cam,
regfile_scan_in => regf_scan_in,
regfile_scan_out => regf_scan_out,
time_scan_in => time_scan_in,
time_scan_out => time_scan_out,
rd_val => rd_val,
rd_val_late => tiup,
rw_entry => rw_entry,
wr_array_data => wr_array_data,
wr_cam_data => wr_cam_data,
wr_array_val => wr_array_val,
wr_cam_val => wr_cam_val,
wr_val_early => wr_val_early,
comp_request => comp_request,
comp_addr => comp_addr,
addr_enable => addr_enable,
comp_pgsize => comp_pgsize,
pgsize_enable => pgsize_enable,
comp_class => comp_class,
class_enable => class_enable,
comp_extclass => comp_extclass,
extclass_enable => extclass_enable,
comp_state => comp_state,
state_enable => state_enable,
comp_thdid => comp_thdid,
thdid_enable => thdid_enable,
comp_pid => comp_pid,
pid_enable => pid_enable,
comp_invalidate => comp_invalidate,
flash_invalidate => flash_invalidate,
array_cmp_data => array_cmp_data,
rd_array_data => rd_array_data,
cam_cmp_data => cam_cmp_data,
cam_hit => cam_hit,
cam_hit_entry => cam_hit_entry,
entry_match => entry_match,
entry_valid => entry_valid,
rd_cam_data => rd_cam_data,
----- new ports for IO plus -----------------------
bypass_mux_enab_np1 => bypass_mux_enab_np1,
bypass_attr_np1 => bypass_attr_np1,
attr_np2 => attr_np2,
rpn_np2 => rpn_np2
);
-- bypass attributes (bit numbering per array)
-- 30:31 - R,C
-- 32:33 - WLC
-- 34 - ResvAttr
-- 35 - VF
-- 36:39 - U0-U3
-- 40:44 - WIMGE
-- 45:46 - UX,SX
-- 47:48 - UW,SW
-- 49:50 - UR,SR
ierat_iu_iu2_rpn <= rpn_np2;
ierat_iu_iu2_wimge <= attr_np2(10 to 14);
ierat_iu_iu2_u <= attr_np2(6 to 9);
-- debug bus outputs
iu1_debug_d(0) <= comp_request;
iu1_debug_d(1) <= comp_invalidate;
iu1_debug_d(2) <= ( or_reduce(ex6_valid_q) and or_reduce(ex6_ttype_q(4 to 5)) );
iu1_debug_d(3) <= '0';
iu1_debug_d(4) <= ( snoop_val_q(0) and snoop_val_q(1) and not(or_reduce(tlb_rel_val_q(0 to 3)) and tlb_rel_val_q(4)) );
iu1_debug_d(5) <= ( ex1_ieratsx );
iu1_debug_d(6) <= ( iu_ierat_iu0_val );
iu1_debug_d(7) <= ( or_reduce(tlb_rel_val_q(0 to 3)) and tlb_rel_val_q(4) );
iu1_debug_d(8) <= ( or_reduce(tlb_rel_val_q(0 to 3)) );
iu1_debug_d(9) <= ( snoop_val_q(0) and snoop_val_q(1) );
iu1_debug_d(10) <= '0';
iu2_debug_d(0 TO 10) <= iu1_debug_q(0 to 10);
iu2_debug_d(11 TO 15) <= '0' & iu1_first_hit_entry;
iu2_debug_d(16) <= iu1_multihit;
lru_debug_d(0) <= ( tlb_rel_data_q(eratpos_wren) and or_reduce(tlb_rel_val_q(0 to 3)) and tlb_rel_val_q(4) );
lru_debug_d(1) <= ( snoop_val_q(0) and snoop_val_q(1) );
lru_debug_d(2) <= ( or_reduce(ex6_valid_q) and (ex6_ttype_q(4) or ex6_ttype_q(5)) );
lru_debug_d(3) <= ( or_reduce(ex6_valid_q) and ex6_ttype_q(1) and not ex6_ws_q(0) and not ex6_ws_q(1)
and ex6_tlbsel_q(0) and not ex6_tlbsel_q(1) and lru_way_is_written );
lru_debug_d(4) <= ( or_reduce(iu1_valid_q and not(iu_ierat_iu1_flush) and not(xu_iu_flush) and not(iu2_n_flush_req_q))
and not iu1_flush_enab_q and cam_hit and lru_way_is_hit_entry );
lru_debug_d(5 TO 19) <= lru_eff;
lru_debug_d(20 TO 23) <= lru_way_encode;
ierat_iu_debug_group0(0 TO 83) <= iu2_cam_cmp_data_q(0 to 83);
ierat_iu_debug_group0(84) <= ex3_eratsx_data_q(1);
ierat_iu_debug_group0(85) <= iu2_debug_q(0);
ierat_iu_debug_group0(86) <= iu2_debug_q(1);
ierat_iu_debug_group0(87) <= iu2_debug_q(9);
ierat_iu_debug_group1(0 TO 67) <= iu2_array_cmp_data_q(0 to 67);
ierat_iu_debug_group1(68) <= ex3_eratsx_data_q(1);
ierat_iu_debug_group1(69) <= iu2_debug_q(16);
ierat_iu_debug_group1(70 TO 74) <= iu2_debug_q(11 to 15);
ierat_iu_debug_group1(75) <= iu2_debug_q(0);
ierat_iu_debug_group1(76) <= iu2_debug_q(1);
ierat_iu_debug_group1(77) <= iu2_debug_q(2);
ierat_iu_debug_group1(78) <= iu2_debug_q(3);
ierat_iu_debug_group1(79) <= iu2_debug_q(4);
ierat_iu_debug_group1(80) <= iu2_debug_q(5);
ierat_iu_debug_group1(81) <= iu2_debug_q(6);
ierat_iu_debug_group1(82) <= iu2_debug_q(7);
ierat_iu_debug_group1(83) <= iu2_debug_q(8);
ierat_iu_debug_group1(84) <= iu2_debug_q(9);
ierat_iu_debug_group1(85) <= iu2_debug_q(10);
ierat_iu_debug_group1(86) <= '0';
ierat_iu_debug_group1(87) <= lru_update_event_q(7) or lru_update_event_q(8);
ierat_iu_debug_group2(0 TO 15) <= entry_valid_q(0 to 15);
ierat_iu_debug_group2(16 TO 31) <= entry_match_q(0 to 15);
ierat_iu_debug_group2(32 TO 47) <= '0' & lru_q(1 to 15);
ierat_iu_debug_group2(48 TO 63) <= '0' & lru_debug_q(5 to 19);
ierat_iu_debug_group2(64 TO 73) <= lru_update_event_q(0 to 8) & iu2_debug_q(16);
ierat_iu_debug_group2(74 TO 78) <= '0' & lru_debug_q(20 to 23);
ierat_iu_debug_group2(79 TO 83) <= '0' & watermark_q(0 to 3);
ierat_iu_debug_group2(84) <= ex3_eratsx_data_q(1);
ierat_iu_debug_group2(85) <= iu2_debug_q(0);
ierat_iu_debug_group2(86) <= iu2_debug_q(1);
ierat_iu_debug_group2(87) <= iu2_debug_q(9);
ierat_iu_debug_group3(0) <= ex3_eratsx_data_q(1);
ierat_iu_debug_group3(1) <= iu2_debug_q(0);
ierat_iu_debug_group3(2) <= iu2_debug_q(1);
ierat_iu_debug_group3(3) <= iu2_debug_q(9);
ierat_iu_debug_group3(4 TO 8) <= iu2_debug_q(11 to 15);
ierat_iu_debug_group3(9) <= lru_update_event_q(7) or lru_update_event_q(8);
ierat_iu_debug_group3(10 TO 14) <= lru_debug_q(0 to 4);
ierat_iu_debug_group3(15 TO 19) <= '0' & watermark_q(0 to 3);
ierat_iu_debug_group3(20 TO 35) <= entry_valid_q(0 to 15);
ierat_iu_debug_group3(36 TO 51) <= entry_match_q(0 to 15);
ierat_iu_debug_group3(52 TO 67) <= '0' & lru_q(1 to 15);
ierat_iu_debug_group3(68 TO 83) <= '0' & lru_debug_q(5 to 19);
ierat_iu_debug_group3(84 TO 87) <= lru_debug_q(20 to 23);
-- unused spare signal assignments
unused_dc(0) <= mmucr1_q(2);
unused_dc(1) <= iu2_multihit_enab and or_reduce(iu2_first_hit_entry);
unused_dc(2) <= or_reduce(ex6_ttype_q(2 to 3)) and ex6_state_q(0);
unused_dc(3) <= or_reduce(tlb_rel_data_q(eratpos_rpnrsvd to eratpos_rpnrsvd+3));
unused_dc(4) <= iu2_cam_cmp_data_q(56) or ex4_rd_cam_data_q(56);
unused_dc(5) <= or_reduce(attr_np2(0 to 5));
unused_dc(6) <= or_reduce(attr_np2(15 to 20));
unused_dc(7) <= or_reduce(cam_hit_entry);
unused_dc(8) <= or_reduce(bcfg_q_b(0 to 15));
unused_dc(9) <= or_reduce(bcfg_q_b(16 to 31));
unused_dc(10) <= or_reduce(bcfg_q_b(32 to 47));
unused_dc(11) <= or_reduce(bcfg_q_b(48 to 51));
unused_dc(12) <= or_reduce(bcfg_q_b(52 to 61));
unused_dc(13) <= or_reduce(bcfg_q_b(62 to 77));
unused_dc(14) <= or_reduce(bcfg_q_b(78 to 81));
unused_dc(15) <= or_reduce(bcfg_q_b(82 to 86));
unused_dc(16) <= or_reduce(ex1_ra_entry_q);
unused_dc(17) <= or_reduce(ex1_rs_is_q);
unused_dc(18) <= or_reduce(ex6_rs_is_q);
unused_dc(19) <= pc_func_sl_thold_0_b or pc_func_sl_force;
unused_dc(20) <= cam_mpw1_b(4) or cam_delay_lclkr(4);
unused_dc(21) <= or_reduce(ex1_ttype_q(ttype_width-2 to ttype_width));
-- bit 22 used elsewhere
unused_dc(23) <= ex7_ttype_q(0);
unused_dc(24) <= or_reduce(ex7_ttype_q(2 TO 5));
unused_dc(25) <= or_reduce(por_wr_array_data(51 to 67));
unused_dc(26) <= or_reduce(bcfg_q_b(87 to 102));
unused_dc(27) <= or_reduce(bcfg_q_b(103 to 106));
unused_dc(28) <= or_reduce(bcfg_q(108 to 122));
unused_dc(29) <= or_reduce(bcfg_q_b(107 to 122));
-----------------------------------------------------------------------
-- Latches
-----------------------------------------------------------------------
ex1_valid_latch: tri_rlmreg_p
generic map (width => ex1_valid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex1_valid_offset to ex1_valid_offset+ex1_valid_q'length-1),
scout => sov_0(ex1_valid_offset to ex1_valid_offset+ex1_valid_q'length-1),
din => ex1_valid_d(0 to thdid_width-1),
dout => ex1_valid_q(0 to thdid_width-1) );
ex1_ttype_latch: tri_rlmreg_p
generic map (width => ex1_ttype_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex1_ttype_offset to ex1_ttype_offset+ex1_ttype_q'length-1),
scout => sov_0(ex1_ttype_offset to ex1_ttype_offset+ex1_ttype_q'length-1),
din => ex1_ttype_d,
dout => ex1_ttype_q );
ex1_ws_latch: tri_rlmreg_p
generic map (width => ex1_ws_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex1_ws_offset to ex1_ws_offset+ex1_ws_q'length-1),
scout => sov_0(ex1_ws_offset to ex1_ws_offset+ex1_ws_q'length-1),
din => ex1_ws_d(0 to ws_width-1),
dout => ex1_ws_q(0 to ws_width-1) );
ex1_rs_is_latch: tri_rlmreg_p
generic map (width => ex1_rs_is_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex1_rs_is_offset to ex1_rs_is_offset+ex1_rs_is_q'length-1),
scout => sov_0(ex1_rs_is_offset to ex1_rs_is_offset+ex1_rs_is_q'length-1),
din => ex1_rs_is_d(0 to rs_is_width-1),
dout => ex1_rs_is_q(0 to rs_is_width-1) );
ex1_ra_entry_latch: tri_rlmreg_p
generic map (width => ex1_ra_entry_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex1_ra_entry_offset to ex1_ra_entry_offset+ex1_ra_entry_q'length-1),
scout => sov_0(ex1_ra_entry_offset to ex1_ra_entry_offset+ex1_ra_entry_q'length-1),
din => ex1_ra_entry_d(0 to ra_entry_width-1),
dout => ex1_ra_entry_q(0 to ra_entry_width-1) );
ex1_state_latch: tri_rlmreg_p
generic map (width => ex1_state_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex1_state_offset to ex1_state_offset+ex1_state_q'length-1),
scout => sov_0(ex1_state_offset to ex1_state_offset+ex1_state_q'length-1),
din => ex1_state_d(0 to state_width-1),
dout => ex1_state_q(0 to state_width-1) );
ex1_pid_latch: tri_rlmreg_p
generic map (width => ex1_pid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex1_pid_offset to ex1_pid_offset+ex1_pid_q'length-1),
scout => sov_0(ex1_pid_offset to ex1_pid_offset+ex1_pid_q'length-1),
din => ex1_pid_d,
dout => ex1_pid_q );
ex1_extclass_latch: tri_rlmreg_p
generic map (width => ex1_extclass_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex1_extclass_offset to ex1_extclass_offset+ex1_extclass_q'length-1),
scout => sov_0(ex1_extclass_offset to ex1_extclass_offset+ex1_extclass_q'length-1),
din => ex1_extclass_d(0 to extclass_width-1),
dout => ex1_extclass_q(0 to extclass_width-1) );
ex1_tlbsel_latch: tri_rlmreg_p
generic map (width => ex1_tlbsel_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex1_tlbsel_offset to ex1_tlbsel_offset+ex1_tlbsel_q'length-1),
scout => sov_0(ex1_tlbsel_offset to ex1_tlbsel_offset+ex1_tlbsel_q'length-1),
din => ex1_tlbsel_d(0 to tlbsel_width-1),
dout => ex1_tlbsel_q(0 to tlbsel_width-1) );
-------------------------------------------------------------------------------
ex2_valid_latch: tri_rlmreg_p
generic map (width => ex2_valid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex2_valid_offset to ex2_valid_offset+ex2_valid_q'length-1),
scout => sov_0(ex2_valid_offset to ex2_valid_offset+ex2_valid_q'length-1),
din => ex2_valid_d(0 to thdid_width-1),
dout => ex2_valid_q(0 to thdid_width-1) );
ex2_ttype_latch: tri_rlmreg_p
generic map (width => ex2_ttype_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex2_ttype_offset to ex2_ttype_offset+ex2_ttype_q'length-1),
scout => sov_0(ex2_ttype_offset to ex2_ttype_offset+ex2_ttype_q'length-1),
din => ex2_ttype_d(0 to ttype_width-1),
dout => ex2_ttype_q(0 to ttype_width-1) );
ex2_ws_latch: tri_rlmreg_p
generic map (width => ex2_ws_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex2_ws_offset to ex2_ws_offset+ex2_ws_q'length-1),
scout => sov_0(ex2_ws_offset to ex2_ws_offset+ex2_ws_q'length-1),
din => ex2_ws_d(0 to ws_width-1),
dout => ex2_ws_q(0 to ws_width-1) );
ex2_rs_is_latch: tri_rlmreg_p
generic map (width => ex2_rs_is_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex2_rs_is_offset to ex2_rs_is_offset+ex2_rs_is_q'length-1),
scout => sov_0(ex2_rs_is_offset to ex2_rs_is_offset+ex2_rs_is_q'length-1),
din => ex2_rs_is_d(0 to rs_is_width-1),
dout => ex2_rs_is_q(0 to rs_is_width-1) );
ex2_ra_entry_latch: tri_rlmreg_p
generic map (width => ex2_ra_entry_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex2_ra_entry_offset to ex2_ra_entry_offset+ex2_ra_entry_q'length-1),
scout => sov_0(ex2_ra_entry_offset to ex2_ra_entry_offset+ex2_ra_entry_q'length-1),
din => ex2_ra_entry_d(0 to ra_entry_width-1),
dout => ex2_ra_entry_q(0 to ra_entry_width-1) );
ex2_state_latch: tri_rlmreg_p
generic map (width => ex2_state_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex2_state_offset to ex2_state_offset+ex2_state_q'length-1),
scout => sov_0(ex2_state_offset to ex2_state_offset+ex2_state_q'length-1),
din => ex2_state_d(0 to state_width-1),
dout => ex2_state_q(0 to state_width-1) );
ex2_pid_latch: tri_rlmreg_p
generic map (width => ex2_pid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex2_pid_offset to ex2_pid_offset+ex2_pid_q'length-1),
scout => sov_0(ex2_pid_offset to ex2_pid_offset+ex2_pid_q'length-1),
din => ex2_pid_d,
dout => ex2_pid_q );
ex2_extclass_latch: tri_rlmreg_p
generic map (width => ex2_extclass_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex2_extclass_offset to ex2_extclass_offset+ex2_extclass_q'length-1),
scout => sov_0(ex2_extclass_offset to ex2_extclass_offset+ex2_extclass_q'length-1),
din => ex2_extclass_d(0 to extclass_width-1),
dout => ex2_extclass_q(0 to extclass_width-1) );
ex2_tlbsel_latch: tri_rlmreg_p
generic map (width => ex2_tlbsel_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex2_tlbsel_offset to ex2_tlbsel_offset+ex2_tlbsel_q'length-1),
scout => sov_0(ex2_tlbsel_offset to ex2_tlbsel_offset+ex2_tlbsel_q'length-1),
din => ex2_tlbsel_d(0 to tlbsel_width-1),
dout => ex2_tlbsel_q(0 to tlbsel_width-1) );
-------------------------------------------------------------------------------
ex3_valid_latch: tri_rlmreg_p
generic map (width => ex3_valid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex3_valid_offset to ex3_valid_offset+ex3_valid_q'length-1),
scout => sov_0(ex3_valid_offset to ex3_valid_offset+ex3_valid_q'length-1),
din => ex3_valid_d(0 to thdid_width-1),
dout => ex3_valid_q(0 to thdid_width-1) );
ex3_ttype_latch: tri_rlmreg_p
generic map (width => ex3_ttype_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex3_ttype_offset to ex3_ttype_offset+ex3_ttype_q'length-1),
scout => sov_0(ex3_ttype_offset to ex3_ttype_offset+ex3_ttype_q'length-1),
din => ex3_ttype_d(0 to ttype_width-1),
dout => ex3_ttype_q(0 to ttype_width-1) );
ex3_ws_latch: tri_rlmreg_p
generic map (width => ex3_ws_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex3_ws_offset to ex3_ws_offset+ex3_ws_q'length-1),
scout => sov_0(ex3_ws_offset to ex3_ws_offset+ex3_ws_q'length-1),
din => ex3_ws_d(0 to ws_width-1),
dout => ex3_ws_q(0 to ws_width-1) );
ex3_rs_is_latch: tri_rlmreg_p
generic map (width => ex3_rs_is_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex3_rs_is_offset to ex3_rs_is_offset+ex3_rs_is_q'length-1),
scout => sov_0(ex3_rs_is_offset to ex3_rs_is_offset+ex3_rs_is_q'length-1),
din => ex3_rs_is_d(0 to rs_is_width-1),
dout => ex3_rs_is_q(0 to rs_is_width-1) );
ex3_ra_entry_latch: tri_rlmreg_p
generic map (width => ex3_ra_entry_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex3_ra_entry_offset to ex3_ra_entry_offset+ex3_ra_entry_q'length-1),
scout => sov_0(ex3_ra_entry_offset to ex3_ra_entry_offset+ex3_ra_entry_q'length-1),
din => ex3_ra_entry_d(0 to ra_entry_width-1),
dout => ex3_ra_entry_q(0 to ra_entry_width-1) );
ex3_state_latch: tri_rlmreg_p
generic map (width => ex3_state_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex3_state_offset to ex3_state_offset+ex3_state_q'length-1),
scout => sov_0(ex3_state_offset to ex3_state_offset+ex3_state_q'length-1),
din => ex3_state_d(0 to state_width-1),
dout => ex3_state_q(0 to state_width-1) );
ex3_pid_latch: tri_rlmreg_p
generic map (width => ex3_pid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex3_pid_offset to ex3_pid_offset+ex3_pid_q'length-1),
scout => sov_0(ex3_pid_offset to ex3_pid_offset+ex3_pid_q'length-1),
din => ex3_pid_d,
dout => ex3_pid_q );
ex3_extclass_latch: tri_rlmreg_p
generic map (width => ex3_extclass_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex3_extclass_offset to ex3_extclass_offset+ex3_extclass_q'length-1),
scout => sov_0(ex3_extclass_offset to ex3_extclass_offset+ex3_extclass_q'length-1),
din => ex3_extclass_d(0 to extclass_width-1),
dout => ex3_extclass_q(0 to extclass_width-1) );
ex3_tlbsel_latch: tri_rlmreg_p
generic map (width => ex3_tlbsel_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex3_tlbsel_offset to ex3_tlbsel_offset+ex3_tlbsel_q'length-1),
scout => sov_0(ex3_tlbsel_offset to ex3_tlbsel_offset+ex3_tlbsel_q'length-1),
din => ex3_tlbsel_d(0 to tlbsel_width-1),
dout => ex3_tlbsel_q(0 to tlbsel_width-1) );
ex3_eratsx_data_latch: tri_rlmreg_p
generic map (width => ex3_eratsx_data_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => eratsx_data_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex3_eratsx_data_offset to ex3_eratsx_data_offset+ex3_eratsx_data_q'length-1),
scout => sov_0(ex3_eratsx_data_offset to ex3_eratsx_data_offset+ex3_eratsx_data_q'length-1),
din => ex3_eratsx_data_d(0 to 2+num_entry_log2-1),
dout => ex3_eratsx_data_q(0 to 2+num_entry_log2-1) );
-------------------------------------------------------------------------------
ex4_valid_latch: tri_rlmreg_p
generic map (width => ex4_valid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_valid_offset to ex4_valid_offset+ex4_valid_q'length-1),
scout => sov_0(ex4_valid_offset to ex4_valid_offset+ex4_valid_q'length-1),
din => ex4_valid_d(0 to thdid_width-1),
dout => ex4_valid_q(0 to thdid_width-1) );
ex4_ttype_latch: tri_rlmreg_p
generic map (width => ex4_ttype_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_ttype_offset to ex4_ttype_offset+ex4_ttype_q'length-1),
scout => sov_0(ex4_ttype_offset to ex4_ttype_offset+ex4_ttype_q'length-1),
din => ex4_ttype_d(0 to ttype_width-1),
dout => ex4_ttype_q(0 to ttype_width-1) );
ex4_ws_latch: tri_rlmreg_p
generic map (width => ex4_ws_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_ws_offset to ex4_ws_offset+ex4_ws_q'length-1),
scout => sov_0(ex4_ws_offset to ex4_ws_offset+ex4_ws_q'length-1),
din => ex4_ws_d(0 to ws_width-1),
dout => ex4_ws_q(0 to ws_width-1) );
ex4_rs_is_latch: tri_rlmreg_p
generic map (width => ex4_rs_is_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_rs_is_offset to ex4_rs_is_offset+ex4_rs_is_q'length-1),
scout => sov_0(ex4_rs_is_offset to ex4_rs_is_offset+ex4_rs_is_q'length-1),
din => ex4_rs_is_d(0 to rs_is_width-1),
dout => ex4_rs_is_q(0 to rs_is_width-1) );
ex4_ra_entry_latch: tri_rlmreg_p
generic map (width => ex4_ra_entry_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_ra_entry_offset to ex4_ra_entry_offset+ex4_ra_entry_q'length-1),
scout => sov_0(ex4_ra_entry_offset to ex4_ra_entry_offset+ex4_ra_entry_q'length-1),
din => ex4_ra_entry_d(0 to ra_entry_width-1),
dout => ex4_ra_entry_q(0 to ra_entry_width-1) );
ex4_state_latch: tri_rlmreg_p
generic map (width => ex4_state_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_state_offset to ex4_state_offset+ex4_state_q'length-1),
scout => sov_0(ex4_state_offset to ex4_state_offset+ex4_state_q'length-1),
din => ex4_state_d(0 to state_width-1),
dout => ex4_state_q(0 to state_width-1) );
ex4_pid_latch: tri_rlmreg_p
generic map (width => ex4_pid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_pid_offset to ex4_pid_offset+ex4_pid_q'length-1),
scout => sov_0(ex4_pid_offset to ex4_pid_offset+ex4_pid_q'length-1),
din => ex4_pid_d,
dout => ex4_pid_q );
ex4_extclass_latch: tri_rlmreg_p
generic map (width => ex4_extclass_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_extclass_offset to ex4_extclass_offset+ex4_extclass_q'length-1),
scout => sov_0(ex4_extclass_offset to ex4_extclass_offset+ex4_extclass_q'length-1),
din => ex4_extclass_d(0 to extclass_width-1),
dout => ex4_extclass_q(0 to extclass_width-1) );
ex4_tlbsel_latch: tri_rlmreg_p
generic map (width => ex4_tlbsel_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_tlbsel_offset to ex4_tlbsel_offset+ex4_tlbsel_q'length-1),
scout => sov_0(ex4_tlbsel_offset to ex4_tlbsel_offset+ex4_tlbsel_q'length-1),
din => ex4_tlbsel_d(0 to tlbsel_width-1),
dout => ex4_tlbsel_q(0 to tlbsel_width-1) );
--------------------------------------------------
ex4_data_out_latch: tri_rlmreg_p
generic map (width => ex4_data_out_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_data_out_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_data_out_offset to ex4_data_out_offset+ex4_data_out_q'length-1),
scout => sov_0(ex4_data_out_offset to ex4_data_out_offset+ex4_data_out_q'length-1),
din => ex4_data_out_d(64-data_out_width to 63),
dout => ex4_data_out_q(64-data_out_width to 63) );
-------------------------------------------------------------------------------
ex5_valid_latch: tri_rlmreg_p
generic map (width => ex5_valid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex5_valid_offset to ex5_valid_offset+ex5_valid_q'length-1),
scout => sov_0(ex5_valid_offset to ex5_valid_offset+ex5_valid_q'length-1),
din => ex5_valid_d(0 to thdid_width-1),
dout => ex5_valid_q(0 to thdid_width-1) );
ex5_ttype_latch: tri_rlmreg_p
generic map (width => ex5_ttype_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex5_ttype_offset to ex5_ttype_offset+ex5_ttype_q'length-1),
scout => sov_0(ex5_ttype_offset to ex5_ttype_offset+ex5_ttype_q'length-1),
din => ex5_ttype_d(0 to ttype_width-1),
dout => ex5_ttype_q(0 to ttype_width-1) );
ex5_ws_latch: tri_rlmreg_p
generic map (width => ex5_ws_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex4_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex5_ws_offset to ex5_ws_offset+ex5_ws_q'length-1),
scout => sov_0(ex5_ws_offset to ex5_ws_offset+ex5_ws_q'length-1),
din => ex5_ws_d(0 to ws_width-1),
dout => ex5_ws_q(0 to ws_width-1) );
ex5_rs_is_latch: tri_rlmreg_p
generic map (width => ex5_rs_is_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex4_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex5_rs_is_offset to ex5_rs_is_offset+ex5_rs_is_q'length-1),
scout => sov_0(ex5_rs_is_offset to ex5_rs_is_offset+ex5_rs_is_q'length-1),
din => ex5_rs_is_d(0 to rs_is_width-1),
dout => ex5_rs_is_q(0 to rs_is_width-1) );
ex5_ra_entry_latch: tri_rlmreg_p
generic map (width => ex5_ra_entry_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex4_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex5_ra_entry_offset to ex5_ra_entry_offset+ex5_ra_entry_q'length-1),
scout => sov_0(ex5_ra_entry_offset to ex5_ra_entry_offset+ex5_ra_entry_q'length-1),
din => ex5_ra_entry_d(0 to ra_entry_width-1),
dout => ex5_ra_entry_q(0 to ra_entry_width-1) );
ex5_state_latch: tri_rlmreg_p
generic map (width => ex5_state_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex4_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex5_state_offset to ex5_state_offset+ex5_state_q'length-1),
scout => sov_0(ex5_state_offset to ex5_state_offset+ex5_state_q'length-1),
din => ex5_state_d(0 to state_width-1),
dout => ex5_state_q(0 to state_width-1) );
ex5_pid_latch: tri_rlmreg_p
generic map (width => ex5_pid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex4_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex5_pid_offset to ex5_pid_offset+ex5_pid_q'length-1),
scout => sov_0(ex5_pid_offset to ex5_pid_offset+ex5_pid_q'length-1),
din => ex5_pid_d,
dout => ex5_pid_q );
ex5_extclass_latch: tri_rlmreg_p
generic map (width => ex5_extclass_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex4_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex5_extclass_offset to ex5_extclass_offset+ex5_extclass_q'length-1),
scout => sov_0(ex5_extclass_offset to ex5_extclass_offset+ex5_extclass_q'length-1),
din => ex5_extclass_d(0 to extclass_width-1),
dout => ex5_extclass_q(0 to extclass_width-1) );
ex5_tlbsel_latch: tri_rlmreg_p
generic map (width => ex5_tlbsel_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex4_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex5_tlbsel_offset to ex5_tlbsel_offset+ex5_tlbsel_q'length-1),
scout => sov_0(ex5_tlbsel_offset to ex5_tlbsel_offset+ex5_tlbsel_q'length-1),
din => ex5_tlbsel_d(0 to tlbsel_width-1),
dout => ex5_tlbsel_q(0 to tlbsel_width-1) );
--------------------------------------------------
ex5_data_in_latch: tri_rlmreg_p
generic map (width => ex5_data_in_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex4_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex5_data_in_offset to ex5_data_in_offset+ex5_data_in_q'length-1),
scout => sov_0(ex5_data_in_offset to ex5_data_in_offset+ex5_data_in_q'length-1),
din => ex5_data_in_d(64-rs_data_width to 63),
dout => ex5_data_in_q(64-rs_data_width to 63) );
-------------------------------------------------------------------------------
ex6_valid_latch: tri_rlmreg_p
generic map (width => ex6_valid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex6_valid_offset to ex6_valid_offset+ex6_valid_q'length-1),
scout => sov_0(ex6_valid_offset to ex6_valid_offset+ex6_valid_q'length-1),
din => ex6_valid_d(0 to thdid_width-1),
dout => ex6_valid_q(0 to thdid_width-1) );
ex6_ttype_latch: tri_rlmreg_p
generic map (width => ex6_ttype_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex6_ttype_offset to ex6_ttype_offset+ex6_ttype_q'length-1),
scout => sov_0(ex6_ttype_offset to ex6_ttype_offset+ex6_ttype_q'length-1),
din => ex6_ttype_d(0 to ttype_width-1),
dout => ex6_ttype_q(0 to ttype_width-1) );
ex6_ws_latch: tri_rlmreg_p
generic map (width => ex6_ws_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex5_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex6_ws_offset to ex6_ws_offset+ex6_ws_q'length-1),
scout => sov_0(ex6_ws_offset to ex6_ws_offset+ex6_ws_q'length-1),
din => ex6_ws_d(0 to ws_width-1),
dout => ex6_ws_q(0 to ws_width-1) );
ex6_rs_is_latch: tri_rlmreg_p
generic map (width => ex6_rs_is_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex5_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex6_rs_is_offset to ex6_rs_is_offset+ex6_rs_is_q'length-1),
scout => sov_0(ex6_rs_is_offset to ex6_rs_is_offset+ex6_rs_is_q'length-1),
din => ex6_rs_is_d(0 to rs_is_width-1),
dout => ex6_rs_is_q(0 to rs_is_width-1) );
ex6_ra_entry_latch: tri_rlmreg_p
generic map (width => ex6_ra_entry_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex5_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex6_ra_entry_offset to ex6_ra_entry_offset+ex6_ra_entry_q'length-1),
scout => sov_0(ex6_ra_entry_offset to ex6_ra_entry_offset+ex6_ra_entry_q'length-1),
din => ex6_ra_entry_d(0 to ra_entry_width-1),
dout => ex6_ra_entry_q(0 to ra_entry_width-1) );
ex6_state_latch: tri_rlmreg_p
generic map (width => ex6_state_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex5_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex6_state_offset to ex6_state_offset+ex6_state_q'length-1),
scout => sov_0(ex6_state_offset to ex6_state_offset+ex6_state_q'length-1),
din => ex6_state_d(0 to state_width-1),
dout => ex6_state_q(0 to state_width-1) );
ex6_pid_latch: tri_rlmreg_p
generic map (width => ex6_pid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex5_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex6_pid_offset to ex6_pid_offset+ex6_pid_q'length-1),
scout => sov_0(ex6_pid_offset to ex6_pid_offset+ex6_pid_q'length-1),
din => ex6_pid_d,
dout => ex6_pid_q );
ex6_extclass_latch: tri_rlmreg_p
generic map (width => ex6_extclass_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex5_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex6_extclass_offset to ex6_extclass_offset+ex6_extclass_q'length-1),
scout => sov_0(ex6_extclass_offset to ex6_extclass_offset+ex6_extclass_q'length-1),
din => ex6_extclass_d(0 to extclass_width-1),
dout => ex6_extclass_q(0 to extclass_width-1) );
ex6_tlbsel_latch: tri_rlmreg_p
generic map (width => ex6_tlbsel_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex5_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex6_tlbsel_offset to ex6_tlbsel_offset+ex6_tlbsel_q'length-1),
scout => sov_0(ex6_tlbsel_offset to ex6_tlbsel_offset+ex6_tlbsel_q'length-1),
din => ex6_tlbsel_d(0 to tlbsel_width-1),
dout => ex6_tlbsel_q(0 to tlbsel_width-1) );
--------------------------------------------------
ex6_data_in_latch: tri_rlmreg_p
generic map (width => ex6_data_in_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex5_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex6_data_in_offset to ex6_data_in_offset+ex6_data_in_q'length-1),
scout => sov_0(ex6_data_in_offset to ex6_data_in_offset+ex6_data_in_q'length-1),
din => ex6_data_in_d(64-rs_data_width to 63),
dout => ex6_data_in_q(64-rs_data_width to 63) );
--------------------------------------------------
ex7_valid_latch: tri_rlmreg_p
generic map (width => ex7_valid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ex7_valid_offset to ex7_valid_offset+ex7_valid_q'length-1),
scout => sov_1(ex7_valid_offset to ex7_valid_offset+ex7_valid_q'length-1),
din => ex7_valid_d(0 to thdid_width-1),
dout => ex7_valid_q(0 to thdid_width-1) );
ex7_ttype_latch: tri_rlmreg_p
generic map (width => ex7_ttype_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ex7_ttype_offset to ex7_ttype_offset+ex7_ttype_q'length-1),
scout => sov_1(ex7_ttype_offset to ex7_ttype_offset+ex7_ttype_q'length-1),
din => ex7_ttype_d(0 to ttype_width-1),
dout => ex7_ttype_q(0 to ttype_width-1) );
ex7_tlbsel_latch: tri_rlmreg_p
generic map (width => ex7_tlbsel_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex6_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ex7_tlbsel_offset to ex7_tlbsel_offset+ex7_tlbsel_q'length-1),
scout => sov_1(ex7_tlbsel_offset to ex7_tlbsel_offset+ex7_tlbsel_q'length-1),
din => ex7_tlbsel_d(0 to tlbsel_width-1),
dout => ex7_tlbsel_q(0 to tlbsel_width-1) );
iu1_flush_enab_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu1_flush_enab_offset),
scout => sov_0(iu1_flush_enab_offset),
din => iu1_flush_enab_d,
dout => iu1_flush_enab_q);
iu2_n_flush_req_latch: tri_rlmreg_p
generic map (width => iu2_n_flush_req_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => iu1_or_iu2_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_n_flush_req_offset to iu2_n_flush_req_offset+iu2_n_flush_req_q'length-1),
scout => sov_0(iu2_n_flush_req_offset to iu2_n_flush_req_offset+iu2_n_flush_req_q'length-1),
din => iu2_n_flush_req_d(0 to thdid_width-1),
dout => iu2_n_flush_req_q(0 to thdid_width-1) );
hold_req_latch: tri_rlmreg_p
generic map (width => hold_req_q'length, init => 15, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => not_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(hold_req_offset to hold_req_offset+hold_req_q'length-1),
scout => sov_0(hold_req_offset to hold_req_offset+hold_req_q'length-1),
din => hold_req_d(0 to thdid_width-1),
dout => hold_req_q(0 to thdid_width-1) );
tlb_miss_latch: tri_rlmreg_p
generic map (width => tlb_miss_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(tlb_miss_offset to tlb_miss_offset+tlb_miss_q'length-1),
scout => sov_0(tlb_miss_offset to tlb_miss_offset+tlb_miss_q'length-1),
din => tlb_miss_d(0 to thdid_width-1),
dout => tlb_miss_q(0 to thdid_width-1) );
tlb_req_inprogress_latch: tri_rlmreg_p
generic map (width => tlb_req_inprogress_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(tlb_req_inprogress_offset to tlb_req_inprogress_offset+tlb_req_inprogress_q'length-1),
scout => sov_0(tlb_req_inprogress_offset to tlb_req_inprogress_offset+tlb_req_inprogress_q'length-1),
din => tlb_req_inprogress_d(0 to thdid_width-1),
dout => tlb_req_inprogress_q(0 to thdid_width-1) );
iu1_valid_latch: tri_rlmreg_p
generic map (width => iu1_valid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu1_valid_offset to iu1_valid_offset+iu1_valid_q'length-1),
scout => sov_0(iu1_valid_offset to iu1_valid_offset+iu1_valid_q'length-1),
din => iu1_valid_d(0 to thdid_width-1),
dout => iu1_valid_q(0 to thdid_width-1) );
iu1_state_latch: tri_rlmreg_p
generic map (width => iu1_state_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu1_state_offset to iu1_state_offset+iu1_state_q'length-1),
scout => sov_0(iu1_state_offset to iu1_state_offset+iu1_state_q'length-1),
din => iu1_state_d(0 to state_width-1),
dout => iu1_state_q(0 to state_width-1) );
iu1_pid_latch: tri_rlmreg_p
generic map (width => iu1_pid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu1_pid_offset to iu1_pid_offset+iu1_pid_q'length-1),
scout => sov_0(iu1_pid_offset to iu1_pid_offset+iu1_pid_q'length-1),
din => iu1_pid_d,
dout => iu1_pid_q );
iu2_valid_latch: tri_rlmreg_p
generic map (width => iu2_valid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_valid_offset to iu2_valid_offset+iu2_valid_q'length-1),
scout => sov_0(iu2_valid_offset to iu2_valid_offset+iu2_valid_q'length-1),
din => iu2_valid_d(0 to thdid_width-1),
dout => iu2_valid_q(0 to thdid_width-1) );
iu2_state_latch: tri_rlmreg_p
generic map (width => iu2_state_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => iu1_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_state_offset to iu2_state_offset+iu2_state_q'length-1),
scout => sov_0(iu2_state_offset to iu2_state_offset+iu2_state_q'length-1),
din => iu2_state_d(0 to state_width-1),
dout => iu2_state_q(0 to state_width-1) );
iu2_pid_latch: tri_rlmreg_p
generic map (width => iu2_pid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => iu1_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_pid_offset to iu2_pid_offset+iu2_pid_q'length-1),
scout => sov_0(iu2_pid_offset to iu2_pid_offset+iu2_pid_q'length-1),
din => iu2_pid_d,
dout => iu2_pid_q );
iu2_miss_latch: tri_rlmreg_p
generic map (width => iu2_miss_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => iu1_or_iu2_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_miss_offset to iu2_miss_offset+iu2_miss_q'length-1),
scout => sov_0(iu2_miss_offset to iu2_miss_offset+iu2_miss_q'length-1),
din => iu2_miss_d,
dout => iu2_miss_q );
iu2_multihit_latch: tri_rlmreg_p
generic map (width => iu2_multihit_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => iu1_or_iu2_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_multihit_offset to iu2_multihit_offset+iu2_multihit_q'length-1),
scout => sov_0(iu2_multihit_offset to iu2_multihit_offset+iu2_multihit_q'length-1),
din => iu2_multihit_d,
dout => iu2_multihit_q );
iu2_parerr_latch: tri_rlmreg_p
generic map (width => iu2_parerr_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => iu1_or_iu2_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_parerr_offset to iu2_parerr_offset+iu2_parerr_q'length-1),
scout => sov_0(iu2_parerr_offset to iu2_parerr_offset+iu2_parerr_q'length-1),
din => iu2_parerr_d,
dout => iu2_parerr_q );
iu2_isi_latch: tri_rlmreg_p
generic map (width => iu2_isi_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => not_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_isi_offset to iu2_isi_offset+iu2_isi_q'length-1),
scout => sov_0(iu2_isi_offset to iu2_isi_offset+iu2_isi_q'length-1),
din => iu2_isi_d,
dout => iu2_isi_q );
iu2_tlbreq_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => notlb_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_tlbreq_offset),
scout => sov_0(iu2_tlbreq_offset),
din => iu2_tlbreq_d,
dout => iu2_tlbreq_q);
iu2_multihit_b_pt_latch: tri_rlmreg_p
generic map (width => iu2_multihit_b_pt_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => iu1_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_multihit_b_pt_offset to iu2_multihit_b_pt_offset+iu2_multihit_b_pt_q'length-1),
scout => sov_0(iu2_multihit_b_pt_offset to iu2_multihit_b_pt_offset+iu2_multihit_b_pt_q'length-1),
din => iu2_multihit_b_pt_d,
dout => iu2_multihit_b_pt_q );
iu2_first_hit_entry_pt_latch: tri_rlmreg_p
generic map (width => iu2_first_hit_entry_pt_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => iu1_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_first_hit_entry_pt_offset to iu2_first_hit_entry_pt_offset+iu2_first_hit_entry_pt_q'length-1),
scout => sov_0(iu2_first_hit_entry_pt_offset to iu2_first_hit_entry_pt_offset+iu2_first_hit_entry_pt_q'length-1),
din => iu2_first_hit_entry_pt_d,
dout => iu2_first_hit_entry_pt_q );
iu2_cam_cmp_data_latch: tri_rlmreg_p
generic map (width => iu2_cam_cmp_data_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => iu1_cmp_data_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_cam_cmp_data_offset to iu2_cam_cmp_data_offset+iu2_cam_cmp_data_q'length-1),
scout => sov_0(iu2_cam_cmp_data_offset to iu2_cam_cmp_data_offset+iu2_cam_cmp_data_q'length-1),
din => iu2_cam_cmp_data_d(0 to cam_data_width-1),
dout => iu2_cam_cmp_data_q(0 to cam_data_width-1));
iu2_array_cmp_data_latch: tri_rlmreg_p
generic map (width => iu2_array_cmp_data_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => iu1_cmp_data_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(iu2_array_cmp_data_offset to iu2_array_cmp_data_offset+iu2_array_cmp_data_q'length-1),
scout => sov_0(iu2_array_cmp_data_offset to iu2_array_cmp_data_offset+iu2_array_cmp_data_q'length-1),
din => iu2_array_cmp_data_d(0 to array_data_width-1),
dout => iu2_array_cmp_data_q(0 to array_data_width-1));
ex4_rd_cam_data_latch: tri_rlmreg_p
generic map (width => ex4_rd_cam_data_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_rd_data_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_rd_cam_data_offset to ex4_rd_cam_data_offset+ex4_rd_cam_data_q'length-1),
scout => sov_0(ex4_rd_cam_data_offset to ex4_rd_cam_data_offset+ex4_rd_cam_data_q'length-1),
din => ex4_rd_cam_data_d(0 to cam_data_width-1),
dout => ex4_rd_cam_data_q(0 to cam_data_width-1));
ex4_rd_array_data_latch: tri_rlmreg_p
generic map (width => ex4_rd_array_data_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_rd_data_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_rd_array_data_offset to ex4_rd_array_data_offset+ex4_rd_array_data_q'length-1),
scout => sov_0(ex4_rd_array_data_offset to ex4_rd_array_data_offset+ex4_rd_array_data_q'length-1),
din => ex4_rd_array_data_d(0 to array_data_width-1),
dout => ex4_rd_array_data_q(0 to array_data_width-1));
ex3_parerr_latch: tri_rlmreg_p
generic map (width => ex3_parerr_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => not_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex3_parerr_offset to ex3_parerr_offset+ex3_parerr_q'length-1),
scout => sov_0(ex3_parerr_offset to ex3_parerr_offset+ex3_parerr_q'length-1),
din => ex3_parerr_d,
dout => ex3_parerr_q );
ex4_parerr_latch: tri_rlmreg_p
generic map (width => ex4_parerr_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_parerr_offset to ex4_parerr_offset+ex4_parerr_q'length-1),
scout => sov_0(ex4_parerr_offset to ex4_parerr_offset+ex4_parerr_q'length-1),
din => ex4_parerr_d,
dout => ex4_parerr_q );
ex4_ieen_latch: tri_rlmreg_p
generic map (width => ex4_ieen_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex4_ieen_offset to ex4_ieen_offset+ex4_ieen_q'length-1),
scout => sov_0(ex4_ieen_offset to ex4_ieen_offset+ex4_ieen_q'length-1),
din => ex4_ieen_d(0 to ex4_ieen_d'length-1),
dout => ex4_ieen_q(0 to ex4_ieen_q'length-1));
ex5_ieen_latch: tri_rlmreg_p
generic map (width => ex5_ieen_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex5_ieen_offset to ex5_ieen_offset+ex5_ieen_q'length-1),
scout => sov_0(ex5_ieen_offset to ex5_ieen_offset+ex5_ieen_q'length-1),
din => ex5_ieen_d(0 to ex5_ieen_d'length-1),
dout => ex5_ieen_q(0 to ex5_ieen_q'length-1));
ex6_ieen_latch: tri_rlmreg_p
generic map (width => ex6_ieen_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(ex6_ieen_offset to ex6_ieen_offset+ex6_ieen_q'length-1),
scout => sov_0(ex6_ieen_offset to ex6_ieen_offset+ex6_ieen_q'length-1),
din => ex6_ieen_d(0 to ex6_ieen_d'length-1),
dout => ex6_ieen_q(0 to ex6_ieen_q'length-1));
mmucr1_latch: tri_rlmreg_p
generic map (width => mmucr1_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(mmucr1_offset to mmucr1_offset+mmucr1_q'length-1),
scout => sov_0(mmucr1_offset to mmucr1_offset+mmucr1_q'length-1),
din => mmucr1_d,
dout => mmucr1_q );
rpn_holdreg0_latch: tri_rlmreg_p
generic map (width => rpn_holdreg0_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex6_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(rpn_holdreg0_offset to rpn_holdreg0_offset+rpn_holdreg0_q'length-1),
scout => sov_0(rpn_holdreg0_offset to rpn_holdreg0_offset+rpn_holdreg0_q'length-1),
din => rpn_holdreg0_d(0 to 63),
dout => rpn_holdreg0_q(0 to 63) );
rpn_holdreg1_latch: tri_rlmreg_p
generic map (width => rpn_holdreg1_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex6_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(rpn_holdreg1_offset to rpn_holdreg1_offset+rpn_holdreg1_q'length-1),
scout => sov_0(rpn_holdreg1_offset to rpn_holdreg1_offset+rpn_holdreg1_q'length-1),
din => rpn_holdreg1_d(0 to 63),
dout => rpn_holdreg1_q(0 to 63) );
rpn_holdreg2_latch: tri_rlmreg_p
generic map (width => rpn_holdreg2_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex6_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(rpn_holdreg2_offset to rpn_holdreg2_offset+rpn_holdreg2_q'length-1),
scout => sov_0(rpn_holdreg2_offset to rpn_holdreg2_offset+rpn_holdreg2_q'length-1),
din => rpn_holdreg2_d(0 to 63),
dout => rpn_holdreg2_q(0 to 63) );
rpn_holdreg3_latch: tri_rlmreg_p
generic map (width => rpn_holdreg3_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex6_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(rpn_holdreg3_offset to rpn_holdreg3_offset+rpn_holdreg3_q'length-1),
scout => sov_0(rpn_holdreg3_offset to rpn_holdreg3_offset+rpn_holdreg3_q'length-1),
din => rpn_holdreg3_d(0 to 63),
dout => rpn_holdreg3_q(0 to 63) );
entry_valid_latch: tri_rlmreg_p
generic map (width => entry_valid_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => entry_valid_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(entry_valid_offset to entry_valid_offset+entry_valid_q'length-1),
scout => sov_0(entry_valid_offset to entry_valid_offset+entry_valid_q'length-1),
din => entry_valid,
dout => entry_valid_q );
entry_match_latch: tri_rlmreg_p
generic map (width => entry_match_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => entry_match_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(entry_match_offset to entry_match_offset+entry_match_q'length-1),
scout => sov_0(entry_match_offset to entry_match_offset+entry_match_q'length-1),
din => entry_match,
dout => entry_match_q );
watermark_latch: tri_rlmreg_p
generic map (width => watermark_q'length, init => 13, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex6_stg_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(watermark_offset to watermark_offset+watermark_q'length-1),
scout => sov_0(watermark_offset to watermark_offset+watermark_q'length-1),
din => watermark_d(0 to watermark_width-1),
dout => watermark_q(0 to watermark_width-1) );
eptr_latch: tri_rlmreg_p
generic map (width => eptr_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => mmucr1_q(0),
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(eptr_offset to eptr_offset+eptr_q'length-1),
scout => sov_0(eptr_offset to eptr_offset+eptr_q'length-1),
din => eptr_d(0 to eptr_width-1),
dout => eptr_q(0 to eptr_width-1) );
lru_latch: tri_rlmreg_p
generic map (width => lru_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => lru_update_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(lru_offset to lru_offset+lru_q'length-1),
scout => sov_0(lru_offset to lru_offset+lru_q'length-1),
din => lru_d(1 to lru_width),
dout => lru_q(1 to lru_width) );
lru_update_event_latch: tri_rlmreg_p
generic map (width => lru_update_event_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => not_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(lru_update_event_offset to lru_update_event_offset+lru_update_event_q'length-1),
scout => sov_0(lru_update_event_offset to lru_update_event_offset+lru_update_event_q'length-1),
din => lru_update_event_d,
dout => lru_update_event_q );
lru_debug_latch: tri_rlmreg_p
generic map (width => lru_debug_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => debug_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_0(lru_debug_offset to lru_debug_offset+lru_debug_q'length-1),
scout => sov_0(lru_debug_offset to lru_debug_offset+lru_debug_q'length-1),
din => lru_debug_d,
dout => lru_debug_q );
snoop_val_latch: tri_rlmreg_p
generic map (width => snoop_val_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(snoop_val_offset to snoop_val_offset+snoop_val_q'length-1),
scout => sov_1(snoop_val_offset to snoop_val_offset+snoop_val_q'length-1),
din => snoop_val_d,
dout => snoop_val_q );
snoop_attr_latch: tri_rlmreg_p
generic map (width => snoop_attr_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => snoop_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(snoop_attr_offset to snoop_attr_offset+snoop_attr_q'length-1),
scout => sov_1(snoop_attr_offset to snoop_attr_offset+snoop_attr_q'length-1),
din => snoop_attr_d,
dout => snoop_attr_q );
snoop_addr_latch: tri_rlmreg_p
generic map (width => snoop_addr_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => snoop_act_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(snoop_addr_offset to snoop_addr_offset+snoop_addr_q'length-1),
scout => sov_1(snoop_addr_offset to snoop_addr_offset+snoop_addr_q'length-1),
din => snoop_addr_d(52-epn_width to 51),
dout => snoop_addr_q(52-epn_width to 51) );
por_seq_latch: tri_rlmreg_p
generic map (width => por_seq_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(por_seq_offset to por_seq_offset+por_seq_q'length-1),
scout => sov_1(por_seq_offset to por_seq_offset+por_seq_q'length-1),
din => por_seq_d(0 to por_seq_width-1),
dout => por_seq_q(0 to por_seq_width-1) );
-- timing latches for reloads
tlb_rel_val_latch: tri_rlmreg_p
generic map (width => tlb_rel_val_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(tlb_rel_val_offset to tlb_rel_val_offset+tlb_rel_val_q'length-1),
scout => sov_1(tlb_rel_val_offset to tlb_rel_val_offset+tlb_rel_val_q'length-1),
din => tlb_rel_val_d,
dout => tlb_rel_val_q );
tlb_rel_data_latch: tri_rlmreg_p
generic map (width => tlb_rel_data_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tlb_rel_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(tlb_rel_data_offset to tlb_rel_data_offset+tlb_rel_data_q'length-1),
scout => sov_1(tlb_rel_data_offset to tlb_rel_data_offset+tlb_rel_data_q'length-1),
din => tlb_rel_data_d,
dout => tlb_rel_data_q );
iu_mm_ierat_flush_latch: tri_rlmreg_p
generic map (width => iu_mm_ierat_flush_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(iu_mm_ierat_flush_offset to iu_mm_ierat_flush_offset+iu_mm_ierat_flush_q'length-1),
scout => sov_1(iu_mm_ierat_flush_offset to iu_mm_ierat_flush_offset+iu_mm_ierat_flush_q'length-1),
din => iu_mm_ierat_flush_d(0 to thdid_width-1),
dout => iu_mm_ierat_flush_q(0 to thdid_width-1) );
iu_xu_ierat_ex2_flush_latch: tri_rlmreg_p
generic map (width => iu_xu_ierat_ex2_flush_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(iu_xu_ierat_ex2_flush_offset to iu_xu_ierat_ex2_flush_offset+iu_xu_ierat_ex2_flush_q'length-1),
scout => sov_1(iu_xu_ierat_ex2_flush_offset to iu_xu_ierat_ex2_flush_offset+iu_xu_ierat_ex2_flush_q'length-1),
din => iu_xu_ierat_ex2_flush_d(0 to thdid_width-1),
dout => iu_xu_ierat_ex2_flush_q(0 to thdid_width-1) );
ccr2_frat_paranoia_latch: tri_rlmreg_p
generic map (width => ccr2_frat_paranoia_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ccr2_frat_paranoia_offset to ccr2_frat_paranoia_offset+ccr2_frat_paranoia_q'length-1),
scout => sov_1(ccr2_frat_paranoia_offset to ccr2_frat_paranoia_offset+ccr2_frat_paranoia_q'length-1),
din => ccr2_frat_paranoia_d,
dout => ccr2_frat_paranoia_q );
ccr2_notlb_latch: tri_rlmlatch_p
generic map (init => 1, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ccr2_notlb_offset),
scout => sov_1(ccr2_notlb_offset),
din => xu_iu_hid_mmu_mode,
dout => ccr2_notlb_q);
mchk_flash_inv_latch: tri_rlmreg_p
generic map (width => mchk_flash_inv_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => iu2_to_iu4_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(mchk_flash_inv_offset to mchk_flash_inv_offset+mchk_flash_inv_q'length-1),
scout => sov_1(mchk_flash_inv_offset to mchk_flash_inv_offset+mchk_flash_inv_q'length-1),
din => mchk_flash_inv_d,
dout => mchk_flash_inv_q );
xucr4_mmu_mchk_latch: tri_rlmlatch_p
generic map (init => 1, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(xucr4_mmu_mchk_offset),
scout => sov_1(xucr4_mmu_mchk_offset),
din => xu_iu_xucr4_mmu_mchk,
dout => xucr4_mmu_mchk_q);
iu1_debug_latch: tri_rlmreg_p
generic map (width => iu1_debug_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => trace_bus_enable_q,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(iu1_debug_offset to iu1_debug_offset+iu1_debug_q'length-1),
scout => sov_1(iu1_debug_offset to iu1_debug_offset+iu1_debug_q'length-1),
din => iu1_debug_d,
dout => iu1_debug_q);
iu2_debug_latch: tri_rlmreg_p
generic map (width => iu2_debug_q'length, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => debug_grffence_act,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(iu2_debug_offset to iu2_debug_offset+iu2_debug_q'length-1),
scout => sov_1(iu2_debug_offset to iu2_debug_offset+iu2_debug_q'length-1),
din => iu2_debug_d,
dout => iu2_debug_q);
iu1_stg_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(iu1_stg_act_offset),
scout => sov_1(iu1_stg_act_offset),
din => iu1_stg_act_d,
dout => iu1_stg_act_q);
iu2_stg_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(iu2_stg_act_offset),
scout => sov_1(iu2_stg_act_offset),
din => iu2_stg_act_d,
dout => iu2_stg_act_q);
iu3_stg_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(iu3_stg_act_offset),
scout => sov_1(iu3_stg_act_offset),
din => iu3_stg_act_d,
dout => iu3_stg_act_q);
iu4_stg_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(iu4_stg_act_offset),
scout => sov_1(iu4_stg_act_offset),
din => iu4_stg_act_d,
dout => iu4_stg_act_q);
ex1_stg_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ex1_stg_act_offset),
scout => sov_1(ex1_stg_act_offset),
din => ex1_stg_act_d,
dout => ex1_stg_act_q);
ex2_stg_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ex2_stg_act_offset),
scout => sov_1(ex2_stg_act_offset),
din => ex2_stg_act_d,
dout => ex2_stg_act_q);
ex3_stg_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ex3_stg_act_offset),
scout => sov_1(ex3_stg_act_offset),
din => ex3_stg_act_d,
dout => ex3_stg_act_q);
ex4_stg_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ex4_stg_act_offset),
scout => sov_1(ex4_stg_act_offset),
din => ex4_stg_act_d,
dout => ex4_stg_act_q);
ex5_stg_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ex5_stg_act_offset),
scout => sov_1(ex5_stg_act_offset),
din => ex5_stg_act_d,
dout => ex5_stg_act_q);
ex6_stg_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ex6_stg_act_offset),
scout => sov_1(ex6_stg_act_offset),
din => ex6_stg_act_d,
dout => ex6_stg_act_q);
ex7_stg_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(ex7_stg_act_offset),
scout => sov_1(ex7_stg_act_offset),
din => ex7_stg_act_d,
dout => ex7_stg_act_q);
tlb_rel_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(tlb_rel_act_offset),
scout => sov_1(tlb_rel_act_offset),
din => tlb_rel_act_d,
dout => tlb_rel_act_q);
snoop_act_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(snoop_act_offset),
scout => sov_1(snoop_act_offset),
din => mm_iu_ierat_snoop_coming,
dout => snoop_act_q);
-- for debug trace bus latch act
trace_bus_enable_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(trace_bus_enable_offset),
scout => sov_1(trace_bus_enable_offset),
din => pc_iu_trace_bus_enable,
dout => trace_bus_enable_q);
an_ac_grffence_en_dc_latch: tri_rlmlatch_p
generic map (init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(an_ac_grffence_en_dc_offset),
scout => sov_1(an_ac_grffence_en_dc_offset),
din => an_ac_grffence_en_dc_q,
dout => an_ac_grffence_en_dc_q);
spare_a_latch: tri_rlmreg_p
generic map (width => 16, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(spare_a_offset to spare_a_offset+15),
scout => sov_1(spare_a_offset to spare_a_offset+15),
din => spare_q(0 to 15),
dout => spare_q(0 to 15) );
spare_b_latch: tri_rlmreg_p
generic map (width => 16, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_func_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_func_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => siv_1(spare_b_offset to spare_b_offset+15),
scout => sov_1(spare_b_offset to spare_b_offset+15),
din => spare_q(16 to 31),
dout => spare_q(16 to 31) );
--------------------------------------------------
-- scan only latches for boot config
--------------------------------------------------
mpg_bcfg_gen: if expand_type /= 1 generate
bcfg_epn_0to15_latch: tri_slat_scan
generic map (width => 16, init => std_ulogic_vector( to_unsigned( bcfg_epn_0to15, 16 ) ),
reset_inverts_scan => true, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
dclk => lcb_dclk,
lclk => lcb_lclk,
scan_in => bsiv(bcfg_offset to bcfg_offset+15),
scan_out => bsov(bcfg_offset to bcfg_offset+15),
q => bcfg_q(0 to 15),
q_b => bcfg_q_b(0 to 15) );
bcfg_epn_16to31_latch: tri_slat_scan
generic map (width => 16, init => std_ulogic_vector( to_unsigned( bcfg_epn_16to31, 16 ) ),
reset_inverts_scan => true, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
dclk => lcb_dclk,
lclk => lcb_lclk,
scan_in => bsiv(bcfg_offset+16 to bcfg_offset+31),
scan_out => bsov(bcfg_offset+16 to bcfg_offset+31),
q => bcfg_q(16 to 31),
q_b => bcfg_q_b(16 to 31) );
bcfg_epn_32to47_latch: tri_slat_scan
generic map (width => 16, init => std_ulogic_vector( to_unsigned( bcfg_epn_32to47, 16 ) ),
reset_inverts_scan => true, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
dclk => lcb_dclk,
lclk => lcb_lclk,
scan_in => bsiv(bcfg_offset+32 to bcfg_offset+47),
scan_out => bsov(bcfg_offset+32 to bcfg_offset+47),
q => bcfg_q(32 to 47),
q_b => bcfg_q_b(32 to 47) );
bcfg_epn_48to51_latch: tri_slat_scan
generic map (width => 4, init => std_ulogic_vector( to_unsigned( bcfg_epn_48to51, 4 ) ),
reset_inverts_scan => true, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
dclk => lcb_dclk,
lclk => lcb_lclk,
scan_in => bsiv(bcfg_offset+48 to bcfg_offset+51),
scan_out => bsov(bcfg_offset+48 to bcfg_offset+51),
q => bcfg_q(48 to 51),
q_b => bcfg_q_b(48 to 51) );
bcfg_rpn_22to31_latch: tri_slat_scan
generic map (width => 10, init => std_ulogic_vector( to_unsigned( bcfg_rpn_22to31, 10 ) ),
reset_inverts_scan => true, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
dclk => lcb_dclk,
lclk => lcb_lclk,
scan_in => bsiv(bcfg_offset+52 to bcfg_offset+61),
scan_out => bsov(bcfg_offset+52 to bcfg_offset+61),
q => bcfg_q(52 to 61),
q_b => bcfg_q_b(52 to 61) );
bcfg_rpn_32to47_latch: tri_slat_scan
generic map (width => 16, init => std_ulogic_vector( to_unsigned( bcfg_rpn_32to47, 16 ) ),
reset_inverts_scan => true, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
dclk => lcb_dclk,
lclk => lcb_lclk,
scan_in => bsiv(bcfg_offset+62 to bcfg_offset+77),
scan_out => bsov(bcfg_offset+62 to bcfg_offset+77),
q => bcfg_q(62 to 77),
q_b => bcfg_q_b(62 to 77) );
bcfg_rpn_48to51_latch: tri_slat_scan
generic map (width => 4, init => std_ulogic_vector( to_unsigned( bcfg_rpn_48to51, 4 ) ),
reset_inverts_scan => true, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
dclk => lcb_dclk,
lclk => lcb_lclk,
scan_in => bsiv(bcfg_offset+78 to bcfg_offset+81),
scan_out => bsov(bcfg_offset+78 to bcfg_offset+81),
q => bcfg_q(78 to 81),
q_b => bcfg_q_b(78 to 81) );
bcfg_attr_latch: tri_slat_scan
generic map (width => 5, init => std_ulogic_vector( to_unsigned( bcfg_attr, 5 ) ),
reset_inverts_scan => true, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
dclk => lcb_dclk,
lclk => lcb_lclk,
scan_in => bsiv(bcfg_offset+82 to bcfg_offset+86),
scan_out => bsov(bcfg_offset+82 to bcfg_offset+86),
q => bcfg_q(82 to 86),
q_b => bcfg_q_b(82 to 86) );
bcfg_rpn2_32to47_latch: tri_slat_scan
generic map (width => 16, init => std_ulogic_vector( to_unsigned( bcfg_rpn2_32to47, 16 ) ),
reset_inverts_scan => true, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
dclk => lcb_dclk,
lclk => lcb_lclk,
scan_in => bsiv(bcfg_offset+87 to bcfg_offset+102),
scan_out => bsov(bcfg_offset+87 to bcfg_offset+102),
q => bcfg_q(87 to 102),
q_b => bcfg_q_b(87 to 102) );
bcfg_rpn2_48to51_latch: tri_slat_scan
generic map (width => 4, init => std_ulogic_vector( to_unsigned( bcfg_rpn2_48to51, 4 ) ),
reset_inverts_scan => true, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
dclk => lcb_dclk,
lclk => lcb_lclk,
scan_in => bsiv(bcfg_offset+103 to bcfg_offset+106),
scan_out => bsov(bcfg_offset+103 to bcfg_offset+106),
q => bcfg_q(103 to 106),
q_b => bcfg_q_b(103 to 106) );
bcfg_spare_latch: tri_slat_scan
generic map (width => 16, init => std_ulogic_vector( to_unsigned( 0, 16 ) ),
reset_inverts_scan => true, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
dclk => lcb_dclk,
lclk => lcb_lclk,
scan_in => bsiv(bcfg_offset+107 to bcfg_offset+122),
scan_out => bsov(bcfg_offset+107 to bcfg_offset+122),
q => bcfg_q(107 to 122),
q_b => bcfg_q_b(107 to 122) );
end generate mpg_bcfg_gen;
fpga_bcfg_gen: if expand_type = 1 generate
bcfg_epn_0to15_latch: tri_rlmreg_p
generic map (width => 16, init => bcfg_epn_0to15, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_cfg_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_cfg_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => bsiv(0 to 15),
scout => bsov(0 to 15),
din => bcfg_q(0 to 15),
dout => bcfg_q(0 to 15) );
bcfg_epn_16to31_latch: tri_rlmreg_p
generic map (width => 16, init => bcfg_epn_16to31, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_cfg_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_cfg_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => bsiv(16 to 31),
scout => bsov(16 to 31),
din => bcfg_q(16 to 31),
dout => bcfg_q(16 to 31) );
bcfg_epn_32to47_latch: tri_rlmreg_p
generic map (width => 16, init => bcfg_epn_32to47, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_cfg_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_cfg_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => bsiv(32 to 47),
scout => bsov(32 to 47),
din => bcfg_q(32 to 47),
dout => bcfg_q(32 to 47) );
bcfg_epn_48to51_latch: tri_rlmreg_p
generic map (width => 4, init => bcfg_epn_48to51, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_cfg_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_cfg_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => bsiv(48 to 51),
scout => bsov(48 to 51),
din => bcfg_q(48 to 51),
dout => bcfg_q(48 to 51) );
bcfg_rpn_22to31_latch: tri_rlmreg_p
generic map (width => 10, init => bcfg_rpn_22to31, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_cfg_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_cfg_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => bsiv(52 to 61),
scout => bsov(52 to 61),
din => bcfg_q(52 to 61),
dout => bcfg_q(52 to 61) );
bcfg_rpn_32to47_latch: tri_rlmreg_p
generic map (width => 16, init => bcfg_rpn_32to47, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_cfg_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_cfg_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => bsiv(62 to 77),
scout => bsov(62 to 77),
din => bcfg_q(62 to 77),
dout => bcfg_q(62 to 77) );
bcfg_rpn_48to51_latch: tri_rlmreg_p
generic map (width => 4, init => bcfg_rpn_48to51, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_cfg_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_cfg_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => bsiv(78 to 81),
scout => bsov(78 to 81),
din => bcfg_q(78 to 81),
dout => bcfg_q(78 to 81) );
bcfg_attr_latch: tri_rlmreg_p
generic map (width => 5, init => bcfg_attr, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_cfg_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_cfg_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => bsiv(82 to 86),
scout => bsov(82 to 86),
din => bcfg_q(82 to 86),
dout => bcfg_q(82 to 86) );
bcfg_rpn2_32to47_latch: tri_rlmreg_p
generic map (width => 16, init => bcfg_rpn2_32to47, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_cfg_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_cfg_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => bsiv(87 to 102),
scout => bsov(87 to 102),
din => bcfg_q(87 to 102),
dout => bcfg_q(87 to 102) );
bcfg_rpn2_48to51_latch: tri_rlmreg_p
generic map (width => 4, init => bcfg_rpn2_48to51, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_cfg_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_cfg_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => bsiv(103 to 106),
scout => bsov(103 to 106),
din => bcfg_q(103 to 106),
dout => bcfg_q(103 to 106) );
bcfg_spare_latch: tri_rlmreg_p
generic map (width => 16, init => 0, needs_sreset => 1, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
thold_b => pc_cfg_slp_sl_thold_0_b,
sg => pc_sg_0,
forcee => pc_cfg_slp_sl_force,
delay_lclkr => lcb_delay_lclkr_dc(0),
mpw1_b => lcb_mpw1_dc_b(0),
mpw2_b => lcb_mpw2_dc_b,
d_mode => lcb_d_mode_dc,
scin => bsiv(107 to 122),
scout => bsov(107 to 122),
din => bcfg_q(107 to 122),
dout => bcfg_q(107 to 122) );
end generate fpga_bcfg_gen;
--------------------------------------------------
-- thold/sg latches
--------------------------------------------------
perv_2to1_reg: tri_plat
generic map (width => 4, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
flush => tc_ccflush_dc,
din(0) => pc_iu_func_sl_thold_2,
din(1) => pc_iu_func_slp_sl_thold_2,
din(2) => pc_iu_cfg_slp_sl_thold_2,
din(3) => pc_iu_sg_2,
q(0) => pc_func_sl_thold_1,
q(1) => pc_func_slp_sl_thold_1,
q(2) => pc_cfg_slp_sl_thold_1,
q(3) => pc_sg_1);
perv_1to0_reg: tri_plat
generic map (width => 4, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
flush => tc_ccflush_dc,
din(0) => pc_func_sl_thold_1,
din(1) => pc_func_slp_sl_thold_1,
din(2) => pc_cfg_slp_sl_thold_1,
din(3) => pc_sg_1,
q(0) => pc_func_sl_thold_0,
q(1) => pc_func_slp_sl_thold_0,
q(2) => pc_cfg_slp_sl_thold_0,
q(3) => pc_sg_0);
perv_lcbor_func_sl: tri_lcbor
generic map (expand_type => expand_type)
port map (clkoff_b => lcb_clkoff_dc_b,
thold => pc_func_sl_thold_0,
sg => pc_sg_0,
act_dis => lcb_act_dis_dc,
forcee => pc_func_sl_force,
thold_b => pc_func_sl_thold_0_b);
perv_lcbor_func_slp_sl: tri_lcbor
generic map (expand_type => expand_type)
port map (clkoff_b => lcb_clkoff_dc_b,
thold => pc_func_slp_sl_thold_0,
sg => pc_sg_0,
act_dis => lcb_act_dis_dc,
forcee => pc_func_slp_sl_force,
thold_b => pc_func_slp_sl_thold_0_b);
mpg_bcfg_lcb_gen: if expand_type /= 1 generate
--------------------------------------------------
-- local clock buffer for boot config
--------------------------------------------------
bcfg_lcb: tri_lcbs
generic map (expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
delay_lclkr => lcb_delay_lclkr_dc(0),
nclk => nclk,
forcee => pc_cfg_slp_sl_force,
thold_b => pc_cfg_slp_sl_thold_0_b,
dclk => lcb_dclk,
lclk => lcb_lclk );
-- these terms in the absence of another lcbor component
-- that drives the thold_b and force into the bcfg_lcb for slat's
pc_cfg_slp_sl_thold_0_b <= NOT pc_cfg_slp_sl_thold_0;
pc_cfg_slp_sl_force <= pc_sg_0;
end generate mpg_bcfg_lcb_gen;
fpga_bcfg_lcb_gen: if expand_type = 1 generate
perv_lcbor_cfg_sl: tri_lcbor
generic map (expand_type => expand_type)
port map (clkoff_b => lcb_clkoff_dc_b,
thold => pc_cfg_slp_sl_thold_0,
sg => pc_sg_0,
act_dis => lcb_act_dis_dc,
forcee => pc_cfg_slp_sl_force,
thold_b => pc_cfg_slp_sl_thold_0_b);
end generate fpga_bcfg_lcb_gen;
-----------------------------------------------------------------------
-- Scan
-----------------------------------------------------------------------
siv_0(0 TO scan_right_0) <= sov_0(1 to scan_right_0) & ac_func_scan_in(0);
ac_func_scan_out(0) <= sov_0(0);
siv_1(0 TO scan_right_1) <= sov_1(1 to scan_right_1) & ac_func_scan_in(1);
ac_func_scan_out(1) <= sov_1(0);
bsiv(0 TO boot_scan_right) <= bsov(1 to boot_scan_right) & ac_ccfg_scan_in;
ac_ccfg_scan_out <= bsov(0);
END IUQ_IC_IERAT;