Line 57... |
Line 57... |
-- from_reg_source_nez, from_reg_source_eqz);
|
-- from_reg_source_nez, from_reg_source_eqz);
|
-- type pc_source_type is (from_inc4, from_inc8, from_reg_source,
|
-- type pc_source_type is (from_inc4, from_inc8, from_reg_source,
|
-- from_opcode25_0, from_branch, from_lbranch);
|
-- from_opcode25_0, from_branch, from_lbranch);
|
begin
|
begin
|
|
|
control_proc: process(opcode, intr_signal)
|
control_proc: process(opcode, intr_signal, pause_in)
|
variable op, func : std_logic_vector(5 downto 0);
|
variable op, func : std_logic_vector(5 downto 0);
|
variable rs, rt, rd : std_logic_vector(5 downto 0);
|
variable rs, rt, rd : std_logic_vector(5 downto 0);
|
variable re, rtx : std_logic_vector(4 downto 0);
|
variable re, rtx : std_logic_vector(4 downto 0);
|
variable imm : std_logic_vector(15 downto 0);
|
variable imm : std_logic_vector(15 downto 0);
|
variable alu_function : alu_function_type;
|
variable alu_function : alu_function_type;
|
Line 403... |
Line 403... |
when "111110" => --3e SDC2
|
when "111110" => --3e SDC2
|
when "111111" => --3f SDC3
|
when "111111" => --3f SDC3
|
when others =>
|
when others =>
|
end case;
|
end case;
|
|
|
if c_source = c_from_null then
|
if c_source = c_from_null or pause_in = '1' then
|
rd := "000000";
|
|
end if;
|
|
|
|
if pause_in = '1' then
|
|
rd := "000000";
|
rd := "000000";
|
end if;
|
end if;
|
|
|
if intr_signal = '1' then
|
if intr_signal = '1' then
|
rs := "111111"; --interrupt vector
|
rs := "111111"; --interrupt vector
|