24use ieee.std_logic_1164.
all;
25use ieee.numeric_std.
all;
51 variable iout : slv16 := (others=>'0');
52 variable inzstd : slbit := '0';
53 variable ino : slbit := '0';
54 variable izo : slbit := '0';
55 variable ivo : slbit := '0';
56 variable ico : slbit := '0';
58 alias DSRC_L : slv8 is DSRC(7 downto 0);
59 alias DSRC_H : slv8 is DSRC(15 downto 8);
60 alias DDST_L : slv8 is DDST(7 downto 0);
61 alias DDST_H : slv8 is DDST(15 downto 8);
66 alias iout_l : slv8 is iout(7 downto 0);
67 alias iout_h : slv8 is iout(15 downto 8);
71 iout := (others=>'0');
87 case FUNC(2 downto 0) is
89 iout := DDST(15) & DDST(15 downto 1);
91 ivo := iout(15) xor ico;
94 iout := DDST(14 downto 0) & '0';
96 ivo := iout(15) xor ico;
99 iout := CI & DDST(15 downto 1);
101 ivo := iout(15) xor ico;
104 iout := DDST(14 downto 0) & CI;
106 ivo := iout(15) xor ico;
128 case FUNC(2 downto 0) is
130 iout_l := DDST_L(7) & DDST_L(7 downto 1);
132 ivo := iout_l(7) xor ico;
135 iout_l := DDST(6 downto 0) & '0';
137 ivo := iout_l(7) xor ico;
140 iout_l := CI & DDST_L(7 downto 1);
142 ivo := iout_l(7) xor ico;
145 iout_l := DDST_L(6 downto 0) & CI;
147 ivo := iout_l(7) xor ico;
150 iout_l := DDST_L or DSRC_L;
154 iout_l := DDST_L and not DSRC_L;
158 iout_l := DDST_L and DSRC_L;
163 iout_h := (others=>DSRC_L(7));
170 case FUNC(2 downto 0) is
172 iout := (others=>NI);
180 iout := DDST_L & DDST_H;
183 if unsigned(iout(7 downto 0)) = 0 then
203 if unsigned(iout(7 downto 0)) = 0 then
210 if unsigned(iout) = 0 then
std_logic_vector( 3 downto 0) slv4
std_logic_vector( 15 downto 0) slv16
std_logic_vector( 7 downto 0) slv8