URL
https://opencores.org/ocsvn/potato/potato/trunk
Subversion Repositories potato
Compare Revisions
- This comparison shows the changes necessary to convert path
/potato
- from Rev 16 to Rev 17
- ↔ Reverse comparison
Rev 16 → Rev 17
/trunk/src/pp_execute.vhd
140,6 → 140,7
|
signal branch : branch_type; |
signal branch_condition : std_logic; |
signal do_jump : std_logic; |
signal jump_target : std_logic_vector(31 downto 0); |
|
signal sr : csr_status_register; |
189,9 → 190,10
badvaddr => exception_vaddr |
) when exception_taken = '1' else exception_context_forwarded; |
|
jump_out <= to_std_logic(branch = BRANCH_JUMP or branch = BRANCH_JUMP_INDIRECT) |
do_jump <= to_std_logic(branch = BRANCH_JUMP or branch = BRANCH_JUMP_INDIRECT) |
or (to_std_logic(branch = BRANCH_CONDITIONAL) and branch_condition) |
or to_std_logic(branch = BRANCH_SRET); |
jump_out <= do_jump; |
jump_target_out <= jump_target; |
|
evec_out <= evec_forwarded; |
311,7 → 313,14
end case; |
end process data_misalign_check; |
|
instr_misalign_check: instr_misaligned <= '1' when jump_target(1 downto 0) /= b"00" else '0'; |
instr_misalign_check: process(jump_target, branch, branch_condition) |
begin |
if jump_target(1 downto 0) /= b"00" and do_jump = '1' then |
instr_misaligned <= '1'; |
else |
instr_misaligned <= '0'; |
end if; |
end process instr_misalign_check; |
|
find_exception_cause: process(decode_exception, decode_exception_cause, mem_op, |
data_misaligned, instr_misaligned, irq_asserted, irq_asserted_num) |