OpenCores
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/VHDL
    from Rev 247 to Rev 248
    Reverse comparison

Rev 247 → Rev 248

/o8_cpu.vhd
82,10 → 82,10
-- : protection by preventing errant code execution from
-- : inadvertently entering an interrupt state.
-- :
-- : 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;
-- : 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_Interrupt_Mask sets the intial/reset value of the
-- : interrupt mask. To remain true to the original core, which
226,6 → 226,9
-- 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;
249,7 → 252,6
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
);
1004,7 → 1006,7
Regfile(i) <= x"00";
end loop;
Flags <= x"00";
if( Default_Int_Flag )then
if( Supervisor_Mode )then
Flags(PSR_I) <= '1';
end if;
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.