URL
https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk
Subversion Repositories open8_urisc
Compare Revisions
- This comparison shows the changes necessary to convert path
/open8_urisc/trunk
- from Rev 248 to Rev 247
- ↔ Reverse comparison
Rev 248 → Rev 247
/VHDL/o8_cpu.vhd
82,10 → 82,10
-- : protection by preventing errant code execution from |
-- : inadvertently entering an interrupt state. |
-- : |
-- : This setting also sets I bit at startup so that any |
-- : initialization code may be run in an ISR context, initially |
-- : bypassing memory protection. Init code should clear the I bit |
-- : when done; |
-- : Default_Int_Flag allows the initial state of the I bit to be |
-- : set at startup. If set, initialization code may be run in an |
-- : ISR context, disabling memory protection initially. Init code |
-- : should clear the I bit when done; |
-- : |
-- : Default_Interrupt_Mask sets the intial/reset value of the |
-- : interrupt mask. To remain true to the original core, which |
226,9 → 226,6
-- write protection later. |
-- Seth Henry 05/21/20 Supervisor_Mode now protects the interrupt mask |
-- and stack pointer as well. |
-- Seth Henry 05/24/20 Removed the Default_Int_Flag, as it is covered by |
-- Supervisor_Mode. If Supervisor_Mode isn't set, |
-- code can simply use STP to set the bit |
|
library ieee; |
use ieee.std_logic_1164.all; |
252,6 → 249,7
Sequential_Interrupts : boolean := false; -- Interruptable ISRs |
RTI_Ignores_GP_Flags : boolean := false; -- RTI sets all flags |
Supervisor_Mode : boolean := false; -- I bit is restricted |
Default_Int_Flag : boolean := false; -- Start with I bit set |
Default_Interrupt_Mask : DATA_TYPE := x"FF"; -- Enable all Ints |
Clock_Frequency : real -- Clock Frequency |
); |
1006,7 → 1004,7
Regfile(i) <= x"00"; |
end loop; |
Flags <= x"00"; |
if( Supervisor_Mode )then |
if( Default_Int_Flag )then |
Flags(PSR_I) <= '1'; |
end if; |
|