OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [VHDL/] [o8_cpu.vhd] - Diff between revs 252 and 253

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 252 Rev 253
Line 228... Line 228...
--                           and stack pointer as well.
--                           and stack pointer as well.
-- Seth Henry      05/24/20 Removed the Default_Int_Flag, as it is covered by
-- Seth Henry      05/24/20 Removed the Default_Int_Flag, as it is covered by
--                           Supervisor_Mode. If Supervisor_Mode isn't set,
--                           Supervisor_Mode. If Supervisor_Mode isn't set,
--                           code can simply use STP to set the bit
--                           code can simply use STP to set the bit
-- Seth Henry      06/09/20 Added ability to use unsigned index offsets for
-- Seth Henry      06/09/20 Added ability to use unsigned index offsets for
--                           LDO/SDO. Also pipelined the address calculation
--                           LDO/STO. Also pipelined the address calculation
--                           for indexed instructions, reducing the final
--                           for indexed instructions, reducing the final
--                           address generator to a multiplexor fed only by
--                           address generator to a multiplexor fed only by
--                           registers.
--                           registers.
 
 
library ieee;
library ieee;
Line 384... Line 384...
 
 
  -- The original model treated the offset to LDO/STO as a signed value
  -- The original model treated the offset to LDO/STO as a signed value
  --  allowing access to locations -128 to +127 from [Rn+1:Rn]. This isn't
  --  allowing access to locations -128 to +127 from [Rn+1:Rn]. This isn't
  --  always helpful, so the generic allows the CPU to use unsigned math
  --  always helpful, so the generic allows the CPU to use unsigned math
  --  for the offsets. This makes the range 0 to +255 instead.
  --  for the offsets. This makes the range 0 to +255 instead.
 
 
Unsigned_Idx_Offsets : if( Unsigned_Index_Offsets )generate
Unsigned_Idx_Offsets : if( Unsigned_Index_Offsets )generate
  IDX_Offset(15 downto 8)    <= (others => '0');
  IDX_Offset(15 downto 8)    <= (others => '0');
  IDX_Offset(7 downto 0)     <= Operand1;
  IDX_Offset(7 downto 0)     <= Operand1;
end generate;
end generate;
 
 

powered by: WebSVN 2.1.0

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