Line 51... |
Line 51... |
OP1out : in std_logic_vector(31 downto 0);
|
OP1out : in std_logic_vector(31 downto 0);
|
OP2out : in std_logic_vector(31 downto 0);
|
OP2out : in std_logic_vector(31 downto 0);
|
reg_QA : in std_logic_vector(31 downto 0);
|
reg_QA : in std_logic_vector(31 downto 0);
|
reg_QB : in std_logic_vector(31 downto 0);
|
reg_QB : in std_logic_vector(31 downto 0);
|
opcode : in std_logic_vector(15 downto 0);
|
opcode : in std_logic_vector(15 downto 0);
|
-- datatype : in std_logic_vector(1 downto 0);
|
|
exe_opcode : in std_logic_vector(15 downto 0);
|
exe_opcode : in std_logic_vector(15 downto 0);
|
exe_datatype : in std_logic_vector(1 downto 0);
|
exe_datatype : in std_logic_vector(1 downto 0);
|
sndOPC : in std_logic_vector(15 downto 0);
|
sndOPC : in std_logic_vector(15 downto 0);
|
last_data_read : in std_logic_vector(15 downto 0);
|
last_data_read : in std_logic_vector(15 downto 0);
|
data_read : in std_logic_vector(15 downto 0);
|
data_read : in std_logic_vector(15 downto 0);
|
Line 451... |
Line 450... |
bf_exts <= '0';
|
bf_exts <= '0';
|
bf_fffo <= '0';
|
bf_fffo <= '0';
|
bf_d32 <= '0';
|
bf_d32 <= '0';
|
bf_s32 <= '0';
|
bf_s32 <= '0';
|
-- 000-bftst, 001-bfextu, 010-bfchg, 011-bfexts, 100-bfclr, 101-bfff0, 110-bfset, 111-bfins
|
-- 000-bftst, 001-bfextu, 010-bfchg, 011-bfexts, 100-bfclr, 101-bfff0, 110-bfset, 111-bfins
|
|
IF opcode(5 downto 4) ="00" THEN
|
|
bf_s32 <= '1';
|
|
END IF;
|
CASE opcode(10 downto 8) IS
|
CASE opcode(10 downto 8) IS
|
WHEN "010" => bf_bchg <= '1'; --BFCHG
|
WHEN "010" => bf_bchg <= '1'; --BFCHG
|
WHEN "011" => bf_exts <= '1'; --BFEXTS
|
WHEN "011" => bf_exts <= '1'; --BFEXTS
|
-- WHEN "100" => insert <= (OTHERS =>'0'); --BFCLR
|
-- WHEN "100" => insert <= (OTHERS =>'0'); --BFCLR
|
WHEN "101" => bf_fffo <= '1'; --BFFFO
|
WHEN "101" => bf_fffo <= '1'; --BFFFO
|
WHEN "110" => bf_bset <= '1'; --BFSET
|
WHEN "110" => bf_bset <= '1'; --BFSET
|
WHEN "111" => bf_ins <= '1'; --BFINS
|
WHEN "111" => bf_ins <= '1'; --BFINS
|
bf_s32 <= '1';
|
bf_s32 <= '1';
|
WHEN OTHERS => NULL;
|
WHEN OTHERS => NULL;
|
END CASE;
|
END CASE;
|
-- IF
|
|
-- bf_ins <= '1';
|
|
-- END IF;
|
|
IF opcode(4 downto 3)="00" THEN
|
IF opcode(4 downto 3)="00" THEN
|
bf_d32 <= '1';
|
bf_d32 <= '1';
|
END IF;
|
END IF;
|
bf_ext_out <= result(39 downto 32);
|
bf_ext_out <= result(39 downto 32);
|
END IF;
|
END IF;
|