Line 55... |
Line 55... |
--end if_stage_rtl;
|
--end if_stage_rtl;
|
|
|
-- This is a simple hardcoded IF unit for the RISE processor. It does not
|
-- This is a simple hardcoded IF unit for the RISE processor. It does not
|
-- use the memory and contains a hardcoded programm.
|
-- use the memory and contains a hardcoded programm.
|
architecture if_state_behavioral of if_stage is
|
architecture if_state_behavioral of if_stage is
|
signal if_id_register_int : IF_ID_REGISTER_T;
|
signal if_id_register_int : IF_ID_REGISTER_T := ( others => ( others => '0' ) );
|
signal if_id_register_next : IF_ID_REGISTER_T;
|
signal if_id_register_next : IF_ID_REGISTER_T := ( others => ( others => '0' ) );
|
|
|
begin
|
begin
|
if_id_register <= if_id_register_int;
|
if_id_register <= if_id_register_int;
|
|
|
process (clk, reset, clear_in)
|
process (clk, reset, clear_in)
|
Line 77... |
Line 77... |
|
|
process (reset, branch, branch_target, pc, clear_in)
|
process (reset, branch, branch_target, pc, clear_in)
|
begin
|
begin
|
if reset = '0' or clear_in = '1' then
|
if reset = '0' or clear_in = '1' then
|
if_id_register_next.pc <= PC_RESET_VECTOR;
|
if_id_register_next.pc <= PC_RESET_VECTOR;
|
|
pc_next <= PC_RESET_VECTOR;
|
else
|
else
|
if_id_register_next.pc <= pc;
|
if_id_register_next.pc <= pc;
|
if branch = '1' then
|
if branch = '1' then
|
pc_next <= branch_target;
|
pc_next <= branch_target;
|
else
|
else
|