45use ieee.std_logic_1164.
all;
46use ieee.numeric_std.
all;
59 STAT : out dpath_stat_type;
87 signal PSW : psw_type := psw_init;
115 ASRC => CNTL.gr_asrc,
116 ADST => CNTL.gr_adst,
117 MODE => CNTL.gr_mode,
118 RSET => CNTL.gr_rset,
120 BYTOP => CNTL.gr_bytop,
121 PCINC => CNTL.gr_pcinc,
132 CCWE => CNTL.psr_ccwe,
134 FUNC => CNTL.psr_func,
145 ASEL => CNTL.ounit_asel,
146 AZERO => CNTL.ounit_azero,
149 CONST => CNTL.ounit_const,
150 BSEL => CNTL.ounit_bsel,
151 OPSUB => CNTL.ounit_opsub,
160 SRCMOD => CNTL.aunit_srcmod,
161 DSTMOD => CNTL.aunit_dstmod,
162 CIMOD => CNTL.aunit_cimod,
163 CC1OP => CNTL.aunit_cc1op,
164 CCMODE => CNTL.aunit_ccmode,
165 BYTOP => CNTL.aunit_bytop,
174 FUNC => CNTL.lunit_func,
175 BYTOP => CNTL.lunit_bytop,
186 FUNC => CNTL.munit_func,
187 S_DIV => CNTL.munit_s_div,
191 S_ASH => CNTL.munit_s_ash,
193 S_ASHC => CNTL.munit_s_ashc,
211 case CNTL.dres_sel is
217 when c_dpath_res_fpdout => DRES <= (others=>'0');
222 end process proc_dres_sel;
227 case CNTL.cres_sel is
232 when c_dpath_res_vmdout => CCOUT <= CCIN;
233 when c_dpath_res_fpdout => CCOUT <= "0000";
238 end process proc_cres_sel;
243 if rising_edge(CLK) then
245 if CNTL.dsrc_we = '1' then
246 if CNTL.dsrc_sel = c_dpath_dsrc_src then
253 if CNTL.ddst_we = '1' then
254 if CNTL.ddst_sel = c_dpath_ddst_dst then
261 if CNTL.dtmp_we = '1' then
262 case CNTL.dtmp_sel is
264 when c_dpath_dtmp_psw =>
280 end process proc_dregs;
285 if rising_edge(CLK) then
287 if CNTL.ireg_we = '1' then
292 end process proc_mregs;
294 proc_cpdout:
process (
CLK)
296 if rising_edge(CLK) then
300 if CNTL.cpdout_we = '1' then
305 end process proc_cpdout;
309 case CNTL.vmaddr_sel is
316 end process proc_vmaddr_sel;
slv16 :=( others => '0') AUNIT_DOUT
slv16 :=( others => '0') GR_DSRC
integer range 5 downto 0 lah_ibf_addr
slv2 :=( others => '0') OUNIT_NZOUT
slv16 :=( others => '0') R_IREG
slv4 :=( others => '0') LUNIT_CCOUT
integer := 6 lah_ibf_ena_22bit
slv4 :=( others => '0') AUNIT_CCOUT
slv16 :=( others => '0') OUNIT_DOUT
slv4 :=( others => '0') CCIN
slv16 :=( others => '0') DRESE
slv4 :=( others => '0') CCOUT
slv16 :=( others => '0') R_DTMP
slv4 :=( others => '0') MUNIT_CCOUT
slv16 :=( others => '0') DRES
slv16 :=( others => '0') MUNIT_DOUT
slv16 :=( others => '0') LUNIT_DOUT
slv16 :=( others => '0') R_CPDOUT
integer := 7 lah_ibf_ena_ubmap
slv16 :=( others => '0') R_DSRC
slv16 :=( others => '0') R_DDST
slv4 :=( others => '0') OUNIT_CCOUT
slv16 :=( others => '0') GR_PC
slv16 :=( others => '0') GR_DDST
integer range 15 downto 1 lal_ibf_addr
out DM_STAT_DP dm_stat_dp_type
std_logic_vector( 3 downto 0) slv4
std_logic_vector( 15 downto 0) slv16
std_logic_vector( 1 downto 0) slv2