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.

4424 lines
192 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.
-- Description: XU LSU Data Rotator
--
library ibm, ieee, work, tri, support;
use ibm.std_ulogic_support.all;
use ibm.std_ulogic_function_support.all;
use ibm.std_ulogic_unsigned.all;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use tri.tri_latches_pkg.all;
use support.power_logic_pkg.all;
-- ##########################################################################################
-- VHDL Contents
-- 1) 32 Byte Reload Bus
-- 2) 32 Byte Unaligned Rotator
-- 3) Little Endian Support for 2,4,8,16,32 Byte Operations
-- 4) Execution Pipe Store data rotation
-- 5) Byte Enable Generation
-- ##########################################################################################
entity xuq_lsu_data is
generic(expand_type : integer := 2; -- 0 = ibm (Umbra), 1 = non-ibm, 2 = ibm (MPG)
regmode : integer := 6; -- Register Mode 5 = 32bit, 6 = 64bit
dc_size : natural := 14; -- 2^14 = 16384 Bytes L1 D$
cl_size : natural := 6; -- 2^6 = 64 Bytes CacheLines
l_endian_m : integer := 1); -- 1 = little endian mode enabled, 0 = little endian mode disabled
port(
-- Execution Pipe
xu_lsu_rf1_data_act :in std_ulogic;
xu_lsu_rf1_axu_ldst_falign :in std_ulogic;
xu_lsu_ex1_store_data :in std_ulogic_vector(64-(2**REGMODE) to 63);
xu_lsu_ex1_eff_addr :in std_ulogic_vector(64-(dc_size-3) to 63);
xu_lsu_ex1_rotsel_ovrd :in std_ulogic_vector(0 to 4);
ex1_optype32 :in std_ulogic;
ex1_optype16 :in std_ulogic;
ex1_optype8 :in std_ulogic;
ex1_optype4 :in std_ulogic;
ex1_optype2 :in std_ulogic;
ex1_optype1 :in std_ulogic;
ex1_store_instr :in std_ulogic;
ex1_axu_op_val :in std_ulogic;
ex1_saxu_instr :in std_ulogic;
ex1_sdp_instr :in std_ulogic;
ex1_stgpr_instr :in std_ulogic;
fu_xu_ex2_store_data_val :in std_ulogic; -- EX2 AXU Data is Valid
fu_xu_ex2_store_data :in std_ulogic_vector(0 to 255); -- EX2 AXU Data
ex3_algebraic :in std_ulogic; -- EX3 Instruction is a Load Algebraic
ex3_data_swap :in std_ulogic; -- EX3 little-endian or byte reversal valid
ex3_thrd_id :in std_ulogic_vector(0 to 3); -- EX3 Thread ID
ex5_dp_data :in std_ulogic_vector(0 to 127); -- EX5 dp data
-- Debug Data Compare
ex4_load_op_hit :in std_ulogic;
ex4_store_hit :in std_ulogic;
ex4_axu_op_val :in std_ulogic;
spr_dvc1_act :in std_ulogic;
spr_dvc2_act :in std_ulogic;
spr_dvc1_dbg :in std_ulogic_vector(64-(2**regmode) to 63);
spr_dvc2_dbg :in std_ulogic_vector(64-(2**regmode) to 63);
-- Update Data Array Valid
rel_upd_dcarr_val :in std_ulogic;
-- Instruction Flush
xu_lsu_ex4_flush :in std_ulogic_vector(0 to 3); -- EX4 Flush Stage
xu_lsu_ex4_flush_local :in std_ulogic_vector(0 to 3); -- EX4 Local Flush Stage
xu_lsu_ex5_flush :in std_ulogic_vector(0 to 3); -- EX5 Flush Stage
-- Error Inject
xu_pc_err_dcache_parity :out std_ulogic;
pc_xu_inj_dcache_parity :in std_ulogic;
-- Config Bits
xu_lsu_spr_xucr0_dcdis :in std_ulogic;
spr_xucr0_clkg_ctl_b0 :in std_ulogic;
-- Reload Pipe
ldq_rel_data_val_early :in std_ulogic;
ldq_rel_algebraic :in std_ulogic; -- Reload requires sign extension
ldq_rel_data_val :in std_ulogic; -- Reload Data is Valid
ldq_rel_ci :in std_ulogic; -- Reload Data is for a cache-inhibited request
ldq_rel_thrd_id :in std_ulogic_vector(0 to 3); -- Reload Thread ID for DVC
ldq_rel_axu_val :in std_ulogic; -- Reload Data is the correct Quadword
ldq_rel_data :in std_ulogic_vector(0 to 255); -- Reload Data
ldq_rel_rot_sel :in std_ulogic_vector(0 to 4); -- Rotator Select
ldq_rel_op_size :in std_ulogic_vector(0 to 5); -- Reload Size of Original Request
ldq_rel_le_mode :in std_ulogic; -- Reload requires Little Endian Swap
ldq_rel_dvc1_en :in std_ulogic; -- Debug Data Value Compare1 Enable
ldq_rel_dvc2_en :in std_ulogic; -- Debug Data Value Compare2 Enable
ldq_rel_beat_crit_qw :in std_ulogic; -- Reload Data is the correct Quadword
ldq_rel_beat_crit_qw_block :in std_ulogic; -- Reload Data had an ECC error
ldq_rel_addr :in std_ulogic_vector(64-(dc_size-3) to 58); -- Reload Array Address
-- Data Cache Update
dcarr_up_way_addr :in std_ulogic_vector(0 to 2); -- Upper Address of Data Cache
-- Execution Pipe Outputs
ex4_256st_data :out std_ulogic_vector(0 to 255); -- EX4 Store Data
ex6_ld_par_err :out std_ulogic; -- EX6 Parity Error Detected on the Load Data
lsu_xu_ex6_datc_par_err :out std_ulogic; -- EX6 Parity Error Detected per thread
--Rotated Data
ex6_xu_ld_data_b :out std_ulogic_vector(64-(2**regmode) to 63);
rel_xu_ld_data :out std_ulogic_vector(64-(2**regmode) to 64+((2**regmode)/8)-1);
xu_fu_ex6_load_data :out std_ulogic_vector(0 to 255);
xu_fu_ex5_load_le :out std_ulogic; -- AXU load/reload was little endian swapped
-- Debug Data Compare
lsu_xu_rel_dvc_thrd_id :out std_ulogic_vector(0 to 3); -- DVC compared to a Threads Reload
lsu_xu_ex2_dvc1_st_cmp :out std_ulogic_vector(0 to ((2**regmode)/8)-1);
lsu_xu_ex8_dvc1_ld_cmp :out std_ulogic_vector(0 to ((2**regmode)/8)-1);
lsu_xu_rel_dvc1_en :out std_ulogic;
lsu_xu_rel_dvc1_cmp :out std_ulogic_vector(0 to ((2**regmode)/8)-1);
lsu_xu_ex2_dvc2_st_cmp :out std_ulogic_vector(0 to ((2**regmode)/8)-1);
lsu_xu_ex8_dvc2_ld_cmp :out std_ulogic_vector(0 to ((2**regmode)/8)-1);
lsu_xu_rel_dvc2_en :out std_ulogic;
lsu_xu_rel_dvc2_cmp :out std_ulogic_vector(0 to ((2**regmode)/8)-1);
-- Debug Bus IO
pc_xu_trace_bus_enable :in std_ulogic;
lsudat_debug_mux_ctrls :in std_ulogic_vector(0 to 1);
lsu_xu_data_debug0 :out std_ulogic_vector(0 to 87);
lsu_xu_data_debug1 :out std_ulogic_vector(0 to 87);
lsu_xu_data_debug2 :out std_ulogic_vector(0 to 87);
--pervasive
vdd :inout power_logic;
gnd :inout power_logic;
vcs :inout power_logic;
nclk :in clk_logic;
pc_xu_ccflush_dc :in std_ulogic;
sg_2 :in std_ulogic;
fce_2 :in std_ulogic;
func_sl_thold_2 :in std_ulogic;
func_nsl_thold_2 :in std_ulogic;
clkoff_dc_b :in std_ulogic;
d_mode_dc :in std_ulogic;
delay_lclkr_dc :in std_ulogic_vector(5 to 5);
mpw1_dc_b :in std_ulogic_vector(5 to 5);
mpw2_dc_b :in std_ulogic;
g6t_clkoff_dc_b :in std_ulogic;
g6t_d_mode_dc :in std_ulogic;
g6t_delay_lclkr_dc :in std_ulogic_vector(0 to 4);
g6t_mpw1_dc_b :in std_ulogic_vector(0 to 4);
g6t_mpw2_dc_b :in std_ulogic;
abst_sl_thold_2 :in std_ulogic;
time_sl_thold_2 :in std_ulogic;
ary_nsl_thold_2 :in std_ulogic;
repr_sl_thold_2 :in std_ulogic;
bolt_sl_thold_2 :in std_ulogic;
bo_enable_2 :in std_ulogic;
an_ac_scan_dis_dc_b :in std_ulogic;
an_ac_scan_diag_dc :in std_ulogic;
-- G6T ABIST Control
an_ac_lbist_ary_wrt_thru_dc :in std_ulogic;
pc_xu_abist_ena_dc :in std_ulogic;
pc_xu_abist_g6t_bw :in std_ulogic_vector(0 to 1);
pc_xu_abist_di_g6t_2r :in std_ulogic_vector(0 to 3);
pc_xu_abist_wl512_comp_ena :in std_ulogic;
pc_xu_abist_raw_dc_b :in std_ulogic;
pc_xu_abist_dcomp_g6t_2r :in std_ulogic_vector(0 to 3);
pc_xu_abist_raddr_0 :in std_ulogic_vector(1 to 9);
pc_xu_abist_g6t_r_wb :in std_ulogic;
pc_xu_bo_unload :in std_ulogic;
pc_xu_bo_repair :in std_ulogic;
pc_xu_bo_reset :in std_ulogic;
pc_xu_bo_shdata :in std_ulogic;
pc_xu_bo_select :in std_ulogic_vector(5 to 6);
xu_pc_bo_fail :out std_ulogic_vector(5 to 6);
xu_pc_bo_diagout :out std_ulogic_vector(5 to 6);
-- SCAN Ports
abst_scan_in :in std_ulogic_vector(0 to 1);
time_scan_in :in std_ulogic;
repr_scan_in :in std_ulogic;
abst_scan_out :out std_ulogic_vector(0 to 1);
time_scan_out :out std_ulogic;
repr_scan_out :out std_ulogic;
func_scan_in :in std_ulogic_vector(0 to 2);
func_scan_out :out std_ulogic_vector(0 to 2)
);
-- synopsys translate_off
-- synopsys translate_on
end xuq_lsu_data;
----
architecture xuq_lsu_data of xuq_lsu_data is
----------------------------
-- components
----------------------------
----------------------------
-- constants
----------------------------
constant rot_max_size :std_ulogic_vector(0 to 5) := "100000";
constant byte16_size :std_ulogic_vector(0 to 5) := "010000";
constant uprCClassBit :natural := 64-(dc_size-3);
constant lwrCClassBit :natural := 63-cl_size;
constant ex3_opsize_offset :natural := 0;
constant ex3_ovrd_rot_offset :natural := ex3_opsize_offset + 6;
constant ex4_le_mode_sel_offset :natural := ex3_ovrd_rot_offset + 1;
constant ex4_be_mode_sel_offset :natural := ex4_le_mode_sel_offset + 16;
constant ex5_load_hit_offset :natural := ex4_be_mode_sel_offset + 16;
constant ex7_load_hit_offset :natural := ex5_load_hit_offset + 1;
constant ex2_st_data_offset :natural := ex7_load_hit_offset + 1;
constant axu_rel_upd_offset :natural := ex2_st_data_offset + (2**regmode);
constant rel_data_val_offset :natural := axu_rel_upd_offset + 16;
constant rel_addr_stg_offset :natural := rel_data_val_offset + 16;
constant rel_addr_offset :natural := rel_addr_stg_offset + 58-uprCClassBit+1;
constant ex5_axu_data_sel_offset :natural := rel_addr_offset + 58-uprCClassBit+1;
constant ex3_stgpr_instr_offset :natural := ex5_axu_data_sel_offset + 3;
constant ex4_stgpr_instr_offset :natural := ex3_stgpr_instr_offset + 1;
constant ex3_sdp_instr_offset :natural := ex4_stgpr_instr_offset + 1;
constant ex4_sdp_instr_offset :natural := ex3_sdp_instr_offset + 1;
constant ex5_sdp_instr_offset :natural := ex4_sdp_instr_offset + 1;
constant rot_addr_offset :natural := ex5_sdp_instr_offset + 1;
constant rot_sel_non_le_offset :natural := rot_addr_offset + 5;
constant ex5_dvc1_en_offset :natural := rot_sel_non_le_offset + 5;
constant ex6_dvc1_en_offset :natural := ex5_dvc1_en_offset + 1;
constant ex7_dvc1_en_offset :natural := ex6_dvc1_en_offset + 1;
constant rel_dvc1_val_offset :natural := ex7_dvc1_en_offset + ((2**regmode)/8);
constant ex8_ld_dvc1_cmp_offset :natural := rel_dvc1_val_offset + 1;
constant rel_dvc1_val_stg_offset :natural := ex8_ld_dvc1_cmp_offset + ((2**regmode)/8);
constant rel_dvc1_val_stg2_offset :natural := rel_dvc1_val_stg_offset + 1;
constant rel_dvc2_val_stg_offset :natural := rel_dvc1_val_stg2_offset + 1;
constant rel_dvc2_val_stg2_offset :natural := rel_dvc2_val_stg_offset + 1;
constant ex5_dvc2_en_offset :natural := rel_dvc2_val_stg2_offset + 1;
constant ex6_dvc2_en_offset :natural := ex5_dvc2_en_offset + 1;
constant ex7_dvc2_en_offset :natural := ex6_dvc2_en_offset + 1;
constant rel_dvc2_val_offset :natural := ex7_dvc2_en_offset + ((2**regmode)/8);
constant ex8_ld_dvc2_cmp_offset :natural := rel_dvc2_val_offset + 1;
constant ex2_optype32_offset :natural := ex8_ld_dvc2_cmp_offset + ((2**regmode)/8);
constant ex2_optype16_offset :natural := ex2_optype32_offset + 1;
constant ex2_optype8_offset :natural := ex2_optype16_offset + 1;
constant ex2_optype4_offset :natural := ex2_optype8_offset + 1;
constant ex2_optype2_offset :natural := ex2_optype4_offset + 1;
constant ex2_optype1_offset :natural := ex2_optype2_offset + 1;
constant ex2_p_addr_offset :natural := ex2_optype1_offset + 1;
constant frc_p_addr_offset :natural := ex2_p_addr_offset + 64-uprCClassBit;
constant ex2_store_instr_offset :natural := frc_p_addr_offset + 6;
constant ex2_axu_op_val_offset :natural := ex2_store_instr_offset + 1;
constant ex4_axu_op_val_offset :natural := ex2_axu_op_val_offset + 1;
constant ex2_xu_cmp_val_offset :natural := ex4_axu_op_val_offset + 1;
constant ex2_saxu_instr_offset :natural := ex2_xu_cmp_val_offset + (2**regmode)/8;
constant ex2_sdp_instr_offset :natural := ex2_saxu_instr_offset + 1;
constant ex2_stgpr_instr_offset :natural := ex2_sdp_instr_offset + 1;
constant ex4_saxu_instr_offset :natural := ex2_stgpr_instr_offset + 1;
constant ex4_algebraic_offset :natural := ex4_saxu_instr_offset + 1;
constant ex2_ovrd_rot_sel_offset :natural := ex4_algebraic_offset + 1;
constant ex4_p_addr_offset :natural := ex2_ovrd_rot_sel_offset + 5;
constant spr_xucr0_dcdis_offset :natural := ex4_p_addr_offset + 64-uprCClassBit;
constant clkg_ctl_override_offset :natural := spr_xucr0_dcdis_offset + 1;
constant rel_dvc_tid_stg_offset :natural := clkg_ctl_override_offset + 1;
constant inj_dcache_parity_offset :natural := rel_dvc_tid_stg_offset + 4;
constant ex5_stgpr_dp_instr_offset :natural := inj_dcache_parity_offset + 1;
constant ex6_stgpr_dp_instr_offset :natural := ex5_stgpr_dp_instr_offset + 1;
constant ex6_stgpr_dp_data_offset :natural := ex6_stgpr_dp_instr_offset + 1;
constant ex5_rel_le_mode_offset :natural := ex6_stgpr_dp_data_offset + 128;
constant ex1_ldst_falign_offset :natural := ex5_rel_le_mode_offset + 1;
constant ex5_thrd_id_offset :natural := ex1_ldst_falign_offset + 1;
constant axu_rel_val_stg1_offset :natural := ex5_thrd_id_offset + 4;
constant axu_rel_val_stg2_offset :natural := axu_rel_val_stg1_offset + 1;
constant axu_rel_val_stg3_offset :natural := axu_rel_val_stg2_offset + 1;
constant rel_256ld_data_stg2_offset :natural := axu_rel_val_stg3_offset + 1;
constant rel_axu_le_val_offset :natural := rel_256ld_data_stg2_offset + 256;
constant rel_axu_le_val_stg1_offset :natural := rel_axu_le_val_offset + 1;
constant dcarr_wren_offset :natural := rel_axu_le_val_stg1_offset + 1;
constant dat_dbg_arr_offset :natural := dcarr_wren_offset + 1;
constant ld_alg_le_sel_offset :natural := dat_dbg_arr_offset + 13;
constant ex1_stg_act_offset :natural := ld_alg_le_sel_offset + 5;
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 rel1_stg_act_offset :natural := ex6_stg_act_offset + 1;
constant rel2_stg_act_offset :natural := rel1_stg_act_offset + 1;
constant rel3_stg_act_offset :natural := rel2_stg_act_offset + 1;
constant rel4_stg_act_offset :natural := rel3_stg_act_offset + 1;
constant rel5_stg_act_offset :natural := rel4_stg_act_offset + 1;
constant rel2_ex2_stg_act_offset :natural := rel5_stg_act_offset + 1;
constant rel3_ex3_stg_act_offset :natural := rel2_ex2_stg_act_offset + 1;
constant rel4_ex4_stg_act_offset :natural := rel3_ex3_stg_act_offset + 1;
constant ex8_ld_par_err_offset :natural := rel4_ex4_stg_act_offset + 1;
constant my_spare_latches_offset :natural := ex8_ld_par_err_offset + 1;
constant scan_right0 :natural := my_spare_latches_offset + 8 - 1;
constant l1dcar_offset :natural := 0;
constant l1dcld_offset :natural := l1dcar_offset + 1;
constant rel_data_offset :natural := l1dcld_offset + 1;
constant rel_algebraic_offset :natural := rel_data_offset + 256;
constant rel_rot_sel_offset :natural := rel_algebraic_offset + 1;
constant rel_op_size_offset :natural := rel_rot_sel_offset + 5;
constant rel_le_mode_offset :natural := rel_op_size_offset + 6;
constant rel_dvc1_en_offset :natural := rel_le_mode_offset + 1;
constant rel_dvc2_en_offset :natural := rel_dvc1_en_offset + 1;
constant rel_upd_gpr_offset :natural := rel_dvc2_en_offset + 1;
constant rel_axu_val_offset :natural := rel_upd_gpr_offset + 1;
constant rel_ci_offset :natural := rel_axu_val_offset + 1;
constant rel_thrd_id_offset :natural := rel_ci_offset + 1;
constant rel_data_val_stg_offset :natural := rel_thrd_id_offset + 4;
constant spr_dvc1_dbg_offset :natural := rel_data_val_stg_offset + 1;
constant spr_dvc2_dbg_offset :natural := spr_dvc1_dbg_offset + (2**regmode);
constant trace_bus_enable_offset :natural := spr_dvc2_dbg_offset + (2**regmode);
constant dat_debug_mux_ctrls_offset :natural := trace_bus_enable_offset + 1;
constant dat_dbg_st_dat_offset :natural := dat_debug_mux_ctrls_offset + 2;
constant scan_right1 :natural := dat_dbg_st_dat_offset + 64 - 1;
----------------------------
-- signals
----------------------------
signal op_size :std_ulogic_vector(0 to 5);
signal ex3_opsize_d :std_ulogic_vector(0 to 5);
signal ex3_opsize_q :std_ulogic_vector(0 to 5);
signal rot_addr :std_ulogic_vector(0 to 5);
signal rot_addr_le :std_ulogic_vector(0 to 5);
signal rot_size :std_ulogic_vector(0 to 5);
signal rot_size_le :std_ulogic_vector(0 to 5);
signal ex3_le_mode :std_ulogic;
signal ex3_be_mode :std_ulogic;
signal ex4_le_mode_d :std_ulogic;
signal ex4_le_mode_q :std_ulogic;
signal ex4_le_mode_sel_d :std_ulogic_vector(0 to 15);
signal ex4_le_mode_sel_q :std_ulogic_vector(0 to 15);
signal ex4_be_mode_sel_d :std_ulogic_vector(0 to 15);
signal ex4_be_mode_sel_q :std_ulogic_vector(0 to 15);
signal st_256data :std_ulogic_vector(0 to 255);
signal ex3_byte_en :std_ulogic_vector(0 to 31);
signal ex5_ld_data :std_ulogic_vector(0 to 255);
signal ex5_ld_data_par :std_ulogic_vector(0 to 31);
signal ex6_par_chk_val :std_ulogic;
signal ex2_st_data_fixup :std_ulogic_vector(0 to 127);
signal ex2_st_data_d :std_ulogic_vector(64-(2**regmode) to 63);
signal ex2_st_data_q :std_ulogic_vector(64-(2**regmode) to 63);
signal fu_ex2_store_data_val :std_ulogic;
signal fu_ex2_store_data :std_ulogic_vector(0 to 255);
signal rel_256ld_data :std_ulogic_vector(0 to 255);
signal rel_64ld_data :std_ulogic_vector(64-(2**regmode) to 63);
signal axu_rel_upd_d :std_ulogic_vector(0 to 15);
signal axu_rel_upd_q :std_ulogic_vector(0 to 15);
signal ex6_rot_sel :std_ulogic_vector(0 to 31);
signal rot_sel_non_le :std_ulogic_vector(0 to 5);
signal be_st_rot_sel :std_ulogic_vector(1 to 5);
signal le_st_rot_sel :std_ulogic_vector(0 to 3);
signal ex4_ld_rot_sel :std_ulogic_vector(1 to 5);
signal st_ovrd_rot_sel :std_ulogic_vector(0 to 4);
signal ex3_st_rot_sel_d :std_ulogic_vector(0 to 4);
signal ex3_st_rot_sel_q :std_ulogic_vector(0 to 4);
signal rel_algebraic :std_ulogic;
signal rel_data :std_ulogic_vector(0 to 255);
signal rel_data_val :std_ulogic_vector(0 to 15);
signal rel_upd_gpr_d :std_ulogic;
signal rel_upd_gpr_q :std_ulogic;
signal rel_rot_sel :std_ulogic_vector(0 to 4);
signal rel_op_size :std_ulogic_vector(0 to 5);
signal rel_le_mode :std_ulogic;
signal rel_algebraic_d :std_ulogic;
signal rel_data_val_d :std_ulogic_vector(0 to 15);
signal rel_data_d :std_ulogic_vector(0 to 255);
signal rel_rot_sel_d :std_ulogic_vector(0 to 4);
signal rel_op_size_d :std_ulogic_vector(0 to 5);
signal rel_le_mode_d :std_ulogic;
signal rel_addr_d :std_ulogic_vector(uprCClassBit to 58);
signal rel_algebraic_q :std_ulogic;
signal rel_data_val_q :std_ulogic_vector(0 to 15);
signal rel_data_q :std_ulogic_vector(0 to 255);
signal rel_rot_sel_q :std_ulogic_vector(0 to 4);
signal rel_op_size_q :std_ulogic_vector(0 to 5);
signal rel_le_mode_q :std_ulogic;
signal rel_addr_q :std_ulogic_vector(uprCClassBit to 58);
signal rel_xu_ld_par :std_ulogic_vector(0 to 7);
signal rel_ex2_data :std_ulogic_vector(0 to 255);
signal rel_ex3_data_d :std_ulogic_vector(0 to 255);
signal rel_ex3_data_q :std_ulogic_vector(0 to 255);
signal rel_addr_stg_d :std_ulogic_vector(uprCClassBit to 58);
signal rel_addr_stg_q :std_ulogic_vector(uprCClassBit to 58);
signal rel_data_val_stg_d :std_ulogic;
signal rel_data_val_stg_q :std_ulogic;
signal rel_data_val_stg_dly_d :std_ulogic;
signal rel_data_val_stg_dly_q :std_ulogic;
signal ex4_parity_gen :std_ulogic_vector(0 to 31);
signal non_le_byte_bit0 :std_ulogic_vector(0 to 31);
signal le_byte_bit0 :std_ulogic_vector(0 to 31);
signal alg_bit_sel :std_ulogic_vector(0 to 4);
signal alg_byte :std_ulogic_vector(0 to 31);
signal algebraic_bit :std_ulogic;
signal rel_alg_bit_d :std_ulogic;
signal rel_alg_bit_q :std_ulogic;
signal ex2_ovrd_rot :std_ulogic;
signal ex3_ovrd_rot_d :std_ulogic;
signal ex3_ovrd_rot_q :std_ulogic;
signal ex3_sdp_instr_d :std_ulogic;
signal ex3_sdp_instr_q :std_ulogic;
signal ex4_sdp_instr_d :std_ulogic;
signal ex4_sdp_instr_q :std_ulogic;
signal ex5_sdp_instr_d :std_ulogic;
signal ex5_sdp_instr_q :std_ulogic;
signal ex3_stgpr_instr_d :std_ulogic;
signal ex3_stgpr_instr_q :std_ulogic;
signal ex4_stgpr_instr_d :std_ulogic;
signal ex4_stgpr_instr_q :std_ulogic;
signal ex5_stgpr_dp_instr_d :std_ulogic;
signal ex5_stgpr_dp_instr_q :std_ulogic;
signal ex6_stgpr_dp_instr_d :std_ulogic;
signal ex6_stgpr_dp_instr_q :std_ulogic;
signal ex6_stgpr_dp_instr_q_b :std_ulogic;
signal ex4_stgpr_data :std_ulogic_vector(64-(2**regmode) to 63);
signal ex5_stgpr_data_d :std_ulogic_vector(64-(2**regmode) to 63);
signal ex5_stgpr_data_q :std_ulogic_vector(64-(2**regmode) to 63);
signal ex6_stgpr_dp_data_d :std_ulogic_vector(0 to 127);
signal ex6_stgpr_dp_data_q :std_ulogic_vector(0 to 127);
signal rel_axu_le_mode :std_ulogic;
signal rot_addr_d :std_ulogic_vector(1 to 5);
signal rot_addr_q :std_ulogic_vector(1 to 5);
signal ex4_rot_addr_d :std_ulogic_vector(1 to 5);
signal ex4_rot_addr_q :std_ulogic_vector(1 to 5);
signal rot_sel_non_le_d :std_ulogic_vector(1 to 5);
signal rot_sel_non_le_q :std_ulogic_vector(1 to 5);
signal ex4_rot_sel_non_le_d :std_ulogic_vector(1 to 5);
signal ex4_rot_sel_non_le_q :std_ulogic_vector(1 to 5);
signal rel_axu_val_d :std_ulogic;
signal rel_axu_val_q :std_ulogic;
signal rel_ci_d :std_ulogic;
signal rel_ci_q :std_ulogic;
signal rel_ci_dly_d :std_ulogic;
signal rel_ci_dly_q :std_ulogic;
signal ex2_st_dvc1_cmp_d :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex2_st_dvc1_cmp_q :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex2_st_dvc2_cmp_d :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex2_st_dvc2_cmp_q :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex8_ld_dvc1_cmp_d :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex8_ld_dvc1_cmp_q :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex8_ld_dvc2_cmp_d :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex8_ld_dvc2_cmp_q :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal rel_dvc1_cmp_d :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal rel_dvc1_cmp_q :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal rel_dvc2_cmp_d :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal rel_dvc2_cmp_q :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal rel_dvc1_val_stg_d :std_ulogic;
signal rel_dvc1_val_stg_q :std_ulogic;
signal rel_dvc1_val_stg2_d :std_ulogic;
signal rel_dvc1_val_stg2_q :std_ulogic;
signal rel_dvc2_val_stg_d :std_ulogic;
signal rel_dvc2_val_stg_q :std_ulogic;
signal rel_dvc2_val_stg2_d :std_ulogic;
signal rel_dvc2_val_stg2_q :std_ulogic;
signal ex5_dvc1_en_d :std_ulogic;
signal ex5_dvc1_en_q :std_ulogic;
signal ex6_dvc1_en_d :std_ulogic;
signal ex6_dvc1_en_q :std_ulogic;
signal ex7_dvc1_en_d :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex7_dvc1_en_q :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex5_dvc2_en_d :std_ulogic;
signal ex5_dvc2_en_q :std_ulogic;
signal ex6_dvc2_en_d :std_ulogic;
signal ex6_dvc2_en_q :std_ulogic;
signal ex7_dvc2_en_d :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex7_dvc2_en_q :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal rel_dvc1_en_d :std_ulogic;
signal rel_dvc1_en_q :std_ulogic;
signal rel_dvc2_en_d :std_ulogic;
signal rel_dvc2_en_q :std_ulogic;
signal rel_dvc1_val_d :std_ulogic;
signal rel_dvc1_val_q :std_ulogic;
signal rel_dvc2_val_d :std_ulogic;
signal rel_dvc2_val_q :std_ulogic;
signal ex1_op_size :std_ulogic_vector(2 to 5);
signal ex1_st_byte_mask :std_ulogic_vector(0 to 7);
signal ex2_optype32_d :std_ulogic;
signal ex2_optype32_q :std_ulogic;
signal ex2_optype16_d :std_ulogic;
signal ex2_optype16_q :std_ulogic;
signal ex2_optype8_d :std_ulogic;
signal ex2_optype8_q :std_ulogic;
signal ex2_optype4_d :std_ulogic;
signal ex2_optype4_q :std_ulogic;
signal ex2_optype2_d :std_ulogic;
signal ex2_optype2_q :std_ulogic;
signal ex2_optype1_d :std_ulogic;
signal ex2_optype1_q :std_ulogic;
signal ex2_p_addr_d :std_ulogic_vector(uprCClassBit to 63);
signal ex2_p_addr_q :std_ulogic_vector(uprCClassBit to 63);
signal ex3_fu_st_val_d :std_ulogic;
signal ex3_fu_st_val_q :std_ulogic;
signal frc_p_addr_d :std_ulogic_vector(58 to 63);
signal frc_p_addr_q :std_ulogic_vector(58 to 63);
signal ex2_store_instr_d :std_ulogic;
signal ex2_store_instr_q :std_ulogic;
signal ex3_store_instr_d :std_ulogic;
signal ex3_store_instr_q :std_ulogic;
signal ex2_axu_op_val_d :std_ulogic;
signal ex2_axu_op_val_q :std_ulogic;
signal ex3_axu_op_val_d :std_ulogic;
signal ex3_axu_op_val_q :std_ulogic;
signal ex4_axu_op_val_d :std_ulogic;
signal ex4_axu_op_val_q :std_ulogic;
signal ex2_xu_cmp_val_d :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex2_xu_cmp_val_q :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ex2_saxu_instr_d :std_ulogic;
signal ex2_saxu_instr_q :std_ulogic;
signal ex2_sdp_instr_d :std_ulogic;
signal ex2_sdp_instr_q :std_ulogic;
signal ex2_stgpr_instr_d :std_ulogic;
signal ex2_stgpr_instr_q :std_ulogic;
signal ex3_saxu_instr_d :std_ulogic;
signal ex3_saxu_instr_q :std_ulogic;
signal ex4_saxu_instr_d :std_ulogic;
signal ex4_saxu_instr_q :std_ulogic;
signal ex4_algebraic_d :std_ulogic;
signal ex4_algebraic_q :std_ulogic;
signal ex2_ovrd_rot_sel_d :std_ulogic_vector(0 to 4);
signal ex2_ovrd_rot_sel_q :std_ulogic_vector(0 to 4);
signal ex3_p_addr_d :std_ulogic_vector(uprCClassBit to 63);
signal ex3_p_addr_q :std_ulogic_vector(uprCClassBit to 63);
signal ex4_p_addr_d :std_ulogic_vector(uprCClassBit to 63);
signal ex4_p_addr_q :std_ulogic_vector(uprCClassBit to 63);
signal rel_ex2_par_gen :std_ulogic_vector(0 to 31);
signal rel_ex3_par_gen_d :std_ulogic_vector(0 to 31);
signal rel_ex3_par_gen_q :std_ulogic_vector(0 to 31);
signal ex2_fu_data_val :std_ulogic;
signal rel_xu_data :std_ulogic_vector(0 to 255);
signal spr_xucr0_dcdis_d :std_ulogic;
signal spr_xucr0_dcdis_q :std_ulogic;
signal clkg_ctl_override_d :std_ulogic;
signal clkg_ctl_override_q :std_ulogic;
signal rel_data_val_wren :std_ulogic;
signal rel_thrd_id_d :std_ulogic_vector(0 to 3);
signal rel_thrd_id_q :std_ulogic_vector(0 to 3);
signal rel_dvc_thrd_id_d :std_ulogic_vector(0 to 3);
signal rel_dvc_thrd_id_q :std_ulogic_vector(0 to 3);
signal rel_dvc_tid_stg_d :std_ulogic_vector(0 to 3);
signal rel_dvc_tid_stg_q :std_ulogic_vector(0 to 3);
signal rel_dvc_tid_stg2_d :std_ulogic_vector(0 to 3);
signal rel_dvc_tid_stg2_q :std_ulogic_vector(0 to 3);
signal dont_do_this :std_ulogic_vector(0 to 63);
signal ex6_xld_data :std_ulogic_vector(0 to 63);
signal ex6_xld_data_b :std_ulogic_vector(0 to 63);
signal ex6_ld_alg_bit :std_ulogic_vector(0 to 5);
signal ex6_ld_dvc_byte_mask :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal ld_swzl_data :std_ulogic_vector(0 to 255);
signal axu_data_sel :std_ulogic_vector(0 to 1);
signal ex5_axu_data_sel_d :std_ulogic_vector(0 to 2);
signal ex5_axu_data_sel_q :std_ulogic_vector(0 to 2);
signal ex6_axu_data_sel_d :std_ulogic_vector(0 to 47);
signal ex6_axu_data_sel_q :std_ulogic_vector(0 to 47);
signal inj_dcache_parity_d :std_ulogic;
signal inj_dcache_parity_q :std_ulogic;
signal ex5_rel_le_mode_d :std_ulogic;
signal ex5_rel_le_mode_q :std_ulogic;
signal ex1_ldst_falign_d :std_ulogic;
signal ex1_ldst_falign_q :std_ulogic;
signal ex1_frc_align32 :std_ulogic;
signal ex1_frc_align16 :std_ulogic;
signal ex1_frc_align8 :std_ulogic;
signal ex1_frc_align4 :std_ulogic;
signal ex1_frc_align2 :std_ulogic;
signal ex4_stg_flush :std_ulogic;
signal ex5_stg_flush :std_ulogic;
signal ex4_load_hit :std_ulogic;
signal ex5_load_hit_d :std_ulogic;
signal ex5_load_hit_q :std_ulogic;
signal ex6_load_hit_d :std_ulogic;
signal ex6_load_hit_q :std_ulogic;
signal ex7_load_hit_d :std_ulogic;
signal ex7_load_hit_q :std_ulogic;
signal ex4_thrd_id_d :std_ulogic_vector(0 to 3);
signal ex4_thrd_id_q :std_ulogic_vector(0 to 3);
signal ex5_thrd_id_d :std_ulogic_vector(0 to 3);
signal ex5_thrd_id_q :std_ulogic_vector(0 to 3);
signal axu_rel_val_stg1_d :std_ulogic;
signal axu_rel_val_stg1_q :std_ulogic;
signal axu_rel_val_stg2_d :std_ulogic;
signal axu_rel_val_stg2_q :std_ulogic;
signal axu_rel_val_stg3_d :std_ulogic;
signal axu_rel_val_stg3_q :std_ulogic;
signal rel_data_rot_sel :std_ulogic;
signal rel_256ld_data_stg1_d :std_ulogic_vector(0 to 255);
signal rel_256ld_data_stg1_q :std_ulogic_vector(0 to 255);
signal rel_256ld_data_stg2_d :std_ulogic_vector(0 to 255);
signal rel_256ld_data_stg2_q :std_ulogic_vector(0 to 255);
signal rel_axu_le_val_d :std_ulogic;
signal rel_axu_le_val_q :std_ulogic;
signal rel_axu_le_val_stg1_d :std_ulogic;
signal rel_axu_le_val_stg1_q :std_ulogic;
signal dcarr_rd_data :std_ulogic_vector(0 to 287);
signal dcarr_bw :std_ulogic_vector(0 to 287);
signal dcarr_addr :std_ulogic_vector(uprCClassBit to 58);
signal dcarr_wr_data :std_ulogic_vector(0 to 287);
signal dcarr_bw_dly :std_ulogic_vector(0 to 31);
signal dcarr_wren_b :std_ulogic;
signal dcarr_wren :std_ulogic;
signal dcarr_wren_d :std_ulogic;
signal dcarr_wren_q :std_ulogic;
signal ex4_store_hit_early_gate :std_ulogic;
signal rel_ex4_store_hit :std_ulogic;
signal ex4_thrd_id_mask :std_ulogic_vector(0 to 3);
signal dat_dbg_arr_d :std_ulogic_vector(0 to 12);
signal dat_dbg_arr_q :std_ulogic_vector(0 to 12);
signal ex4_256st_dataFixUp :std_ulogic_vector(0 to 255);
signal alg_bit_le_sel :std_ulogic_vector(0 to 5);
signal ex4_ld_alg_sel :std_ulogic_vector(1 to 5);
signal ld_alg_le_sel_d :std_ulogic_vector(1 to 5);
signal ld_alg_le_sel_q :std_ulogic_vector(1 to 5);
signal ex4_ld_alg_le_sel_d :std_ulogic_vector(1 to 5);
signal ex4_ld_alg_le_sel_q :std_ulogic_vector(1 to 5);
signal ex6_axu_rel_gpr_data_sel :std_ulogic_vector(0 to 15);
signal ex6_axu_rel_gpr_data :std_ulogic_vector(0 to 127);
signal ex7_ld_par_err :std_ulogic_vector(0 to 1);
signal ex8_ld_par_err_d :std_ulogic;
signal ex8_ld_par_err_q :std_ulogic;
signal dcache_parity :std_ulogic_vector(0 to 0);
signal ex6_ld_par_err_int :std_ulogic;
signal spr_dvc1_dbg_d :std_ulogic_vector(64-(2**regmode) to 63);
signal spr_dvc1_dbg_q :std_ulogic_vector(64-(2**regmode) to 63);
signal spr_dvc2_dbg_d :std_ulogic_vector(64-(2**regmode) to 63);
signal spr_dvc2_dbg_q :std_ulogic_vector(64-(2**regmode) to 63);
signal ex7_xld_data_d :std_ulogic_vector(64-(2**regmode) to 63);
signal ex7_xld_data_q :std_ulogic_vector(64-(2**regmode) to 63);
signal ex4_stg_flush_lcl_b :std_ulogic_vector(0 to 3);
signal ex4_flush_t01_b :std_ulogic;
signal ex4_flush_t23_b :std_ulogic;
signal rel_ex4_upd_en :std_ulogic;
signal ex1_stg_act_d :std_ulogic;
signal ex1_stg_act_q :std_ulogic;
signal ex2_stg_act_d :std_ulogic;
signal ex2_stg_act_q :std_ulogic;
signal ex3_stg_act_d :std_ulogic;
signal ex3_stg_act_q :std_ulogic;
signal ex4_stg_act_d :std_ulogic;
signal ex4_stg_act_q :std_ulogic;
signal ex5_stg_act_d :std_ulogic;
signal ex5_stg_act_q :std_ulogic;
signal ex6_stg_act_d :std_ulogic;
signal ex6_stg_act_q :std_ulogic;
signal rel1_stg_act_d :std_ulogic;
signal rel1_stg_act_q :std_ulogic;
signal rel2_stg_act_d :std_ulogic;
signal rel2_stg_act_q :std_ulogic;
signal rel3_stg_act_d :std_ulogic;
signal rel3_stg_act_q :std_ulogic;
signal rel4_stg_act_d :std_ulogic;
signal rel4_stg_act_q :std_ulogic;
signal rel5_stg_act_d :std_ulogic;
signal rel5_stg_act_q :std_ulogic;
signal rel2_ex2_stg_act :std_ulogic;
signal rel2_ex2_stg_act_d :std_ulogic;
signal rel2_ex2_stg_act_q :std_ulogic;
signal rel3_ex3_stg_act :std_ulogic;
signal rel3_ex3_stg_act_d :std_ulogic;
signal rel3_ex3_stg_act_q :std_ulogic;
signal rel4_ex4_stg_act :std_ulogic;
signal rel4_ex4_stg_act_d :std_ulogic;
signal rel4_ex4_stg_act_q :std_ulogic;
signal rel_dvc_byte_mask :std_ulogic_vector((64-(2**regmode))/8 to 7);
signal trace_bus_enable_q :std_ulogic;
signal dat_debug_mux_ctrls_q :std_ulogic_vector(0 to 1);
signal rel_ex3_store_data0 :std_ulogic_vector(0 to 63);
signal rel_ex3_store_data1 :std_ulogic_vector(0 to 63);
signal rel_ex3_store_data2 :std_ulogic_vector(0 to 63);
signal rel_ex3_store_data3 :std_ulogic_vector(0 to 63);
signal dat_dbg_st_dat_d :std_ulogic_vector(0 to 63);
signal dat_dbg_st_dat_q :std_ulogic_vector(0 to 63);
signal dat_dbg_ld_dat :std_ulogic_vector(0 to 63);
signal abst_scan_in_q :std_ulogic_vector(0 to 1);
signal abst_scan_out_int :std_ulogic_vector(0 to 1);
signal abst_scan_out_q :std_ulogic_vector(0 to 1);
signal time_scan_in_q :std_ulogic;
signal time_scan_out_int :std_ulogic;
signal time_scan_out_q :std_ulogic;
signal repr_scan_in_q :std_ulogic;
signal repr_scan_out_int :std_ulogic;
signal repr_scan_out_q :std_ulogic;
signal func_scan_in_q :std_ulogic_vector(0 to 2);
signal func_scan_in_2_q :std_ulogic_vector(0 to 2);
signal func_scan_out_int :std_ulogic_vector(0 to 2);
signal func_scan_out_q :std_ulogic_vector(0 to 2);
signal func_scan_out_2_q :std_ulogic_vector(0 to 2);
signal tiup :std_ulogic;
signal tidn :std_ulogic;
signal func_nsl_thold_1 :std_ulogic;
signal func_sl_thold_1 :std_ulogic;
signal sg_1 :std_ulogic;
signal fce_1 :std_ulogic;
signal func_nsl_thold_0 :std_ulogic;
signal func_sl_thold_0 :std_ulogic;
signal sg_0 :std_ulogic;
signal fce_0 :std_ulogic;
signal func_sl_force :std_ulogic;
signal func_sl_thold_0_b :std_ulogic;
signal func_nsl_force :std_ulogic;
signal func_nsl_thold_0_b :std_ulogic;
signal siv0 :std_ulogic_vector(0 to scan_right0);
signal sov0 :std_ulogic_vector(0 to scan_right0);
signal siv1 :std_ulogic_vector(0 to scan_right1);
signal sov1 :std_ulogic_vector(0 to scan_right1);
signal abist_siv :std_ulogic_vector(0 to 21);
signal abist_sov :std_ulogic_vector(0 to 21);
signal abst_sl_thold_1 :std_ulogic;
signal time_sl_thold_1 :std_ulogic;
signal ary_nsl_thold_1 :std_ulogic;
signal repr_sl_thold_1 :std_ulogic;
signal bolt_sl_thold_1 :std_ulogic;
signal abst_sl_thold_0 :std_ulogic;
signal time_sl_thold_0 :std_ulogic;
signal ary_nsl_thold_0 :std_ulogic;
signal repr_sl_thold_0 :std_ulogic;
signal bolt_sl_thold_0 :std_ulogic;
signal abst_sl_thold_0_b :std_ulogic;
signal abst_sl_force :std_ulogic;
signal pc_xu_abist_g6t_bw_q :std_ulogic_vector(0 to 1);
signal pc_xu_abist_di_g6t_2r_q :std_ulogic_vector(0 to 3);
signal pc_xu_abist_wl512_comp_ena_q :std_ulogic;
signal pc_xu_abist_dcomp_g6t_2r_q :std_ulogic_vector(0 to 3);
signal pc_xu_abist_raddr_0_q :std_ulogic_vector(0 to 8);
signal pc_xu_abist_g6t_r_wb_q :std_ulogic;
signal slat_force :std_ulogic;
signal abst_slat_thold_b :std_ulogic;
signal abst_slat_d2clk :std_ulogic;
signal abst_slat_lclk :clk_logic;
signal time_slat_thold_b :std_ulogic;
signal time_slat_d2clk :std_ulogic;
signal time_slat_lclk :clk_logic;
signal repr_slat_thold_b :std_ulogic;
signal repr_slat_d2clk :std_ulogic;
signal repr_slat_lclk :clk_logic;
signal func_slat_thold_b :std_ulogic;
signal func_slat_d2clk :std_ulogic;
signal func_slat_lclk :clk_logic;
signal my_spare_latches_d :std_ulogic_vector(0 to 7);
signal my_spare_latches_q :std_ulogic_vector(0 to 7);
signal my_spare0_lclk :clk_logic;
signal my_spare0_d1clk :std_ulogic;
signal my_spare0_d2clk :std_ulogic;
signal ex6_frot_b, ex6_fdat, ex6_rot_sel_bus, ex6_axu_oth_b :std_ulogic_vector(0 to 255);
signal ex6_rot_d_b, ex6_rot_d, ex6_xld_rot_b, ex6_xld_oth_b :std_ulogic_vector(0 to 63);
signal ex6_xld_sgnx_b , ex6_xld_sgn_b, ex6_xld_sgn :std_ulogic_vector(0 to 5);
begin
tiup <= '1';
tidn <= '0';
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Act Signals going to all Latches
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ex1_stg_act_d <= xu_lsu_rf1_data_act or clkg_ctl_override_q;
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;
rel1_stg_act_d <= ldq_rel_data_val_early or clkg_ctl_override_q;
rel2_stg_act_d <= ldq_rel_ci or ldq_rel_data_val or clkg_ctl_override_q;
rel3_stg_act_d <= rel2_stg_act_q;
rel4_stg_act_d <= rel3_stg_act_q;
rel5_stg_act_d <= rel4_stg_act_q;
rel2_ex2_stg_act_d <= rel2_stg_act_d or ex2_stg_act_d;
rel3_ex3_stg_act_d <= rel3_stg_act_d or ex3_stg_act_d;
rel4_ex4_stg_act_d <= rel4_stg_act_d or ex4_stg_act_d;
rel2_ex2_stg_act <= rel2_ex2_stg_act_q;
rel3_ex3_stg_act <= rel3_ex3_stg_act_q;
rel4_ex4_stg_act <= rel4_ex4_stg_act_q;
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Inputs
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
rel_algebraic_d <= ldq_rel_algebraic;
rel_data_d <= ldq_rel_data;
rel_rot_sel_d <= ldq_rel_rot_sel;
rel_op_size_d <= ldq_rel_op_size;
rel_le_mode_d <= ldq_rel_le_mode;
rel_dvc1_en_d <= ldq_rel_dvc1_en;
rel_dvc2_en_d <= ldq_rel_dvc2_en;
rel_upd_gpr_d <= ldq_rel_beat_crit_qw;
rel_axu_val_d <= ldq_rel_axu_val;
rel_ci_d <= ldq_rel_ci;
rel_ci_dly_d <= rel_ci_q;
rel_thrd_id_d <= ldq_rel_thrd_id;
rel_data_val_stg_d <= ldq_rel_data_val;
rel_data_val_stg_dly_d <= rel_data_val_stg_q;
rel_algebraic <= rel_algebraic_q;
rel_data <= rel_data_q;
rel_rot_sel <= rel_rot_sel_q;
rel_op_size <= rel_op_size_q;
rel_le_mode <= rel_le_mode_q;
inj_dcache_parity_d <= pc_xu_inj_dcache_parity;
-- Staging out Data Cache Array Write
-- Cache-Inhibit or Cacheable Reload
rel_data_rot_sel <= rel_ci_q or rel_data_val_stg_q;
rel_data_val_wren <= rel_data_val_stg_q and not spr_xucr0_dcdis_q;
rel_data_val_d(0 to 7) <= (others=>rel_data_val_wren);
rel_data_val_d(8 to 15) <= (others=>(not rel_data_val_wren));
rel_data_val <= rel_data_val_q;
rel_addr_stg_d <= ldq_rel_addr;
rel_addr_d <= rel_addr_stg_q;
spr_xucr0_dcdis_d <= xu_lsu_spr_xucr0_dcdis;
clkg_ctl_override_d <= spr_xucr0_clkg_ctl_b0;
ex1_ldst_falign_d <= xu_lsu_rf1_axu_ldst_falign;
ex1_frc_align32 <= ex1_ldst_falign_q and ex1_optype32;
ex1_frc_align16 <= ex1_ldst_falign_q and ex1_optype16;
ex1_frc_align8 <= ex1_ldst_falign_q and ex1_optype8;
ex1_frc_align4 <= ex1_ldst_falign_q and ex1_optype4;
ex1_frc_align2 <= ex1_ldst_falign_q and ex1_optype2;
ex2_p_addr_d <= xu_lsu_ex1_eff_addr(uprCClassBit to 63);
ex3_fu_st_val_d <= fu_xu_ex2_store_data_val;
ex2_optype32_d <= ex1_optype32;
ex2_optype16_d <= ex1_optype16;
ex2_optype8_d <= ex1_optype8;
ex2_optype4_d <= ex1_optype4;
ex2_optype2_d <= ex1_optype2;
ex2_optype1_d <= ex1_optype1;
ex2_store_instr_d <= ex1_store_instr;
ex3_store_instr_d <= ex2_store_instr_q and ex2_stg_act_q;
ex2_axu_op_val_d <= ex1_axu_op_val;
ex3_axu_op_val_d <= ex2_axu_op_val_q;
ex4_axu_op_val_d <= ex3_axu_op_val_q;
ex2_saxu_instr_d <= ex1_saxu_instr;
ex2_sdp_instr_d <= ex1_sdp_instr;
ex2_stgpr_instr_d <= ex1_stgpr_instr;
ex3_saxu_instr_d <= ex2_saxu_instr_q;
ex4_saxu_instr_d <= ex3_saxu_instr_q;
ex4_algebraic_d <= ex3_algebraic;
ex2_ovrd_rot_sel_d <= xu_lsu_ex1_rotsel_ovrd;
ex3_p_addr_d <= ex2_p_addr_q;
ex4_p_addr_d <= ex3_p_addr_q;
ex4_thrd_id_d <= ex3_thrd_id;
ex5_thrd_id_d <= ex4_thrd_id_q;
ex4_load_hit <= ex4_load_op_hit and not ex4_stg_flush;
ex5_load_hit_d <= ex4_load_hit;
ex6_load_hit_d <= ex5_load_hit_q;
ex7_load_hit_d <= ex6_load_hit_q;
spr_dvc1_dbg_d <= spr_dvc1_dbg;
spr_dvc2_dbg_d <= spr_dvc2_dbg;
ex1_op_size <= ex1_optype8 & ex1_optype4 & ex1_optype2 & ex1_optype1;
with ex1_op_size(2 to 5) select
ex1_st_byte_mask <= x"01" when "0001",
x"03" when "0010",
x"0F" when "0100",
x"FF" when others;
ex2_xu_cmp_val_d <= gate(ex1_st_byte_mask((64-(2**regmode))/8 to 7), (not ex1_axu_op_val and ex1_store_instr));
-- Forcing Alignment
frc_p_addr_d(58) <= xu_lsu_ex1_eff_addr(58);
frc_p_addr_d(59) <= xu_lsu_ex1_eff_addr(59) and not ex1_frc_align32;
frc_p_addr_d(60) <= xu_lsu_ex1_eff_addr(60) and not (ex1_frc_align32 or ex1_frc_align16);
frc_p_addr_d(61) <= xu_lsu_ex1_eff_addr(61) and not (ex1_frc_align32 or ex1_frc_align16 or ex1_frc_align8);
frc_p_addr_d(62) <= xu_lsu_ex1_eff_addr(62) and not (ex1_frc_align32 or ex1_frc_align16 or ex1_frc_align8 or ex1_frc_align4);
frc_p_addr_d(63) <= xu_lsu_ex1_eff_addr(63) and not (ex1_frc_align32 or ex1_frc_align16 or ex1_frc_align8 or ex1_frc_align4 or ex1_frc_align2);
axu_rel_val_stg1_d <= rel_axu_val_q;
axu_rel_val_stg2_d <= axu_rel_val_stg1_q and rel_upd_gpr_q;
axu_rel_val_stg3_d <= axu_rel_val_stg2_q;
axu_rel_upd_d <= (others=>axu_rel_val_stg3_q);
-- Table of op_size, Should be 1-hot enabled
-- op_size(0) => size32
-- op_size(1) => size16
-- op_size(2) => size8
-- op_size(3) => size4
-- op_size(4) => size2
-- op_size(5) => size1
op_size <= ex2_optype32_q & ex2_optype16_q & ex2_optype8_q & ex2_optype4_q & ex2_optype2_q & ex2_optype1_q;
rot_addr <= frc_p_addr_q(58 to 63);
ex3_le_mode <= ex3_data_swap and not (ex3_ovrd_rot_q or rel_data_val(0));
ex3_be_mode <= ex3_ovrd_rot_q or rel_data_val(0) or (not ex3_data_swap);
ex4_le_mode_sel_d(0 to 15) <= (others=>ex3_le_mode);
ex4_be_mode_sel_d(0 to 15) <= (others=>ex3_be_mode);
ex4_le_mode_d <= ex3_le_mode;
-- Execution/Reload Pipe Rotator Control Calculations
rot_size <= std_ulogic_vector(unsigned(rot_addr) + unsigned(op_size));
rot_sel_non_le <= std_ulogic_vector(unsigned(rot_max_size) - unsigned(rot_size));
-- STORE PATH LITTLE ENDIAN ROTATOR SELECT CALCULATION
-- st_rot_size = rot_addr + op_size
-- st_rot_sel = (rot_max_size or le_op_size) - rot_size
-- Little Endian Support Store Data Rotate Select
rot_addr_le <= std_ulogic_vector(unsigned(rot_addr) + unsigned(byte16_size));
rot_size_le <= std_ulogic_vector(unsigned(rot_max_size) - unsigned(rot_addr_le));
with op_size(0) select
le_st_rot_sel <= (others=>'0') when '1',
rot_size_le(2 to 5) when others;
be_st_rot_sel <= rot_sel_non_le(1 to 5);
-- Select between Rotate Select Override and D$ rotate select
with ex2_ovrd_rot select
st_ovrd_rot_sel <= ex2_ovrd_rot_sel_q when '1',
be_st_rot_sel when others;
ex3_st_rot_sel_d <= st_ovrd_rot_sel;
-- LOAD PATH LITTLE ENDIAN ROTATOR SELECT CALCULATION
-- ld_rot_size = rot_addr + op_size
-- ld_rot_sel_le = rot_addr
-- ld_rot_sel = rot_max_size - ld_rot_size
-- ld_rot_sel = ld_rot_sel_le => le_mode = 1
-- = ld_rot_sel => le_mode = 0
rot_addr_d <= rot_addr(1 to 5);
ex4_rot_addr_d <= rot_addr_q;
rot_sel_non_le_d <= rot_sel_non_le(1 to 5);
ex4_rot_sel_non_le_d <= rot_sel_non_le_q;
-- Little Endian Support Load Data Rotate Select
with ex4_le_mode_q select
ex4_ld_rot_sel <= ex4_rot_addr_q(1 to 5) when '1',
ex4_rot_sel_non_le_q(1 to 5) when others;
-- Algebraic Mux select for little-endian
alg_bit_le_sel <= std_ulogic_vector(unsigned(rot_size) - "000001");
ld_alg_le_sel_d(1 to 5) <= alg_bit_le_sel(1 to 5);
ex4_ld_alg_le_sel_d <= ld_alg_le_sel_q;
with ex4_le_mode_q select
ex4_ld_alg_sel <= ex4_rot_addr_q when '0',
ex4_ld_alg_le_sel_q when others;
fu_ex2_store_data_val <= (ex2_axu_op_val_q and ex2_store_instr_q) or ex2_saxu_instr_q;
fu_ex2_store_data <= fu_xu_ex2_store_data;
ex2_st_data_d <= xu_lsu_ex1_store_data;
ex2_st_data_fixup(0 to 127-(2**regmode)) <= (others=>'0');
ex2_st_data_fixup(128-(2**regmode) to 127) <= ex2_st_data_q;
with rel_data_rot_sel select
rel_xu_data <= rel_data when '1',
ex2_st_data_fixup & ex2_st_data_fixup when others;
ex2_fu_data_val <= fu_ex2_store_data_val and not rel_data_rot_sel;
with ex2_fu_data_val select
rel_ex2_data <= fu_ex2_store_data when '1',
rel_xu_data when others;
-- Splitting Out Bits of Store Data
-- Grouping Common Bits together, i.e all bit0's of every byte are grouped and so on
-- should now have all upper nibbles of bytes in the first half of data (0:127)
-- and have the lower nibbles of bytes in the second half of data (128:255)
stDataFrmtBit : for bit in 0 to 7 generate begin
stDataFrmtByte : for byte in 0 to 31 generate begin
rel_ex3_data_d((bit*32)+byte) <= rel_ex2_data((byte*8)+bit);
end generate stDataFrmtByte;
end generate stDataFrmtBit;
-- Timing Fixes to Data Cache Array Write Enable
ex4_store_hit_early_gate <= ex4_store_hit and not ex7_ld_par_err(0);
rel_ex4_store_hit <= ex4_store_hit_early_gate or rel_upd_dcarr_val;
ex4_thrd_id_mask <= gate(ex4_thrd_id_q, not rel_upd_dcarr_val);
ex4Flushb0: ex4_stg_flush_lcl_b(0) <= not (xu_lsu_ex4_flush_local(0) and ex4_thrd_id_mask(0));
ex4Flushb1: ex4_stg_flush_lcl_b(1) <= not (xu_lsu_ex4_flush_local(1) and ex4_thrd_id_mask(1));
ex4Flushb2: ex4_stg_flush_lcl_b(2) <= not (xu_lsu_ex4_flush_local(2) and ex4_thrd_id_mask(2));
ex4Flushb3: ex4_stg_flush_lcl_b(3) <= not (xu_lsu_ex4_flush_local(3) and ex4_thrd_id_mask(3));
ex4Flush01b: ex4_flush_t01_b <= not (ex4_stg_flush_lcl_b(0) and ex4_stg_flush_lcl_b(1));
ex4Flush23b: ex4_flush_t23_b <= not (ex4_stg_flush_lcl_b(2) and ex4_stg_flush_lcl_b(3));
relex4UpdEn: rel_ex4_upd_en <= not (ex4_flush_t01_b or ex4_flush_t23_b);
-- EX4 Instruction Flush
ex4_stg_flush <= (xu_lsu_ex4_flush(0) and ex4_thrd_id_q(0)) or
(xu_lsu_ex4_flush(1) and ex4_thrd_id_q(1)) or
(xu_lsu_ex4_flush(2) and ex4_thrd_id_q(2)) or
(xu_lsu_ex4_flush(3) and ex4_thrd_id_q(3));
-- EX5 Instruction Flush
ex5_stg_flush <= (xu_lsu_ex5_flush(0) and ex5_thrd_id_q(0)) or
(xu_lsu_ex5_flush(1) and ex5_thrd_id_q(1)) or
(xu_lsu_ex5_flush(2) and ex5_thrd_id_q(2)) or
(xu_lsu_ex5_flush(3) and ex5_thrd_id_q(3));
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Move To AXU/XU/BOX Instructions
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Move Float To GPR and Move GPR to Float instruction Data
ex2_ovrd_rot <= ex2_saxu_instr_q or ex2_stgpr_instr_q;
ex3_ovrd_rot_d <= ex2_ovrd_rot;
ex3_stgpr_instr_d <= ex2_stgpr_instr_q;
ex4_stgpr_instr_d <= ex3_stgpr_instr_q;
-- Grabbing bits to form bytes
stDataFixUp : for byte in 0 to 31 generate
ex4_256st_dataFixUp(byte*8 to (byte*8)+7) <= st_256data(byte) & st_256data(byte+32) & st_256data(byte+64) & st_256data(byte+96) &
st_256data(byte+128) & st_256data(byte+160) & st_256data(byte+192) & st_256data(byte+224);
end generate stDataFixUp;
ex4_stgpr_data <= ex4_256st_dataFixUp(256-(2**regmode) to 255);
ex5_stgpr_data_d <= ex4_stgpr_data;
ex3_sdp_instr_d <= ex2_sdp_instr_q;
ex4_sdp_instr_d <= ex3_sdp_instr_q;
ex5_sdp_instr_d <= ex4_sdp_instr_q;
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Execution Pipe Data Parity Generation
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
pargen : for t in 0 to 31 generate begin
rel_ex2_par_gen(t) <= xor_reduce(rel_ex2_data(t*8 to (t*8)+7));
end generate pargen;
rel_ex3_par_gen_d <= rel_ex2_par_gen;
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Reload Algebraic Mask Generation
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
non_le_byte_bit0 <= rel_data(0) & rel_data(8) & rel_data(16) & rel_data(24) & rel_data(32) & rel_data(40) & rel_data(48) & rel_data(56) &
rel_data(64) & rel_data(72) & rel_data(80) & rel_data(88) & rel_data(96) & rel_data(104) & rel_data(112) & rel_data(120) &
rel_data(128) & rel_data(136) & rel_data(144) & rel_data(152) & rel_data(160) & rel_data(168) & rel_data(176) & rel_data(184) &
rel_data(192) & rel_data(200) & rel_data(208) & rel_data(216) & rel_data(224) & rel_data(232) & rel_data(240) & rel_data(248);
le_byte_bit0 <= rel_data(248) & rel_data(240) & rel_data(232) & rel_data(224) & rel_data(216) & rel_data(208) & rel_data(200) & rel_data(192) &
rel_data(184) & rel_data(176) & rel_data(168) & rel_data(160) & rel_data(152) & rel_data(144) & rel_data(136) & rel_data(128) &
rel_data(120) & rel_data(112) & rel_data(104) & rel_data(96) & rel_data(88) & rel_data(80) & rel_data(72) & rel_data(64) &
rel_data(56) & rel_data(48) & rel_data(40) & rel_data(32) & rel_data(24) & rel_data(16) & rel_data(8) & rel_data(0);
-- Select between little endian data or big-endian data
with rel_le_mode select
alg_byte <= le_byte_bit0 when '1',
non_le_byte_bit0 when others;
-- Calculate Mux control
alg_bit_sel <= std_ulogic_vector(unsigned(rel_rot_sel) - unsigned(rel_op_size(1 to 5)));
with alg_bit_sel select
algebraic_bit <= alg_byte(0) when "00000",
alg_byte(1) when "00001",
alg_byte(2) when "00010",
alg_byte(3) when "00011",
alg_byte(4) when "00100",
alg_byte(5) when "00101",
alg_byte(6) when "00110",
alg_byte(7) when "00111",
alg_byte(8) when "01000",
alg_byte(9) when "01001",
alg_byte(10) when "01010",
alg_byte(11) when "01011",
alg_byte(12) when "01100",
alg_byte(13) when "01101",
alg_byte(14) when "01110",
alg_byte(15) when "01111",
alg_byte(16) when "10000",
alg_byte(17) when "10001",
alg_byte(18) when "10010",
alg_byte(19) when "10011",
alg_byte(20) when "10100",
alg_byte(21) when "10101",
alg_byte(22) when "10110",
alg_byte(23) when "10111",
alg_byte(24) when "11000",
alg_byte(25) when "11001",
alg_byte(26) when "11010",
alg_byte(27) when "11011",
alg_byte(28) when "11100",
alg_byte(29) when "11101",
alg_byte(30) when "11110",
alg_byte(31) when others;
rel_alg_bit_d <= algebraic_bit;
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Store Data Rotator
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
l1dcst: entity work.xuq_lsu_data_st(xuq_lsu_data_st)
GENERIC MAP(expand_type => expand_type,
regmode => regmode,
l_endian_m => l_endian_m)
PORT MAP(
-- Acts to latches
ex2_stg_act => ex2_stg_act_q,
ex3_stg_act => ex3_stg_act_q,
rel2_stg_act => rel2_stg_act_q,
rel3_stg_act => rel3_stg_act_q,
rel2_ex2_stg_act => rel2_ex2_stg_act,
rel3_ex3_stg_act => rel3_ex3_stg_act,
-- Reload Pipe
rel_data_rot_sel => rel_data_rot_sel,
ldq_rel_rot_sel => rel_rot_sel,
ldq_rel_op_size => rel_op_size,
ldq_rel_le_mode => rel_le_mode,
ldq_rel_algebraic => rel_algebraic,
ldq_rel_data_val => rel_data_val,
rel_alg_bit => rel_alg_bit_q,
-- Execution Pipe Store Data Rotator/BE_Gen Controls
ex2_opsize => op_size,
ex2_rot_sel => st_ovrd_rot_sel,
ex2_rot_sel_le => le_st_rot_sel,
ex2_rot_addr => rot_addr(1 to 5),
ex4_le_mode_sel => ex4_le_mode_sel_q,
ex4_be_mode_sel => ex4_be_mode_sel_q,
-- Reload/EX3 Data that needs rotating
rel_ex3_data => rel_ex3_data_q,
rel_ex3_par_gen => rel_ex3_par_gen_q,
-- Rotated Data
rel_256ld_data => rel_256ld_data,
rel_64ld_data => rel_64ld_data,
rel_xu_ld_par => rel_xu_ld_par,
ex4_256st_data => st_256data,
ex3_byte_en => ex3_byte_en,
ex4_parity_gen => ex4_parity_gen,
rel_axu_le_mode => rel_axu_le_mode,
rel_dvc_byte_mask => rel_dvc_byte_mask,
-- Pervasive
vdd => vdd,
gnd => gnd,
nclk => nclk,
sg_0 => sg_0,
func_sl_thold_0_b => func_sl_thold_0_b,
func_sl_force => func_sl_force,
func_nsl_thold_0_b => func_nsl_thold_0_b,
func_nsl_force => func_nsl_force,
d_mode_dc => d_mode_dc,
delay_lclkr_dc => delay_lclkr_dc(5),
mpw1_dc_b => mpw1_dc_b(5),
mpw2_dc_b => mpw2_dc_b,
scan_in => func_scan_in_2_q(2),
scan_out => func_scan_out_int(2)
);
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- L1 D-Cache Array
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
l1dcarr : entity work.xuq_lsu_dc_arr(xuq_lsu_dc_arr)
generic map(expand_type => expand_type, -- 0 = ibm (Umbra), 1 = non-ibm, 2 = ibm (MPG)
dc_size => dc_size) -- 2^14 = 16384 Bytes L1 D$
port map(
-- Acts to latches
ex3_stg_act => ex3_stg_act_q,
ex4_stg_act => ex4_stg_act_q,
rel3_stg_act => rel3_stg_act_q,
rel4_stg_act => rel4_stg_act_q,
-- XUOP Signals
ex3_p_addr => ex3_p_addr_q(uprCClassBit to 58),
ex3_byte_en => ex3_byte_en,
ex4_256st_data => st_256data,
ex4_parity_gen => ex4_parity_gen,
ex4_load_hit => ex4_load_hit,
ex5_stg_flush => ex5_stg_flush,
-- Parity Error Inject
inj_dcache_parity => inj_dcache_parity_q,
-- Reload Signals
ldq_rel_data_val => rel_data_val(0),
ldq_rel_addr => rel_addr_q,
dcarr_rd_data => dcarr_rd_data,
dcarr_bw => dcarr_bw,
dcarr_addr => dcarr_addr,
dcarr_wr_data => dcarr_wr_data,
dcarr_bw_dly => dcarr_bw_dly,
-- Execution Pipe
ex5_ld_data => ex5_ld_data,
ex5_ld_data_par => ex5_ld_data_par,
ex6_par_chk_val => ex6_par_chk_val,
--pervasive
vdd => vdd,
gnd => gnd,
nclk => nclk,
sg_0 => sg_0,
func_sl_thold_0_b => func_sl_thold_0_b,
func_sl_force => func_sl_force,
func_nsl_thold_0_b => func_nsl_thold_0_b,
func_nsl_force => func_nsl_force,
d_mode_dc => d_mode_dc,
delay_lclkr_dc => delay_lclkr_dc(5),
mpw1_dc_b => mpw1_dc_b(5),
mpw2_dc_b => mpw2_dc_b,
scan_in => siv1(l1dcar_offset),
scan_out => sov1(l1dcar_offset)
);
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Array
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
dcArrWenb: dcarr_wren_b <= not (rel_ex4_store_hit and rel_ex4_upd_en);
dcArrWen: dcarr_wren <= not (dcarr_wren_b);
dcarr_wren_d <= dcarr_wren;
dat_dbg_arr_d <= ex4_store_hit & (not rel_ex4_upd_en) & rel_upd_dcarr_val & rel4_ex4_stg_act &
dcarr_up_way_addr & dcarr_addr;
dc16K: if (2**dc_size) = 16384 generate
tridcarr: entity tri.tri_512x288_9(tri_512x288_9)
GENERIC Map(addressable_ports => 512, -- number of addressable register in this array
addressbus_width => 6, -- width of the bus to address all ports (2^portadrbus_width >= addressable_ports)
port_bitwidth => 288, -- bitwidth of ports (per way)
bit_write_type => 9, -- gives the number of bits that shares one write-enable
ways => 1, -- number of ways
expand_type => expand_type) -- 0 = ibm (Umbra), 1 = non-ibm, 2 = ibm (MPG)
PORT Map(
-- POWER PINS
vcs => vcs,
vdd => vdd,
gnd => gnd,
-- CLOCK AND CLOCKCONTROL PORTS
nclk => nclk,
act => rel4_ex4_stg_act,
sg_0 => sg_0,
sg_1 => sg_1,
ary_nsl_thold_0 => ary_nsl_thold_0,
abst_sl_thold_0 => abst_sl_thold_0,
time_sl_thold_0 => time_sl_thold_0,
repr_sl_thold_0 => repr_sl_thold_0,
clkoff_dc_b => g6t_clkoff_dc_b,
ccflush_dc => pc_xu_ccflush_dc,
scan_dis_dc_b => an_ac_scan_dis_dc_b,
scan_diag_dc => an_ac_scan_diag_dc,
d_mode_dc => g6t_d_mode_dc,
act_dis_dc => tidn,
lcb_delay_lclkr_np_dc => g6t_delay_lclkr_dc(0),
lcb_mpw1_pp_dc_b => g6t_mpw1_dc_b(0),
lcb_mpw1_2_pp_dc_b => g6t_mpw1_dc_b(4),
ctrl_lcb_delay_lclkr_np_dc => g6t_delay_lclkr_dc(1),
ctrl_lcb_mpw1_np_dc_b => g6t_mpw1_dc_b(1),
dibw_lcb_delay_lclkr_np_dc => g6t_delay_lclkr_dc(2),
dibw_lcb_mpw1_np_dc_b => g6t_mpw1_dc_b(2),
aodo_lcb_delay_lclkr_dc => g6t_delay_lclkr_dc(3),
aodo_lcb_mpw1_dc_b => g6t_mpw1_dc_b(3),
aodo_lcb_mpw2_dc_b => g6t_mpw2_dc_b,
-- ABIST
bitw_abist => pc_xu_abist_g6t_bw_q,
tc_lbist_ary_wrt_thru_dc => an_ac_lbist_ary_wrt_thru_dc,
abist_en_1 => pc_xu_abist_ena_dc,
din_abist => pc_xu_abist_di_g6t_2r_q,
abist_cmp_en => pc_xu_abist_wl512_comp_ena_q,
abist_raw_b_dc => pc_xu_abist_raw_dc_b,
data_cmp_abist => pc_xu_abist_dcomp_g6t_2r_q,
addr_abist => pc_xu_abist_raddr_0_q,
r_wb_abist => pc_xu_abist_g6t_r_wb_q,
-- SCAN PORTS
abst_scan_in(0) => abist_siv(0),
abst_scan_in(1) => abst_scan_in_q(1),
time_scan_in => time_scan_in_q,
repr_scan_in => repr_scan_in_q,
abst_scan_out(0) => abist_sov(0),
abst_scan_out(1) => abst_scan_out_int(1),
time_scan_out => time_scan_out_int,
repr_scan_out => repr_scan_out_int,
-- BOLT-ON
lcb_bolt_sl_thold_0 => bolt_sl_thold_0,
pc_bo_enable_2 => bo_enable_2,
pc_bo_reset => pc_xu_bo_reset,
pc_bo_unload => pc_xu_bo_unload,
pc_bo_repair => pc_xu_bo_repair,
pc_bo_shdata => pc_xu_bo_shdata,
pc_bo_select => pc_xu_bo_select,
bo_pc_failout => xu_pc_bo_fail,
bo_pc_diagloop => xu_pc_bo_diagout,
tri_lcb_mpw1_dc_b => mpw1_dc_b(5),
tri_lcb_mpw2_dc_b => mpw2_dc_b,
tri_lcb_delay_lclkr_dc => delay_lclkr_dc(5),
tri_lcb_clkoff_dc_b => clkoff_dc_b,
tri_lcb_act_dis_dc => tidn,
-- FUNCITONAL PORTS
write_enable => dcarr_wren,
bw => dcarr_bw,
arr_up_addr => dcarr_up_way_addr,
addr => dcarr_addr,
data_in => dcarr_wr_data,
data_out => dcarr_rd_data
);
end generate dc16K;
dc32K: if (2**dc_size) = 32768 generate
tridcarr: entity tri.tri_512x288_9(tri_512x288_9)
GENERIC Map(addressable_ports => 1024, -- number of addressable register in this array
addressbus_width => 7, -- width of the bus to address all ports (2^portadrbus_width >= addressable_ports)
port_bitwidth => 288, -- bitwidth of ports (per way)
bit_write_type => 9, -- gives the number of bits that shares one write-enable
ways => 1, -- number of ways
expand_type => expand_type) -- 0 = ibm (Umbra), 1 = non-ibm, 2 = ibm (MPG)
PORT Map(
-- POWER PINS
vcs => vcs,
vdd => vdd,
gnd => gnd,
-- CLOCK AND CLOCKCONTROL PORTS
nclk => nclk,
act => rel4_ex4_stg_act,
sg_0 => sg_0,
sg_1 => sg_1,
ary_nsl_thold_0 => ary_nsl_thold_0,
abst_sl_thold_0 => abst_sl_thold_0,
time_sl_thold_0 => time_sl_thold_0,
repr_sl_thold_0 => repr_sl_thold_0,
clkoff_dc_b => g6t_clkoff_dc_b,
ccflush_dc => pc_xu_ccflush_dc,
scan_dis_dc_b => an_ac_scan_dis_dc_b,
scan_diag_dc => an_ac_scan_diag_dc,
d_mode_dc => g6t_d_mode_dc,
act_dis_dc => tidn,
lcb_delay_lclkr_np_dc => g6t_delay_lclkr_dc(0),
lcb_mpw1_pp_dc_b => g6t_mpw1_dc_b(0),
lcb_mpw1_2_pp_dc_b => g6t_mpw1_dc_b(4),
ctrl_lcb_delay_lclkr_np_dc => g6t_delay_lclkr_dc(1),
ctrl_lcb_mpw1_np_dc_b => g6t_mpw1_dc_b(1),
dibw_lcb_delay_lclkr_np_dc => g6t_delay_lclkr_dc(2),
dibw_lcb_mpw1_np_dc_b => g6t_mpw1_dc_b(2),
aodo_lcb_delay_lclkr_dc => g6t_delay_lclkr_dc(3),
aodo_lcb_mpw1_dc_b => g6t_mpw1_dc_b(3),
aodo_lcb_mpw2_dc_b => g6t_mpw2_dc_b,
-- ABIST
bitw_abist => pc_xu_abist_g6t_bw_q,
tc_lbist_ary_wrt_thru_dc => an_ac_lbist_ary_wrt_thru_dc,
abist_en_1 => pc_xu_abist_ena_dc,
din_abist => pc_xu_abist_di_g6t_2r_q,
abist_cmp_en => pc_xu_abist_wl512_comp_ena_q,
abist_raw_b_dc => pc_xu_abist_raw_dc_b,
data_cmp_abist => pc_xu_abist_dcomp_g6t_2r_q,
addr_abist => pc_xu_abist_raddr_0_q,
r_wb_abist => pc_xu_abist_g6t_r_wb_q,
-- SCAN PORTS
abst_scan_in(0) => abist_siv(0),
abst_scan_in(1) => abst_scan_in_q(1),
time_scan_in => time_scan_in_q,
repr_scan_in => repr_scan_in_q,
abst_scan_out(0) => abist_sov(0),
abst_scan_out(1) => abst_scan_out_int(1),
time_scan_out => time_scan_out_int,
repr_scan_out => repr_scan_out_int,
-- BOLT-ON
lcb_bolt_sl_thold_0 => bolt_sl_thold_0,
pc_bo_enable_2 => bo_enable_2,
pc_bo_reset => pc_xu_bo_reset,
pc_bo_unload => pc_xu_bo_unload,
pc_bo_repair => pc_xu_bo_repair,
pc_bo_shdata => pc_xu_bo_shdata,
pc_bo_select => pc_xu_bo_select,
bo_pc_failout => xu_pc_bo_fail,
bo_pc_diagloop => xu_pc_bo_diagout,
tri_lcb_mpw1_dc_b => mpw1_dc_b(5),
tri_lcb_mpw2_dc_b => mpw2_dc_b,
tri_lcb_delay_lclkr_dc => delay_lclkr_dc(5),
tri_lcb_clkoff_dc_b => clkoff_dc_b,
tri_lcb_act_dis_dc => tidn,
-- FUNCITONAL PORTS
write_enable => dcarr_wren,
bw => dcarr_bw,
arr_up_addr => dcarr_up_way_addr,
addr => dcarr_addr,
data_in => dcarr_wr_data,
data_out => dcarr_rd_data
);
end generate dc32K;
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Load Rotator
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ex3_opsize_d <= op_size;
rel_axu_le_val_d <= rel_axu_le_mode and rel_upd_gpr_q;
rel_axu_le_val_stg1_d <= rel_axu_le_val_q;
ex5_rel_le_mode_d <= (ex4_le_mode_q and not rel_axu_le_val_stg1_q) or rel_axu_le_val_stg1_q;
l1dcld: entity work.xuq_lsu_data_ld(xuq_lsu_data_ld)
GENERIC MAP(expand_type => expand_type, -- 0 = ibm, 1 = xilinx
regmode => regmode,
l_endian_m => l_endian_m) -- 1 = little endian mode enabled, 0 = little endian mode disabled
PORT MAP(
-- Acts to latches
ex3_stg_act => ex3_stg_act_q,
ex4_stg_act => ex4_stg_act_q,
ex5_stg_act => ex5_stg_act_q,
-- Execution Pipe Load Data Rotator Controls
ex3_opsize => ex3_opsize_q,
ex3_algebraic => ex3_algebraic,
ex4_ld_rot_sel => ex4_ld_rot_sel,
ex4_ld_alg_sel => ex4_ld_alg_sel,
ex4_le_mode => ex4_le_mode_q,
ex5_ld_data => ex5_ld_data,
ex5_ld_data_par => ex5_ld_data_par,
ex6_par_chk_val => ex6_par_chk_val,
-- Debug Bus
trace_bus_enable => trace_bus_enable_q,
dat_debug_mux_ctrls => dat_debug_mux_ctrls_q,
dat_dbg_ld_dat => dat_dbg_ld_dat,
-- Rotated Data
ld_swzl_data (0 to 255) => ld_swzl_data(0 to 255) ,
ex6_ld_alg_bit(0 to 5) => ex6_ld_alg_bit(0 to 5) ,
ex6_ld_dvc_byte_mask => ex6_ld_dvc_byte_mask,
ex6_ld_par_err => ex6_ld_par_err_int,
ex7_ld_par_err => ex7_ld_par_err,
-- Pervasive
vdd => vdd,
gnd => gnd,
nclk => nclk,
sg_0 => sg_0,
func_sl_thold_0_b => func_sl_thold_0_b,
func_sl_force => func_sl_force,
func_nsl_thold_0_b => func_nsl_thold_0_b,
func_nsl_force => func_nsl_force,
d_mode_dc => d_mode_dc,
delay_lclkr_dc => delay_lclkr_dc(5),
mpw1_dc_b => mpw1_dc_b(5),
mpw2_dc_b => mpw2_dc_b,
scan_in => siv1(l1dcld_offset),
scan_out => sov1(l1dcld_offset)
);
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Debug Bus
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
stDbgData : for byte in 0 to 7 generate begin
rel_ex3_store_data0(byte*8 to (byte*8)+7) <= rel_ex3_data_q(byte+0) & rel_ex3_data_q(byte+32) & rel_ex3_data_q(byte+64) & rel_ex3_data_q(byte+96) &
rel_ex3_data_q(byte+128) & rel_ex3_data_q(byte+160) & rel_ex3_data_q(byte+192) & rel_ex3_data_q(byte+224);
rel_ex3_store_data1(byte*8 to (byte*8)+7) <= rel_ex3_data_q(8+byte+0) & rel_ex3_data_q(8+byte+32) & rel_ex3_data_q(8+byte+64) & rel_ex3_data_q(8+byte+96) &
rel_ex3_data_q(8+byte+128) & rel_ex3_data_q(8+byte+160) & rel_ex3_data_q(8+byte+192) & rel_ex3_data_q(8+byte+224);
rel_ex3_store_data2(byte*8 to (byte*8)+7) <= rel_ex3_data_q(16+byte+0) & rel_ex3_data_q(16+byte+32) & rel_ex3_data_q(16+byte+64) & rel_ex3_data_q(16+byte+96) &
rel_ex3_data_q(16+byte+128) & rel_ex3_data_q(16+byte+160) & rel_ex3_data_q(16+byte+192) & rel_ex3_data_q(16+byte+224);
rel_ex3_store_data3(byte*8 to (byte*8)+7) <= rel_ex3_data_q(24+byte+0) & rel_ex3_data_q(24+byte+32) & rel_ex3_data_q(24+byte+64) & rel_ex3_data_q(24+byte+96) &
rel_ex3_data_q(24+byte+128) & rel_ex3_data_q(24+byte+160) & rel_ex3_data_q(24+byte+192) & rel_ex3_data_q(24+byte+224);
end generate stDbgData;
with dat_debug_mux_ctrls_q select
dat_dbg_st_dat_d <= rel_ex3_store_data0 when "00",
rel_ex3_store_data1 when "01",
rel_ex3_store_data2 when "10",
rel_ex3_store_data3 when others;
-- Debug Bus0
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- ex4_saxu_instr_q 1
-- ex4_sdp_instr_q 1
-- ex4_stgpr_instr_q 1
-- ex4_axu_op_val_q 1
-- ex4_algebraic_q 1
-- ex4_le_mode_q 1
-- ex4_ld_rot_sel 5
-- ex4_p_addr_q 11
-- ex7_load_hit_q 1
-- ex7_ld_par_err 1
-- dat_dbg_ld_dat(0:19) 20
-- dat_dbg_ld_dat(20:41) 22
-- dat_dbg_ld_dat(42:63) 22
lsu_xu_data_debug0(0 to 21) <= ex4_saxu_instr_q & ex4_sdp_instr_q & ex4_stgpr_instr_q & ex4_axu_op_val_q &
ex4_algebraic_q & ex4_le_mode_q & ex4_ld_rot_sel & ex4_p_addr_q;
lsu_xu_data_debug0(22 to 43) <= ex7_load_hit_q & ex7_ld_par_err(1) & dat_dbg_ld_dat(0 to 19);
lsu_xu_data_debug0(44 to 65) <= dat_dbg_ld_dat(20 to 41);
lsu_xu_data_debug0(66 to 87) <= dat_dbg_ld_dat(42 to 63);
-- Debug Bus1
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- dcarr_wren_q 1
-- rel_ci_dly_q 1
-- ex4_saxu_instr_q 1
-- ex4_stgpr_instr_q 1
-- ex3_fu_st_val_q 1
-- ex4_le_mode_q 1
-- ex3_st_rot_sel_q 5
-- ex4_p_addr_q 11
-- ex7_load_hit_q 1
-- ex7_ld_par_err 1
-- dat_dbg_st_dat(0:19) 20
-- dat_dbg_st_dat(20:41) 22
-- dat_dbg_st_dat(42:63) 22
lsu_xu_data_debug1(0 to 21) <= dcarr_wren_q & rel_ci_dly_q & ex4_saxu_instr_q & ex4_stgpr_instr_q &
ex3_fu_st_val_q & ex4_le_mode_q & ex3_st_rot_sel_q & ex4_p_addr_q;
lsu_xu_data_debug1(22 to 43) <= ex3_store_instr_q & rel_data_val_stg_dly_q & dat_dbg_st_dat_q(0 to 19);
lsu_xu_data_debug1(44 to 65) <= dat_dbg_st_dat_q(20 to 41);
lsu_xu_data_debug1(66 to 87) <= dat_dbg_st_dat_q(42 to 63);
-- Debug Bus2
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- ex4_store_hit 1
-- ex4_blk_store 1
-- rel_upd_dcarr_val 1
-- dcarr_up_way_addr 3
-- dcarr_addr 6
-- dcarr_bw_dly(0:9) 10
-- dcarr_bw_dly(10:31) 22
-- rel4_ex4_stg_act 1
-- dat_dbg_st_dat(21:41) 21
-- dat_dbg_st_dat(42:63) 22
lsu_xu_data_debug2(0 to 21) <= dat_dbg_arr_q(0 to 2) & dat_dbg_arr_q(4 to 12) & dcarr_bw_dly(0 to 9);
lsu_xu_data_debug2(22 to 43) <= dcarr_bw_dly(10 to 31);
lsu_xu_data_debug2(44 to 65) <= dat_dbg_arr_q(3) & dat_dbg_st_dat_q(21 to 41);
lsu_xu_data_debug2(66 to 87) <= dat_dbg_st_dat_q(42 to 63);
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- DEBUG Data Compare
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Store Data Compare
dvcCmpSt : for t in (64-(2**regmode))/8 to 7 generate begin
ex2_st_dvc1_cmp_d(t) <= (xu_lsu_ex1_store_data(t*8 to (t*8)+7) =
spr_dvc1_dbg_q(t*8 to (t*8)+7));
ex2_st_dvc2_cmp_d(t) <= (xu_lsu_ex1_store_data(t*8 to (t*8)+7) =
spr_dvc2_dbg_q(t*8 to (t*8)+7));
end generate dvcCmpSt;
-- Load Data Compare
ex5_dvc1_en_d <= ex4_load_hit and not ex4_axu_op_val;
ex5_dvc2_en_d <= ex4_load_hit and not ex4_axu_op_val;
ex6_dvc1_en_d <= ex5_dvc1_en_q;
ex6_dvc2_en_d <= ex5_dvc2_en_q;
ex7_dvc1_en_d <= gate(ex6_ld_dvc_byte_mask, ex6_dvc1_en_q);
ex7_dvc2_en_d <= gate(ex6_ld_dvc_byte_mask, ex6_dvc2_en_q);
dvcCmpLd : for t in (64-(2**regmode))/8 to 7 generate begin
ex8_ld_dvc1_cmp_d(t) <= ex7_dvc1_en_q(t) and (ex7_xld_data_q(t*8 to (t*8)+7) =
spr_dvc1_dbg_q(t*8 to (t*8)+7));
ex8_ld_dvc2_cmp_d(t) <= ex7_dvc2_en_q(t) and (ex7_xld_data_q(t*8 to (t*8)+7) =
spr_dvc2_dbg_q(t*8 to (t*8)+7));
end generate dvcCmpLd;
-- Reload Data Compare
-- Need to gate dvc enables with not an axu reload
rel_dvc1_val_d <= rel_dvc1_en_q and not rel_axu_val_q;
rel_dvc1_val_stg_d <= rel_upd_gpr_q and rel_dvc1_val_q and not ldq_rel_beat_crit_qw_block;
rel_dvc1_val_stg2_d <= rel_dvc1_val_stg_q;
rel_dvc2_val_d <= rel_dvc2_en_q and not rel_axu_val_q;
rel_dvc2_val_stg_d <= rel_upd_gpr_q and rel_dvc2_val_q and not ldq_rel_beat_crit_qw_block;
rel_dvc2_val_stg2_d <= rel_dvc2_val_stg_q;
rel_dvc_thrd_id_d <= rel_thrd_id_q;
rel_dvc_tid_stg_d <= rel_dvc_thrd_id_q;
rel_dvc_tid_stg2_d <= rel_dvc_tid_stg_q;
dvcCmpRl : for t in (64-(2**regmode))/8 to 7 generate begin
rel_dvc1_cmp_d(t) <= (rel_64ld_data(t*8 to (t*8)+7) =
spr_dvc1_dbg_q(t*8 to (t*8)+7)) and rel_dvc_byte_mask(t);
rel_dvc2_cmp_d(t) <= (rel_64ld_data(t*8 to (t*8)+7) =
spr_dvc2_dbg_q(t*8 to (t*8)+7)) and rel_dvc_byte_mask(t);
end generate dvcCmpRl;
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Return Data Muxing
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Mux between move from GPR, move to GPR, and Move from DITC
ex6_stgpr_dp_data_d(0 to 127-(2**regmode)) <= ex5_dp_data(0 to 127-(2**regmode));
ex6_stgpr_dp_data_d(128-(2**regmode) to 127) <= gate(ex5_dp_data(128-(2**regmode) to 127), ex5_sdp_instr_q) or
gate(ex5_stgpr_data_q(64-(2**regmode) to 63), not ex5_sdp_instr_q);
-- Creating 1-hot mux selects for AXU Data Muxing Control
axu_data_sel <= (ex4_sdp_instr_q or ex4_stgpr_instr_q) & axu_rel_val_stg2_q;
with axu_data_sel select
ex5_axu_data_sel_d <= "001" when "00",
"100" when "10",
"010" when others;
selGen : for sel in 0 to 15 generate begin
ex6_axu_data_sel_d(3*sel to (3*sel)+2) <= ex5_axu_data_sel_q;
end generate selGen;
ex5_stgpr_dp_instr_d <= ex4_sdp_instr_q or ex4_stgpr_instr_q;
ex6_stgpr_dp_instr_d <= ex5_stgpr_dp_instr_q;
-- AXU Data
-- Mux between move from GPR, move to GPR, Move from DITC, load hit data, and reload data
-- Staging out AXU Reload Data
rel_256ld_data_stg1_d <= rel_256ld_data;
rel_256ld_data_stg2_d <= rel_256ld_data_stg1_q;
ex6_rot_sel(0 to 15) <= not axu_rel_upd_q(0 to 15) ;
axuldreldata : for t in 0 to 15 generate begin
ex6_axu_oth_b(t*8 to (t*8)+7) <= not( gate(rel_256ld_data_stg2_q(t*8 to (t*8)+7), axu_rel_upd_q(t)) );
end generate axuldreldata;
axuRelGpr : for byte in 0 to 15 generate
-- Muxing between stagedReloadData and MoveRegisterOps
ex6_axu_rel_gpr_data(8*byte to (8*byte)+7) <= gate(ex6_stgpr_dp_data_q(8*byte to (8*byte)+7), ex6_axu_data_sel_q((byte*3))) or
gate(rel_256ld_data_stg2_q(128+(8*byte) to 128+(8*byte)+7), ex6_axu_data_sel_q((byte*3)+1));
-- Muxing between loadHitData and stagedReloadData/MoveRegisterOps
ex6_axu_rel_gpr_data_sel(byte) <= not ex6_axu_data_sel_q((byte*3)+2);
ex6_rot_sel(16 + byte) <= ex6_axu_data_sel_q((byte*3)+2);
ex6_axu_oth_b(128+(8*byte) to 128+(8*byte)+7) <= not( gate(ex6_axu_rel_gpr_data(8*byte to (8*byte)+7), ex6_axu_rel_gpr_data_sel(byte) ) );
end generate axuRelGpr;
ex6_rot_sel_bus(0 to 255) <= ( 0 to 7 => ex6_rot_sel( 0) ) &
( 0 to 7 => ex6_rot_sel( 1) ) &
( 0 to 7 => ex6_rot_sel( 2) ) &
( 0 to 7 => ex6_rot_sel( 3) ) &
( 0 to 7 => ex6_rot_sel( 4) ) &
( 0 to 7 => ex6_rot_sel( 5) ) &
( 0 to 7 => ex6_rot_sel( 6) ) &
( 0 to 7 => ex6_rot_sel( 7) ) &
( 0 to 7 => ex6_rot_sel( 8) ) &
( 0 to 7 => ex6_rot_sel( 9) ) &
( 0 to 7 => ex6_rot_sel(10) ) &
( 0 to 7 => ex6_rot_sel(11) ) &
( 0 to 7 => ex6_rot_sel(12) ) &
( 0 to 7 => ex6_rot_sel(13) ) &
( 0 to 7 => ex6_rot_sel(14) ) &
( 0 to 7 => ex6_rot_sel(15) ) &
( 0 to 7 => ex6_rot_sel(16) ) &
( 0 to 7 => ex6_rot_sel(17) ) &
( 0 to 7 => ex6_rot_sel(18) ) &
( 0 to 7 => ex6_rot_sel(19) ) &
( 0 to 7 => ex6_rot_sel(20) ) &
( 0 to 7 => ex6_rot_sel(21) ) &
( 0 to 7 => ex6_rot_sel(22) ) &
( 0 to 7 => ex6_rot_sel(23) ) &
( 0 to 7 => ex6_rot_sel(24) ) &
( 0 to 7 => ex6_rot_sel(25) ) &
( 0 to 7 => ex6_rot_sel(26) ) &
( 0 to 7 => ex6_rot_sel(27) ) &
( 0 to 7 => ex6_rot_sel(28) ) &
( 0 to 7 => ex6_rot_sel(29) ) &
( 0 to 7 => ex6_rot_sel(30) ) &
( 0 to 7 => ex6_rot_sel(31) ) ;
u_axu_rot: ex6_frot_b (0 to 255) <= not( ld_swzl_data (0 to 255) and ex6_rot_sel_bus(0 to 255) );
u_axu_dat: ex6_fdat (0 to 255) <= not( ex6_frot_b (0 to 255) and ex6_axu_oth_b (0 to 255) );
u_axu_dati: xu_fu_ex6_load_data (0 to 255) <= ex6_fdat(0 to 255);
-- XU Data
-- Mux between move from GPR, move to GPR, Move from DITC, and load hit data
ex6_stgpr_dp_instr_q_b <= not ex6_stgpr_dp_instr_q ;
u_xrot_i: ex6_rot_d_b(0 to 63) <= not( ld_swzl_data(192 to 255) );
u_xrot_ii: ex6_rot_d (0 to 63) <= not( ex6_rot_d_b(0 to 63) );
u_xld_sgn: ex6_xld_sgnx_b(0 to 5) <= not( ex6_ld_alg_bit(0 to 5) and (0 to 5=> ex6_stgpr_dp_instr_q_b) );
u_xld_sgni: ex6_xld_sgn (0 to 5) <= not( ex6_xld_sgnx_b(0 to 5) );
u_xld_sgnii: ex6_xld_sgn_b (0 to 5) <= not( ex6_xld_sgn (0 to 5) );
u_xld_rot: ex6_xld_rot_b(0 to 63) <= not( ex6_rot_d(0 to 63) and (0 to 63=> ex6_stgpr_dp_instr_q_b) );
u_xld_oth: ex6_xld_oth_b(0 to 63) <= not( ex6_stgpr_dp_data_q(64 to 127) and (0 to 63=> ex6_stgpr_dp_instr_q ) );
u_xld_or_00: ex6_xld_data( 0) <= not( ex6_xld_rot_b( 0) and ex6_xld_sgn_b( 0) and ex6_xld_oth_b( 0) );
u_xld_or_01: ex6_xld_data( 1) <= not( ex6_xld_rot_b( 1) and ex6_xld_sgn_b( 0) and ex6_xld_oth_b( 1) );
u_xld_or_02: ex6_xld_data( 2) <= not( ex6_xld_rot_b( 2) and ex6_xld_sgn_b( 1) and ex6_xld_oth_b( 2) );
u_xld_or_03: ex6_xld_data( 3) <= not( ex6_xld_rot_b( 3) and ex6_xld_sgn_b( 1) and ex6_xld_oth_b( 3) );
u_xld_or_04: ex6_xld_data( 4) <= not( ex6_xld_rot_b( 4) and ex6_xld_sgn_b( 2) and ex6_xld_oth_b( 4) );
u_xld_or_05: ex6_xld_data( 5) <= not( ex6_xld_rot_b( 5) and ex6_xld_sgn_b( 2) and ex6_xld_oth_b( 5) );
u_xld_or_06: ex6_xld_data( 6) <= not( ex6_xld_rot_b( 6) and ex6_xld_sgn_b( 3) and ex6_xld_oth_b( 6) );
u_xld_or_07: ex6_xld_data( 7) <= not( ex6_xld_rot_b( 7) and ex6_xld_sgn_b( 3) and ex6_xld_oth_b( 7) );
u_xld_or_08: ex6_xld_data( 8) <= not( ex6_xld_rot_b( 8) and ex6_xld_sgn_b( 0) and ex6_xld_oth_b( 8) );
u_xld_or_09: ex6_xld_data( 9) <= not( ex6_xld_rot_b( 9) and ex6_xld_sgn_b( 0) and ex6_xld_oth_b( 9) );
u_xld_or_10: ex6_xld_data(10) <= not( ex6_xld_rot_b(10) and ex6_xld_sgn_b( 1) and ex6_xld_oth_b(10) );
u_xld_or_11: ex6_xld_data(11) <= not( ex6_xld_rot_b(11) and ex6_xld_sgn_b( 1) and ex6_xld_oth_b(11) );
u_xld_or_12: ex6_xld_data(12) <= not( ex6_xld_rot_b(12) and ex6_xld_sgn_b( 2) and ex6_xld_oth_b(12) );
u_xld_or_13: ex6_xld_data(13) <= not( ex6_xld_rot_b(13) and ex6_xld_sgn_b( 2) and ex6_xld_oth_b(13) );
u_xld_or_14: ex6_xld_data(14) <= not( ex6_xld_rot_b(14) and ex6_xld_sgn_b( 3) and ex6_xld_oth_b(14) );
u_xld_or_15: ex6_xld_data(15) <= not( ex6_xld_rot_b(15) and ex6_xld_sgn_b( 3) and ex6_xld_oth_b(15) );
u_xld_or_16: ex6_xld_data(16) <= not( ex6_xld_rot_b(16) and ex6_xld_sgn_b( 0) and ex6_xld_oth_b(16) );
u_xld_or_17: ex6_xld_data(17) <= not( ex6_xld_rot_b(17) and ex6_xld_sgn_b( 0) and ex6_xld_oth_b(17) );
u_xld_or_18: ex6_xld_data(18) <= not( ex6_xld_rot_b(18) and ex6_xld_sgn_b( 1) and ex6_xld_oth_b(18) );
u_xld_or_19: ex6_xld_data(19) <= not( ex6_xld_rot_b(19) and ex6_xld_sgn_b( 1) and ex6_xld_oth_b(19) );
u_xld_or_20: ex6_xld_data(20) <= not( ex6_xld_rot_b(20) and ex6_xld_sgn_b( 2) and ex6_xld_oth_b(20) );
u_xld_or_21: ex6_xld_data(21) <= not( ex6_xld_rot_b(21) and ex6_xld_sgn_b( 2) and ex6_xld_oth_b(21) );
u_xld_or_22: ex6_xld_data(22) <= not( ex6_xld_rot_b(22) and ex6_xld_sgn_b( 3) and ex6_xld_oth_b(22) );
u_xld_or_23: ex6_xld_data(23) <= not( ex6_xld_rot_b(23) and ex6_xld_sgn_b( 3) and ex6_xld_oth_b(23) );
u_xld_or_24: ex6_xld_data(24) <= not( ex6_xld_rot_b(24) and ex6_xld_sgn_b( 0) and ex6_xld_oth_b(24) );
u_xld_or_25: ex6_xld_data(25) <= not( ex6_xld_rot_b(25) and ex6_xld_sgn_b( 0) and ex6_xld_oth_b(25) );
u_xld_or_26: ex6_xld_data(26) <= not( ex6_xld_rot_b(26) and ex6_xld_sgn_b( 1) and ex6_xld_oth_b(26) );
u_xld_or_27: ex6_xld_data(27) <= not( ex6_xld_rot_b(27) and ex6_xld_sgn_b( 1) and ex6_xld_oth_b(27) );
u_xld_or_28: ex6_xld_data(28) <= not( ex6_xld_rot_b(28) and ex6_xld_sgn_b( 2) and ex6_xld_oth_b(28) );
u_xld_or_29: ex6_xld_data(29) <= not( ex6_xld_rot_b(29) and ex6_xld_sgn_b( 2) and ex6_xld_oth_b(29) );
u_xld_or_30: ex6_xld_data(30) <= not( ex6_xld_rot_b(30) and ex6_xld_sgn_b( 3) and ex6_xld_oth_b(30) );
u_xld_or_31: ex6_xld_data(31) <= not( ex6_xld_rot_b(31) and ex6_xld_sgn_b( 3) and ex6_xld_oth_b(31) );
u_xld_or_32: ex6_xld_data(32) <= not( ex6_xld_rot_b(32) and ex6_xld_sgn_b( 4) and ex6_xld_oth_b(32) );
u_xld_or_33: ex6_xld_data(33) <= not( ex6_xld_rot_b(33) and ex6_xld_sgn_b( 4) and ex6_xld_oth_b(33) );
u_xld_or_34: ex6_xld_data(34) <= not( ex6_xld_rot_b(34) and ex6_xld_sgn_b( 4) and ex6_xld_oth_b(34) );
u_xld_or_35: ex6_xld_data(35) <= not( ex6_xld_rot_b(35) and ex6_xld_sgn_b( 4) and ex6_xld_oth_b(35) );
u_xld_or_36: ex6_xld_data(36) <= not( ex6_xld_rot_b(36) and ex6_xld_sgn_b( 5) and ex6_xld_oth_b(36) );
u_xld_or_37: ex6_xld_data(37) <= not( ex6_xld_rot_b(37) and ex6_xld_sgn_b( 5) and ex6_xld_oth_b(37) );
u_xld_or_38: ex6_xld_data(38) <= not( ex6_xld_rot_b(38) and ex6_xld_sgn_b( 5) and ex6_xld_oth_b(38) );
u_xld_or_39: ex6_xld_data(39) <= not( ex6_xld_rot_b(39) and ex6_xld_sgn_b( 5) and ex6_xld_oth_b(39) );
u_xld_or_40: ex6_xld_data(40) <= not( ex6_xld_rot_b(40) and ex6_xld_sgn_b( 4) and ex6_xld_oth_b(40) );
u_xld_or_41: ex6_xld_data(41) <= not( ex6_xld_rot_b(41) and ex6_xld_sgn_b( 4) and ex6_xld_oth_b(41) );
u_xld_or_42: ex6_xld_data(42) <= not( ex6_xld_rot_b(42) and ex6_xld_sgn_b( 4) and ex6_xld_oth_b(42) );
u_xld_or_43: ex6_xld_data(43) <= not( ex6_xld_rot_b(43) and ex6_xld_sgn_b( 4) and ex6_xld_oth_b(43) );
u_xld_or_44: ex6_xld_data(44) <= not( ex6_xld_rot_b(44) and ex6_xld_sgn_b( 5) and ex6_xld_oth_b(44) );
u_xld_or_45: ex6_xld_data(45) <= not( ex6_xld_rot_b(45) and ex6_xld_sgn_b( 5) and ex6_xld_oth_b(45) );
u_xld_or_46: ex6_xld_data(46) <= not( ex6_xld_rot_b(46) and ex6_xld_sgn_b( 5) and ex6_xld_oth_b(46) );
u_xld_or_47: ex6_xld_data(47) <= not( ex6_xld_rot_b(47) and ex6_xld_sgn_b( 5) and ex6_xld_oth_b(47) );
u_xld_or_48: ex6_xld_data(48) <= not( ex6_xld_rot_b(48) and ex6_xld_oth_b(48) );
u_xld_or_49: ex6_xld_data(49) <= not( ex6_xld_rot_b(49) and ex6_xld_oth_b(49) );
u_xld_or_50: ex6_xld_data(50) <= not( ex6_xld_rot_b(50) and ex6_xld_oth_b(50) );
u_xld_or_51: ex6_xld_data(51) <= not( ex6_xld_rot_b(51) and ex6_xld_oth_b(51) );
u_xld_or_52: ex6_xld_data(52) <= not( ex6_xld_rot_b(52) and ex6_xld_oth_b(52) );
u_xld_or_53: ex6_xld_data(53) <= not( ex6_xld_rot_b(53) and ex6_xld_oth_b(53) );
u_xld_or_54: ex6_xld_data(54) <= not( ex6_xld_rot_b(54) and ex6_xld_oth_b(54) );
u_xld_or_55: ex6_xld_data(55) <= not( ex6_xld_rot_b(55) and ex6_xld_oth_b(55) );
u_xld_or_56: ex6_xld_data(56) <= not( ex6_xld_rot_b(56) and ex6_xld_oth_b(56) );
u_xld_or_57: ex6_xld_data(57) <= not( ex6_xld_rot_b(57) and ex6_xld_oth_b(57) );
u_xld_or_58: ex6_xld_data(58) <= not( ex6_xld_rot_b(58) and ex6_xld_oth_b(58) );
u_xld_or_59: ex6_xld_data(59) <= not( ex6_xld_rot_b(59) and ex6_xld_oth_b(59) );
u_xld_or_60: ex6_xld_data(60) <= not( ex6_xld_rot_b(60) and ex6_xld_oth_b(60) );
u_xld_or_61: ex6_xld_data(61) <= not( ex6_xld_rot_b(61) and ex6_xld_oth_b(61) );
u_xld_or_62: ex6_xld_data(62) <= not( ex6_xld_rot_b(62) and ex6_xld_oth_b(62) );
u_xld_or_63: ex6_xld_data(63) <= not( ex6_xld_rot_b(63) and ex6_xld_oth_b(63) );
u_xld_oi: ex6_xld_data_b(0 to 63) <= not( ex6_xld_data (0 to 63) );
u_dont_do_this: dont_do_this <= not( ex6_xld_data_b(0 to 63) );
ex7_xld_data_d <= dont_do_this(64-(2**regmode) to 63);
ex6_xu_ld_data_b(0 to 63) <= ex6_xld_data_b(0 to 63);
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- FIR Error Reporting
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DCPerr: tri_direct_err_rpt
generic map(width => 1, expand_type => expand_type)
port map(
vd => vdd,
gd => gnd,
err_in => ex7_ld_par_err(0 to 0),
err_out => dcache_parity(0 to 0)
);
ex8_ld_par_err_d <= ex7_ld_par_err(0);
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Spare Latches
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
my_spare_latches_d <= not my_spare_latches_q;
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Outputs
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- D$ Parity Error Detected
xu_pc_err_dcache_parity <= dcache_parity(0);
-- Debug Data Compare Outputs
lsu_xu_ex2_dvc1_st_cmp <= ex2_st_dvc1_cmp_q and ex2_xu_cmp_val_q;
lsu_xu_ex2_dvc2_st_cmp <= ex2_st_dvc2_cmp_q and ex2_xu_cmp_val_q;
lsu_xu_ex8_dvc1_ld_cmp <= gate(ex8_ld_dvc1_cmp_q, not ex8_ld_par_err_q);
lsu_xu_ex8_dvc2_ld_cmp <= gate(ex8_ld_dvc2_cmp_q, not ex8_ld_par_err_q);
lsu_xu_rel_dvc1_en <= rel_dvc1_val_stg2_q;
lsu_xu_rel_dvc1_cmp <= rel_dvc1_cmp_q;
lsu_xu_rel_dvc2_en <= rel_dvc2_val_stg2_q;
lsu_xu_rel_dvc2_cmp <= rel_dvc2_cmp_q;
lsu_xu_rel_dvc_thrd_id <= rel_dvc_tid_stg2_q;
-- L2CMDQ signals
ex4_256st_data <= ex4_256st_dataFixUp;
-- XU data
rel_xu_ld_data <= rel_64ld_data(64-(2**regmode) to 63) & rel_xu_ld_par(0 to ((2**regmode)/8)-1);
lsu_xu_ex6_datc_par_err <= ex6_ld_par_err_int;
ex6_ld_par_err <= ex6_ld_par_err_int;
-- AXU data
xu_fu_ex5_load_le <= ex5_rel_le_mode_q;
-- SCAN OUT Gate
abst_scan_out <= gate(abst_scan_out_q, an_ac_scan_dis_dc_b);
time_scan_out <= time_scan_out_q and an_ac_scan_dis_dc_b;
repr_scan_out <= repr_scan_out_q and an_ac_scan_dis_dc_b;
func_scan_out(0) <= func_scan_out_2_q(0) and an_ac_scan_dis_dc_b;
func_scan_out(1) <= func_scan_out_2_q(1) and an_ac_scan_dis_dc_b;
func_scan_out(2) <= func_scan_out_2_q(2) and an_ac_scan_dis_dc_b;
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-- Registers
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ex3_opsize_reg: tri_rlmreg_p
generic map (width => 6, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex3_opsize_offset to ex3_opsize_offset + ex3_opsize_d'length-1),
scout => sov0(ex3_opsize_offset to ex3_opsize_offset + ex3_opsize_d'length-1),
din => ex3_opsize_d,
dout => ex3_opsize_q);
ex3_ovrd_rot_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex3_ovrd_rot_offset),
scout => sov0(ex3_ovrd_rot_offset),
din => ex3_ovrd_rot_d,
dout => ex3_ovrd_rot_q);
ex4_le_mode_reg: tri_regk
generic map (width => 1, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel3_ex3_stg_act,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din(0) => ex4_le_mode_d,
dout(0) => ex4_le_mode_q);
ex4_le_mode_sel_reg: tri_rlmreg_p
generic map (width => 16, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel3_ex3_stg_act,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex4_le_mode_sel_offset to ex4_le_mode_sel_offset + ex4_le_mode_sel_d'length-1),
scout => sov0(ex4_le_mode_sel_offset to ex4_le_mode_sel_offset + ex4_le_mode_sel_d'length-1),
din => ex4_le_mode_sel_d,
dout => ex4_le_mode_sel_q);
ex4_be_mode_sel_reg: tri_rlmreg_p
generic map (width => 16, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel3_ex3_stg_act,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex4_be_mode_sel_offset to ex4_be_mode_sel_offset + ex4_be_mode_sel_d'length-1),
scout => sov0(ex4_be_mode_sel_offset to ex4_be_mode_sel_offset + ex4_be_mode_sel_d'length-1),
din => ex4_be_mode_sel_d,
dout => ex4_be_mode_sel_q);
ex5_load_hit_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex4_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex5_load_hit_offset),
scout => sov0(ex5_load_hit_offset),
din => ex5_load_hit_d,
dout => ex5_load_hit_q);
ex6_load_hit_reg: tri_regk
generic map (width => 1, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex5_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din(0) => ex6_load_hit_d,
dout(0) => ex6_load_hit_q);
ex7_load_hit_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex6_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex7_load_hit_offset),
scout => sov0(ex7_load_hit_offset),
din => ex7_load_hit_d,
dout => ex7_load_hit_q);
ex2_st_data_reg: tri_rlmreg_p
generic map (width => (2**regmode), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_st_data_offset to ex2_st_data_offset + ex2_st_data_d'length-1),
scout => sov0(ex2_st_data_offset to ex2_st_data_offset + ex2_st_data_d'length-1),
din => ex2_st_data_d,
dout => ex2_st_data_q);
axu_rel_upd_reg: tri_rlmreg_p
generic map (width => 16, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(axu_rel_upd_offset to axu_rel_upd_offset + axu_rel_upd_d'length-1),
scout => sov0(axu_rel_upd_offset to axu_rel_upd_offset + axu_rel_upd_d'length-1),
din => axu_rel_upd_d,
dout => axu_rel_upd_q);
rel_data_val_reg: tri_rlmreg_p
generic map (width => 16, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_data_val_offset to rel_data_val_offset + rel_data_val_d'length-1),
scout => sov0(rel_data_val_offset to rel_data_val_offset + rel_data_val_d'length-1),
din => rel_data_val_d,
dout => rel_data_val_q);
rel_addr_stg_reg: tri_rlmreg_p
generic map (width => 58-uprCClassBit+1, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_addr_stg_offset to rel_addr_stg_offset + rel_addr_stg_d'length-1),
scout => sov0(rel_addr_stg_offset to rel_addr_stg_offset + rel_addr_stg_d'length-1),
din => rel_addr_stg_d,
dout => rel_addr_stg_q);
rel_addr_reg: tri_rlmreg_p
generic map (width => 58-uprCClassBit+1, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel2_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_addr_offset to rel_addr_offset + rel_addr_d'length-1),
scout => sov0(rel_addr_offset to rel_addr_offset + rel_addr_d'length-1),
din => rel_addr_d,
dout => rel_addr_q);
ex5_axu_data_sel_reg: tri_rlmreg_p
generic map (width => 3, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex5_axu_data_sel_offset to ex5_axu_data_sel_offset + ex5_axu_data_sel_d'length-1),
scout => sov0(ex5_axu_data_sel_offset to ex5_axu_data_sel_offset + ex5_axu_data_sel_d'length-1),
din => ex5_axu_data_sel_d,
dout => ex5_axu_data_sel_q);
-- Non Scannable Latch
rel_ex3_data_reg: tri_regk
generic map (width => 256, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel2_ex2_stg_act,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => rel_ex3_data_d,
dout => rel_ex3_data_q);
rel_alg_bit_reg: tri_regk
generic map (width => 1, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel2_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din(0) => rel_alg_bit_d,
dout(0) => rel_alg_bit_q);
-- Non Scannable Latch
ex5_stgpr_data_reg: tri_regk
generic map (width => (2**regmode), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex4_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex5_stgpr_data_d,
dout => ex5_stgpr_data_q);
ex6_axu_data_sel_0reg: tri_regk
generic map (width => 24, init => 2396745, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex6_axu_data_sel_d(0 to 23),
dout => ex6_axu_data_sel_q(0 to 23));
ex6_axu_data_sel_1reg: tri_regk
generic map (width => 24, init => 2396745, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex6_axu_data_sel_d(24 to 47),
dout => ex6_axu_data_sel_q(24 to 47));
ex3_stgpr_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex3_stgpr_instr_offset),
scout => sov0(ex3_stgpr_instr_offset),
din => ex3_stgpr_instr_d,
dout => ex3_stgpr_instr_q);
ex4_stgpr_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex4_stgpr_instr_offset),
scout => sov0(ex4_stgpr_instr_offset),
din => ex4_stgpr_instr_d,
dout => ex4_stgpr_instr_q);
ex3_sdp_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex3_sdp_instr_offset),
scout => sov0(ex3_sdp_instr_offset),
din => ex3_sdp_instr_d,
dout => ex3_sdp_instr_q);
ex4_sdp_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex4_sdp_instr_offset),
scout => sov0(ex4_sdp_instr_offset),
din => ex4_sdp_instr_d,
dout => ex4_sdp_instr_q);
ex5_sdp_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex5_sdp_instr_offset),
scout => sov0(ex5_sdp_instr_offset),
din => ex5_sdp_instr_d,
dout => ex5_sdp_instr_q);
rot_addr_reg: tri_rlmreg_p
generic map (width => 5, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rot_addr_offset to rot_addr_offset + rot_addr_d'length-1),
scout => sov0(rot_addr_offset to rot_addr_offset + rot_addr_d'length-1),
din => rot_addr_d,
dout => rot_addr_q);
ex4_rot_addr_reg: tri_regk
generic map (width => 5, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex4_rot_addr_d,
dout => ex4_rot_addr_q);
rot_sel_non_le_reg: tri_rlmreg_p
generic map (width => 5, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rot_sel_non_le_offset to rot_sel_non_le_offset + rot_sel_non_le_d'length-1),
scout => sov0(rot_sel_non_le_offset to rot_sel_non_le_offset + rot_sel_non_le_d'length-1),
din => rot_sel_non_le_d,
dout => rot_sel_non_le_q);
ex4_rot_sel_non_le_reg: tri_regk
generic map (width => 5, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex4_rot_sel_non_le_d,
dout => ex4_rot_sel_non_le_q);
ex2_st_dvc1_cmp_reg: tri_regk
generic map (width => ((2**regmode)/8), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex2_st_dvc1_cmp_d,
dout => ex2_st_dvc1_cmp_q);
ex5_dvc1_en_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex5_dvc1_en_offset),
scout => sov0(ex5_dvc1_en_offset),
din => ex5_dvc1_en_d,
dout => ex5_dvc1_en_q);
ex6_dvc1_en_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex6_dvc1_en_offset),
scout => sov0(ex6_dvc1_en_offset),
din => ex6_dvc1_en_d,
dout => ex6_dvc1_en_q);
ex7_dvc1_en_reg: tri_rlmreg_p
generic map (width => ((2**regmode)/8), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex7_dvc1_en_offset to ex7_dvc1_en_offset + ex7_dvc1_en_d'length-1),
scout => sov0(ex7_dvc1_en_offset to ex7_dvc1_en_offset + ex7_dvc1_en_d'length-1),
din => ex7_dvc1_en_d,
dout => ex7_dvc1_en_q);
rel_dvc1_val_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel2_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_dvc1_val_offset),
scout => sov0(rel_dvc1_val_offset),
din => rel_dvc1_val_d,
dout => rel_dvc1_val_q);
ex8_ld_dvc1_cmp_reg: tri_rlmreg_p
generic map (width => ((2**regmode)/8), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex8_ld_dvc1_cmp_offset to ex8_ld_dvc1_cmp_offset + ex8_ld_dvc1_cmp_d'length-1),
scout => sov0(ex8_ld_dvc1_cmp_offset to ex8_ld_dvc1_cmp_offset + ex8_ld_dvc1_cmp_d'length-1),
din => ex8_ld_dvc1_cmp_d,
dout => ex8_ld_dvc1_cmp_q);
rel_dvc1_val_stg_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_dvc1_val_stg_offset),
scout => sov0(rel_dvc1_val_stg_offset),
din => rel_dvc1_val_stg_d,
dout => rel_dvc1_val_stg_q);
rel_dvc1_val_stg2_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_dvc1_val_stg2_offset),
scout => sov0(rel_dvc1_val_stg2_offset),
din => rel_dvc1_val_stg2_d,
dout => rel_dvc1_val_stg2_q);
rel_dvc1_cmp_reg: tri_regk
generic map (width => ((2**regmode)/8), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel4_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => rel_dvc1_cmp_d,
dout => rel_dvc1_cmp_q);
rel_dvc2_val_stg_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_dvc2_val_stg_offset),
scout => sov0(rel_dvc2_val_stg_offset),
din => rel_dvc2_val_stg_d,
dout => rel_dvc2_val_stg_q);
rel_dvc2_val_stg2_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_dvc2_val_stg2_offset),
scout => sov0(rel_dvc2_val_stg2_offset),
din => rel_dvc2_val_stg2_d,
dout => rel_dvc2_val_stg2_q);
rel_dvc2_cmp_reg: tri_regk
generic map (width => ((2**regmode)/8), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel4_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => rel_dvc2_cmp_d,
dout => rel_dvc2_cmp_q);
ex2_st_dvc2_cmp_reg: tri_regk
generic map (width => ((2**regmode)/8), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex2_st_dvc2_cmp_d,
dout => ex2_st_dvc2_cmp_q);
ex5_dvc2_en_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex5_dvc2_en_offset),
scout => sov0(ex5_dvc2_en_offset),
din => ex5_dvc2_en_d,
dout => ex5_dvc2_en_q);
ex6_dvc2_en_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex6_dvc2_en_offset),
scout => sov0(ex6_dvc2_en_offset),
din => ex6_dvc2_en_d,
dout => ex6_dvc2_en_q);
ex7_dvc2_en_reg: tri_rlmreg_p
generic map (width => ((2**regmode)/8), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex7_dvc2_en_offset to ex7_dvc2_en_offset + ex7_dvc2_en_d'length-1),
scout => sov0(ex7_dvc2_en_offset to ex7_dvc2_en_offset + ex7_dvc2_en_d'length-1),
din => ex7_dvc2_en_d,
dout => ex7_dvc2_en_q);
rel_dvc2_val_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel2_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_dvc2_val_offset),
scout => sov0(rel_dvc2_val_offset),
din => rel_dvc2_val_d,
dout => rel_dvc2_val_q);
ex8_ld_dvc2_cmp_reg: tri_rlmreg_p
generic map (width => ((2**regmode)/8), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex8_ld_dvc2_cmp_offset to ex8_ld_dvc2_cmp_offset + ex8_ld_dvc2_cmp_d'length-1),
scout => sov0(ex8_ld_dvc2_cmp_offset to ex8_ld_dvc2_cmp_offset + ex8_ld_dvc2_cmp_d'length-1),
din => ex8_ld_dvc2_cmp_d,
dout => ex8_ld_dvc2_cmp_q);
ex2_optype32_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_optype32_offset),
scout => sov0(ex2_optype32_offset),
din => ex2_optype32_d,
dout => ex2_optype32_q);
ex2_optype16_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_optype16_offset),
scout => sov0(ex2_optype16_offset),
din => ex2_optype16_d,
dout => ex2_optype16_q);
ex2_optype8_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_optype8_offset),
scout => sov0(ex2_optype8_offset),
din => ex2_optype8_d,
dout => ex2_optype8_q);
ex2_optype4_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_optype4_offset),
scout => sov0(ex2_optype4_offset),
din => ex2_optype4_d,
dout => ex2_optype4_q);
ex2_optype2_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_optype2_offset),
scout => sov0(ex2_optype2_offset),
din => ex2_optype2_d,
dout => ex2_optype2_q);
ex2_optype1_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_optype1_offset),
scout => sov0(ex2_optype1_offset),
din => ex2_optype1_d,
dout => ex2_optype1_q);
ex2_p_addr_reg: tri_rlmreg_p
generic map (width => 64-uprCClassBit, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_p_addr_offset to ex2_p_addr_offset + ex2_p_addr_d'length-1),
scout => sov0(ex2_p_addr_offset to ex2_p_addr_offset + ex2_p_addr_d'length-1),
din => ex2_p_addr_d,
dout => ex2_p_addr_q);
ex3_fu_st_val_reg: tri_regk
generic map (width => 1, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din(0) => ex3_fu_st_val_d,
dout(0) => ex3_fu_st_val_q);
frc_p_addr_reg: tri_rlmreg_p
generic map (width => 6, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(frc_p_addr_offset to frc_p_addr_offset + frc_p_addr_d'length-1),
scout => sov0(frc_p_addr_offset to frc_p_addr_offset + frc_p_addr_d'length-1),
din => frc_p_addr_d,
dout => frc_p_addr_q);
ex2_store_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_store_instr_offset),
scout => sov0(ex2_store_instr_offset),
din => ex2_store_instr_d,
dout => ex2_store_instr_q);
ex3_store_instr_reg: tri_regk
generic map (width => 1, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din(0) => ex3_store_instr_d,
dout(0) => ex3_store_instr_q);
ex3_st_rot_sel_reg: tri_regk
generic map (width => 5, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex3_st_rot_sel_d,
dout => ex3_st_rot_sel_q);
ex2_axu_op_val_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_axu_op_val_offset),
scout => sov0(ex2_axu_op_val_offset),
din => ex2_axu_op_val_d,
dout => ex2_axu_op_val_q);
ex3_axu_op_val_reg: tri_regk
generic map (width => 1, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din(0) => ex3_axu_op_val_d,
dout(0) => ex3_axu_op_val_q);
ex4_axu_op_val_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex4_axu_op_val_offset),
scout => sov0(ex4_axu_op_val_offset),
din => ex4_axu_op_val_d,
dout => ex4_axu_op_val_q);
ex2_xu_cmp_val_reg: tri_rlmreg_p
generic map (width => (2**regmode)/8, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_xu_cmp_val_offset to ex2_xu_cmp_val_offset + ex2_xu_cmp_val_d'length-1),
scout => sov0(ex2_xu_cmp_val_offset to ex2_xu_cmp_val_offset + ex2_xu_cmp_val_d'length-1),
din => ex2_xu_cmp_val_d,
dout => ex2_xu_cmp_val_q);
ex2_saxu_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_saxu_instr_offset),
scout => sov0(ex2_saxu_instr_offset),
din => ex2_saxu_instr_d,
dout => ex2_saxu_instr_q);
ex2_sdp_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_sdp_instr_offset),
scout => sov0(ex2_sdp_instr_offset),
din => ex2_sdp_instr_d,
dout => ex2_sdp_instr_q);
ex2_stgpr_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_stgpr_instr_offset),
scout => sov0(ex2_stgpr_instr_offset),
din => ex2_stgpr_instr_d,
dout => ex2_stgpr_instr_q);
ex3_saxu_instr_reg: tri_regk
generic map (width => 1, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din(0) => ex3_saxu_instr_d,
dout(0) => ex3_saxu_instr_q);
ex4_saxu_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex4_saxu_instr_offset),
scout => sov0(ex4_saxu_instr_offset),
din => ex4_saxu_instr_d,
dout => ex4_saxu_instr_q);
ex4_algebraic_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex4_algebraic_offset),
scout => sov0(ex4_algebraic_offset),
din => ex4_algebraic_d,
dout => ex4_algebraic_q);
ex2_ovrd_rot_sel_reg: tri_rlmreg_p
generic map (width => 5, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_ovrd_rot_sel_offset to ex2_ovrd_rot_sel_offset + ex2_ovrd_rot_sel_d'length-1),
scout => sov0(ex2_ovrd_rot_sel_offset to ex2_ovrd_rot_sel_offset + ex2_ovrd_rot_sel_d'length-1),
din => ex2_ovrd_rot_sel_d,
dout => ex2_ovrd_rot_sel_q);
ex3_p_addr_reg: tri_regk
generic map (width => 64-uprCClassBit, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex3_p_addr_d,
dout => ex3_p_addr_q);
ex4_p_addr_reg: tri_rlmreg_p
generic map (width => 64-uprCClassBit, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex4_p_addr_offset to ex4_p_addr_offset + ex4_p_addr_d'length-1),
scout => sov0(ex4_p_addr_offset to ex4_p_addr_offset + ex4_p_addr_d'length-1),
din => ex4_p_addr_d,
dout => ex4_p_addr_q);
rel_ex3_par_gen_reg: tri_regk
generic map (width => 32, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel2_ex2_stg_act,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => rel_ex3_par_gen_d,
dout => rel_ex3_par_gen_q);
spr_xucr0_dcdis_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(spr_xucr0_dcdis_offset),
scout => sov0(spr_xucr0_dcdis_offset),
din => spr_xucr0_dcdis_d,
dout => spr_xucr0_dcdis_q);
clkg_ctl_override_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(clkg_ctl_override_offset),
scout => sov0(clkg_ctl_override_offset),
din => clkg_ctl_override_d,
dout => clkg_ctl_override_q);
rel_dvc_thrd_id_reg: tri_regk
generic map (width => 4, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel2_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => rel_dvc_thrd_id_d,
dout => rel_dvc_thrd_id_q);
rel_dvc_tid_stg_reg: tri_rlmreg_p
generic map (width => 4, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_dvc_tid_stg_offset to rel_dvc_tid_stg_offset + rel_dvc_tid_stg_d'length-1),
scout => sov0(rel_dvc_tid_stg_offset to rel_dvc_tid_stg_offset + rel_dvc_tid_stg_d'length-1),
din => rel_dvc_tid_stg_d,
dout => rel_dvc_tid_stg_q);
rel_dvc_tid_stg2_reg: tri_regk
generic map (width => 4, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => rel_dvc_tid_stg2_d,
dout => rel_dvc_tid_stg2_q);
inj_dcache_parity_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(inj_dcache_parity_offset),
scout => sov0(inj_dcache_parity_offset),
din => inj_dcache_parity_d,
dout => inj_dcache_parity_q);
ex5_stgpr_dp_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex5_stgpr_dp_instr_offset),
scout => sov0(ex5_stgpr_dp_instr_offset),
din => ex5_stgpr_dp_instr_d,
dout => ex5_stgpr_dp_instr_q);
ex6_stgpr_dp_instr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex6_stgpr_dp_instr_offset),
scout => sov0(ex6_stgpr_dp_instr_offset),
din => ex6_stgpr_dp_instr_d,
dout => ex6_stgpr_dp_instr_q);
ex6_stgpr_dp_data_reg: tri_rlmreg_p
generic map (width => 128, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex5_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex6_stgpr_dp_data_offset to ex6_stgpr_dp_data_offset + ex6_stgpr_dp_data_d'length-1),
scout => sov0(ex6_stgpr_dp_data_offset to ex6_stgpr_dp_data_offset + ex6_stgpr_dp_data_d'length-1),
din => ex6_stgpr_dp_data_d,
dout => ex6_stgpr_dp_data_q);
ex5_rel_le_mode_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex5_rel_le_mode_offset),
scout => sov0(ex5_rel_le_mode_offset),
din => ex5_rel_le_mode_d,
dout => ex5_rel_le_mode_q);
ex1_ldst_falign_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex1_ldst_falign_offset),
scout => sov0(ex1_ldst_falign_offset),
din => ex1_ldst_falign_d,
dout => ex1_ldst_falign_q);
ex4_thrd_id_reg: tri_regk
generic map (width => 4, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex4_thrd_id_d,
dout => ex4_thrd_id_q);
ex5_thrd_id_reg: tri_rlmreg_p
generic map (width => 4, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex5_thrd_id_offset to ex5_thrd_id_offset + ex5_thrd_id_d'length-1),
scout => sov0(ex5_thrd_id_offset to ex5_thrd_id_offset + ex5_thrd_id_d'length-1),
din => ex5_thrd_id_d,
dout => ex5_thrd_id_q);
axu_rel_val_stg1_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(axu_rel_val_stg1_offset),
scout => sov0(axu_rel_val_stg1_offset),
din => axu_rel_val_stg1_d,
dout => axu_rel_val_stg1_q);
axu_rel_val_stg2_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(axu_rel_val_stg2_offset),
scout => sov0(axu_rel_val_stg2_offset),
din => axu_rel_val_stg2_d,
dout => axu_rel_val_stg2_q);
axu_rel_val_stg3_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(axu_rel_val_stg3_offset),
scout => sov0(axu_rel_val_stg3_offset),
din => axu_rel_val_stg3_d,
dout => axu_rel_val_stg3_q);
rel_256ld_data_stg1_reg: tri_regk
generic map (width => 256, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel4_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => rel_256ld_data_stg1_d,
dout => rel_256ld_data_stg1_q);
rel_256ld_data_stg2_reg: tri_rlmreg_p
generic map (width => 256, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel5_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_256ld_data_stg2_offset to rel_256ld_data_stg2_offset + rel_256ld_data_stg2_d'length-1),
scout => sov0(rel_256ld_data_stg2_offset to rel_256ld_data_stg2_offset + rel_256ld_data_stg2_d'length-1),
din => rel_256ld_data_stg2_d,
dout => rel_256ld_data_stg2_q);
rel_axu_le_val_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_axu_le_val_offset),
scout => sov0(rel_axu_le_val_offset),
din => rel_axu_le_val_d,
dout => rel_axu_le_val_q);
rel_axu_le_val_stg1_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel_axu_le_val_stg1_offset),
scout => sov0(rel_axu_le_val_stg1_offset),
din => rel_axu_le_val_stg1_d,
dout => rel_axu_le_val_stg1_q);
dcarr_wren_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel4_ex4_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(dcarr_wren_offset),
scout => sov0(dcarr_wren_offset),
din => dcarr_wren_d,
dout => dcarr_wren_q);
dat_dbg_arr_reg: tri_rlmreg_p
generic map (width => 13, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => trace_bus_enable_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(dat_dbg_arr_offset to dat_dbg_arr_offset + dat_dbg_arr_d'length-1),
scout => sov0(dat_dbg_arr_offset to dat_dbg_arr_offset + dat_dbg_arr_d'length-1),
din => dat_dbg_arr_d,
dout => dat_dbg_arr_q);
ld_alg_le_sel_reg: tri_rlmreg_p
generic map (width => 5, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex2_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ld_alg_le_sel_offset to ld_alg_le_sel_offset + ld_alg_le_sel_d'length-1),
scout => sov0(ld_alg_le_sel_offset to ld_alg_le_sel_offset + ld_alg_le_sel_d'length-1),
din => ld_alg_le_sel_d,
dout => ld_alg_le_sel_q);
ex4_ld_alg_le_sel_reg: tri_regk
generic map (width => 5, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex3_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex4_ld_alg_le_sel_d,
dout => ex4_ld_alg_le_sel_q);
ex1_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex1_stg_act_offset),
scout => sov0(ex1_stg_act_offset),
din => ex1_stg_act_d,
dout => ex1_stg_act_q);
ex2_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex2_stg_act_offset),
scout => sov0(ex2_stg_act_offset),
din => ex2_stg_act_d,
dout => ex2_stg_act_q);
ex3_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex3_stg_act_offset),
scout => sov0(ex3_stg_act_offset),
din => ex3_stg_act_d,
dout => ex3_stg_act_q);
ex4_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex4_stg_act_offset),
scout => sov0(ex4_stg_act_offset),
din => ex4_stg_act_d,
dout => ex4_stg_act_q);
ex5_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex5_stg_act_offset),
scout => sov0(ex5_stg_act_offset),
din => ex5_stg_act_d,
dout => ex5_stg_act_q);
ex6_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex6_stg_act_offset),
scout => sov0(ex6_stg_act_offset),
din => ex6_stg_act_d,
dout => ex6_stg_act_q);
rel1_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel1_stg_act_offset),
scout => sov0(rel1_stg_act_offset),
din => rel1_stg_act_d,
dout => rel1_stg_act_q);
rel2_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel2_stg_act_offset),
scout => sov0(rel2_stg_act_offset),
din => rel2_stg_act_d,
dout => rel2_stg_act_q);
rel3_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel3_stg_act_offset),
scout => sov0(rel3_stg_act_offset),
din => rel3_stg_act_d,
dout => rel3_stg_act_q);
rel4_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel4_stg_act_offset),
scout => sov0(rel4_stg_act_offset),
din => rel4_stg_act_d,
dout => rel4_stg_act_q);
rel5_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel5_stg_act_offset),
scout => sov0(rel5_stg_act_offset),
din => rel5_stg_act_d,
dout => rel5_stg_act_q);
rel2_ex2_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel2_ex2_stg_act_offset),
scout => sov0(rel2_ex2_stg_act_offset),
din => rel2_ex2_stg_act_d,
dout => rel2_ex2_stg_act_q);
rel3_ex3_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel3_ex3_stg_act_offset),
scout => sov0(rel3_ex3_stg_act_offset),
din => rel3_ex3_stg_act_d,
dout => rel3_ex3_stg_act_q);
rel4_ex4_stg_act_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(rel4_ex4_stg_act_offset),
scout => sov0(rel4_ex4_stg_act_offset),
din => rel4_ex4_stg_act_d,
dout => rel4_ex4_stg_act_q);
ex8_ld_par_err_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv0(ex8_ld_par_err_offset),
scout => sov0(ex8_ld_par_err_offset),
din => ex8_ld_par_err_d,
dout => ex8_ld_par_err_q);
my_spare0_lcb : entity tri.tri_lcbnd(tri_lcbnd)
generic map (expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
d1clk => my_spare0_d1clk,
d2clk => my_spare0_d2clk,
lclk => my_spare0_lclk);
my_spare_latches_reg: entity tri.tri_inv_nlats(tri_inv_nlats)
generic map (width => 8, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
lclk => my_spare0_lclk,
d1clk => my_spare0_d1clk,
d2clk => my_spare0_d2clk,
scanin => siv0(my_spare_latches_offset to my_spare_latches_offset + my_spare_latches_d'length-1),
scanout => sov0(my_spare_latches_offset to my_spare_latches_offset + my_spare_latches_d'length-1),
d => my_spare_latches_d,
qb => my_spare_latches_q);
-----------------------------------------------------------------------
-- Func_Scan1 latches
-----------------------------------------------------------------------
rel_data_reg: tri_rlmreg_p
generic map (width => 256, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_data_offset to rel_data_offset + rel_data_d'length-1),
scout => sov1(rel_data_offset to rel_data_offset + rel_data_d'length-1),
din => rel_data_d,
dout => rel_data_q);
rel_algebraic_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_algebraic_offset),
scout => sov1(rel_algebraic_offset),
din => rel_algebraic_d,
dout => rel_algebraic_q);
rel_rot_sel_reg: tri_rlmreg_p
generic map (width => 5, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_rot_sel_offset to rel_rot_sel_offset + rel_rot_sel_d'length-1),
scout => sov1(rel_rot_sel_offset to rel_rot_sel_offset + rel_rot_sel_d'length-1),
din => rel_rot_sel_d,
dout => rel_rot_sel_q);
rel_op_size_reg: tri_rlmreg_p
generic map (width => 6, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_op_size_offset to rel_op_size_offset + rel_op_size_d'length-1),
scout => sov1(rel_op_size_offset to rel_op_size_offset + rel_op_size_d'length-1),
din => rel_op_size_d,
dout => rel_op_size_q);
rel_le_mode_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_le_mode_offset),
scout => sov1(rel_le_mode_offset),
din => rel_le_mode_d,
dout => rel_le_mode_q);
rel_dvc1_en_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_dvc1_en_offset),
scout => sov1(rel_dvc1_en_offset),
din => rel_dvc1_en_d,
dout => rel_dvc1_en_q);
rel_dvc2_en_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_dvc2_en_offset),
scout => sov1(rel_dvc2_en_offset),
din => rel_dvc2_en_d,
dout => rel_dvc2_en_q);
rel_upd_gpr_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_upd_gpr_offset),
scout => sov1(rel_upd_gpr_offset),
din => rel_upd_gpr_d,
dout => rel_upd_gpr_q);
rel_axu_val_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_axu_val_offset),
scout => sov1(rel_axu_val_offset),
din => rel_axu_val_d,
dout => rel_axu_val_q);
rel_ci_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_ci_offset),
scout => sov1(rel_ci_offset),
din => rel_ci_d,
dout => rel_ci_q);
rel_ci_dly_reg: tri_regk
generic map (width => 1, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din(0) => rel_ci_dly_d,
dout(0) => rel_ci_dly_q);
rel_thrd_id_reg: tri_rlmreg_p
generic map (width => 4, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_thrd_id_offset to rel_thrd_id_offset + rel_thrd_id_d'length-1),
scout => sov1(rel_thrd_id_offset to rel_thrd_id_offset + rel_thrd_id_d'length-1),
din => rel_thrd_id_d,
dout => rel_thrd_id_q);
rel_data_val_stg_reg: tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(rel_data_val_stg_offset),
scout => sov1(rel_data_val_stg_offset),
din => rel_data_val_stg_d,
dout => rel_data_val_stg_q);
rel_data_val_stg_dly_reg: tri_regk
generic map (width => 1, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din(0) => rel_data_val_stg_dly_d,
dout(0) => rel_data_val_stg_dly_q);
spr_dvc1_dbg_reg: tri_ser_rlmreg_p
generic map (width => (2**regmode), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => spr_dvc1_act,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(spr_dvc1_dbg_offset to spr_dvc1_dbg_offset + spr_dvc1_dbg_d'length-1),
scout => sov1(spr_dvc1_dbg_offset to spr_dvc1_dbg_offset + spr_dvc1_dbg_d'length-1),
din => spr_dvc1_dbg_d,
dout => spr_dvc1_dbg_q);
spr_dvc2_dbg_reg: tri_ser_rlmreg_p
generic map (width => (2**regmode), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => spr_dvc2_act,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(spr_dvc2_dbg_offset to spr_dvc2_dbg_offset + spr_dvc2_dbg_d'length-1),
scout => sov1(spr_dvc2_dbg_offset to spr_dvc2_dbg_offset + spr_dvc2_dbg_d'length-1),
din => spr_dvc2_dbg_d,
dout => spr_dvc2_dbg_q);
ex7_xld_data_reg: tri_regk
generic map (width => (2**regmode), init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => ex6_stg_act_q,
forcee => func_nsl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_nsl_thold_0_b,
din => ex7_xld_data_d,
dout => ex7_xld_data_q);
trace_bus_enable_latch : tri_rlmlatch_p
generic map (init => 0, expand_type => expand_type, needs_sreset => 0)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => tiup,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(trace_bus_enable_offset),
scout => sov1(trace_bus_enable_offset),
din => pc_xu_trace_bus_enable,
dout => trace_bus_enable_q);
dat_debug_mux_ctrls_reg: tri_rlmreg_p
generic map (width => 2, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => rel1_stg_act_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(dat_debug_mux_ctrls_offset to dat_debug_mux_ctrls_offset + dat_debug_mux_ctrls_q'length-1),
scout => sov1(dat_debug_mux_ctrls_offset to dat_debug_mux_ctrls_offset + dat_debug_mux_ctrls_q'length-1),
din => lsudat_debug_mux_ctrls,
dout => dat_debug_mux_ctrls_q);
dat_dbg_st_dat_reg: tri_rlmreg_p
generic map (width => 64, init => 0, expand_type => expand_type, needs_sreset => 1)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => trace_bus_enable_q,
forcee => func_sl_force,
d_mode => d_mode_dc,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
thold_b => func_sl_thold_0_b,
sg => sg_0,
scin => siv1(dat_dbg_st_dat_offset to dat_dbg_st_dat_offset + dat_dbg_st_dat_d'length-1),
scout => sov1(dat_dbg_st_dat_offset to dat_dbg_st_dat_offset + dat_dbg_st_dat_d'length-1),
din => dat_dbg_st_dat_d,
dout => dat_dbg_st_dat_q);
-----------------------------------------------------------------------
-- abist latches
-----------------------------------------------------------------------
abist_reg: tri_rlmreg_p
generic map (init => 0, expand_type => expand_type, width => 21, needs_sreset => 0)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
act => pc_xu_abist_ena_dc,
thold_b => abst_sl_thold_0_b,
sg => sg_0,
forcee => abst_sl_force,
delay_lclkr => delay_lclkr_dc(5),
mpw1_b => mpw1_dc_b(5),
mpw2_b => mpw2_dc_b,
d_mode => d_mode_dc,
scin => abist_siv(1 to 21),
scout => abist_sov(1 to 21),
din(0 to 1) => pc_xu_abist_g6t_bw,
din(2 to 5) => pc_xu_abist_di_g6t_2r,
din(6) => pc_xu_abist_wl512_comp_ena,
din(7 to 10) => pc_xu_abist_dcomp_g6t_2r,
din(11 to 19) => pc_xu_abist_raddr_0,
din(20) => pc_xu_abist_g6t_r_wb,
dout(0 to 1) => pc_xu_abist_g6t_bw_q,
dout(2 to 5) => pc_xu_abist_di_g6t_2r_q,
dout(6) => pc_xu_abist_wl512_comp_ena_q,
dout(7 to 10) => pc_xu_abist_dcomp_g6t_2r_q,
dout(11 to 19) => pc_xu_abist_raddr_0_q,
dout(20) => pc_xu_abist_g6t_r_wb_q);
-------------------------------------------------
-- Pervasive
-------------------------------------------------
perv_2to1_reg: tri_plat
generic map (width => 9, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
flush => pc_xu_ccflush_dc,
din(0) => func_nsl_thold_2,
din(1) => func_sl_thold_2,
din(2) => ary_nsl_thold_2,
din(3) => abst_sl_thold_2,
din(4) => time_sl_thold_2,
din(5) => repr_sl_thold_2,
din(6) => bolt_sl_thold_2,
din(7) => sg_2,
din(8) => fce_2,
q(0) => func_nsl_thold_1,
q(1) => func_sl_thold_1,
q(2) => ary_nsl_thold_1,
q(3) => abst_sl_thold_1,
q(4) => time_sl_thold_1,
q(5) => repr_sl_thold_1,
q(6) => bolt_sl_thold_1,
q(7) => sg_1,
q(8) => fce_1);
perv_1to0_reg: tri_plat
generic map (width => 9, expand_type => expand_type)
port map (vd => vdd,
gd => gnd,
nclk => nclk,
flush => pc_xu_ccflush_dc,
din(0) => func_nsl_thold_1,
din(1) => func_sl_thold_1,
din(2) => ary_nsl_thold_1,
din(3) => abst_sl_thold_1,
din(4) => time_sl_thold_1,
din(5) => repr_sl_thold_1,
din(6) => bolt_sl_thold_1,
din(7) => sg_1,
din(8) => fce_1,
q(0) => func_nsl_thold_0,
q(1) => func_sl_thold_0,
q(2) => ary_nsl_thold_0,
q(3) => abst_sl_thold_0,
q(4) => time_sl_thold_0,
q(5) => repr_sl_thold_0,
q(6) => bolt_sl_thold_0,
q(7) => sg_0,
q(8) => fce_0);
perv_lcbor_func_sl: tri_lcbor
generic map (expand_type => expand_type)
port map (clkoff_b => clkoff_dc_b,
thold => func_sl_thold_0,
sg => sg_0,
act_dis => tidn,
forcee => func_sl_force,
thold_b => func_sl_thold_0_b);
perv_lcbor_func_nsl: tri_lcbor
generic map (expand_type => expand_type)
port map (clkoff_b => clkoff_dc_b,
thold => func_nsl_thold_0,
sg => fce_0,
act_dis => tidn,
forcee => func_nsl_force,
thold_b => func_nsl_thold_0_b);
perv_lcbor_abst_sl: tri_lcbor
generic map (expand_type => expand_type)
port map (clkoff_b => clkoff_dc_b,
thold => abst_sl_thold_0,
sg => sg_0,
act_dis => tidn,
forcee => abst_sl_force,
thold_b => abst_sl_thold_0_b);
-- LCBs for scan only staging latches
slat_force <= sg_0;
abst_slat_thold_b <= NOT abst_sl_thold_0;
time_slat_thold_b <= NOT time_sl_thold_0;
repr_slat_thold_b <= NOT repr_sl_thold_0;
func_slat_thold_b <= NOT func_sl_thold_0;
perv_lcbs_abst: tri_lcbs
generic map (expand_type => expand_type )
port map (
vd => vdd,
gd => gnd,
delay_lclkr => delay_lclkr_dc(5),
nclk => nclk,
forcee => slat_force,
thold_b => abst_slat_thold_b,
dclk => abst_slat_d2clk,
lclk => abst_slat_lclk );
perv_abst_stg: tri_slat_scan
generic map (width => 4, init => "0000", expand_type => expand_type)
port map ( vd => vdd,
gd => gnd,
dclk => abst_slat_d2clk,
lclk => abst_slat_lclk,
scan_in(0 to 1) => abst_scan_in,
scan_in(2 to 3) => abst_scan_out_int,
scan_out(0 to 1) => abst_scan_in_q,
scan_out(2 to 3) => abst_scan_out_q );
perv_lcbs_time: tri_lcbs
generic map (expand_type => expand_type )
port map (
vd => vdd,
gd => gnd,
delay_lclkr => delay_lclkr_dc(5),
nclk => nclk,
forcee => slat_force,
thold_b => time_slat_thold_b,
dclk => time_slat_d2clk,
lclk => time_slat_lclk );
perv_time_stg: tri_slat_scan
generic map (width => 2, init => "00", expand_type => expand_type)
port map ( vd => vdd,
gd => gnd,
dclk => time_slat_d2clk,
lclk => time_slat_lclk,
scan_in(0) => time_scan_in,
scan_in(1) => time_scan_out_int,
scan_out(0) => time_scan_in_q,
scan_out(1) => time_scan_out_q );
perv_lcbs_repr: tri_lcbs
generic map (expand_type => expand_type )
port map (
vd => vdd,
gd => gnd,
delay_lclkr => delay_lclkr_dc(5),
nclk => nclk,
forcee => slat_force,
thold_b => repr_slat_thold_b,
dclk => repr_slat_d2clk,
lclk => repr_slat_lclk );
perv_repr_stg: tri_slat_scan
generic map (width => 2, init => "00", expand_type => expand_type)
port map ( vd => vdd,
gd => gnd,
dclk => repr_slat_d2clk,
lclk => repr_slat_lclk,
scan_in(0) => repr_scan_in,
scan_in(1) => repr_scan_out_int,
scan_out(0) => repr_scan_in_q,
scan_out(1) => repr_scan_out_q );
perv_lcbs_func: tri_lcbs
generic map (expand_type => expand_type )
port map (
vd => vdd,
gd => gnd,
delay_lclkr => delay_lclkr_dc(5),
nclk => nclk,
forcee => slat_force,
thold_b => func_slat_thold_b,
dclk => func_slat_d2clk,
lclk => func_slat_lclk );
perv_func_stg: tri_slat_scan
generic map (width => 12, init => (1 to 12=>'0'), expand_type => expand_type)
port map ( vd => vdd,
gd => gnd,
dclk => func_slat_d2clk,
lclk => func_slat_lclk,
scan_in(0) => func_scan_in(0),
scan_in(1) => func_scan_in(1),
scan_in(2) => func_scan_in(2),
scan_in(3) => func_scan_out_int(0),
scan_in(4) => func_scan_out_int(1),
scan_in(5) => func_scan_out_int(2),
scan_in(6) => func_scan_in_q(0),
scan_in(7) => func_scan_in_q(1),
scan_in(8) => func_scan_in_q(2),
scan_in(9) => func_scan_out_q(0),
scan_in(10) => func_scan_out_q(1),
scan_in(11) => func_scan_out_q(2),
scan_out(0) => func_scan_in_q(0),
scan_out(1) => func_scan_in_q(1),
scan_out(2) => func_scan_in_q(2),
scan_out(3) => func_scan_out_q(0),
scan_out(4) => func_scan_out_q(1),
scan_out(5) => func_scan_out_q(2),
scan_out(6) => func_scan_in_2_q(0),
scan_out(7) => func_scan_in_2_q(1),
scan_out(8) => func_scan_in_2_q(2),
scan_out(9) => func_scan_out_2_q(0),
scan_out(10)=> func_scan_out_2_q(1),
scan_out(11)=> func_scan_out_2_q(2)
);
siv0 <= sov0(1 to scan_right0) & func_scan_in_2_q(0);
func_scan_out_int(0) <= sov0(0);
siv1 <= sov1(1 to scan_right1) & func_scan_in_2_q(1);
func_scan_out_int(1) <= sov1(0);
abist_siv <= abist_sov(1 to abist_sov'right) & abst_scan_in_q(0);
abst_scan_out_int(0) <= abist_sov(0);
end xuq_lsu_data;