Line 35... |
Line 35... |
-- signals in the ALU and PC records.
|
-- signals in the ALU and PC records.
|
-- Seth Henry 03/17/20 Added new subtype and constants for external
|
-- Seth Henry 03/17/20 Added new subtype and constants for external
|
-- GP flags.
|
-- GP flags.
|
-- Seth Henry 03/18/20 Added the ceil_log2 function, since it is used in
|
-- Seth Henry 03/18/20 Added the ceil_log2 function, since it is used in
|
-- memory sizing calculations.
|
-- memory sizing calculations.
|
|
-- Seth Henry 04/09/20 Added the I bit to the exported flags for use in
|
|
-- memory protection schemes.
|
|
|
library ieee;
|
library ieee;
|
use ieee.std_logic_1164.all;
|
use ieee.std_logic_1164.all;
|
use ieee.std_logic_arith.all;
|
use ieee.std_logic_arith.all;
|
|
|
Line 61... |
Line 63... |
subtype ADDRESS_TYPE is std_logic_vector(OPEN8_ADDR_WIDTH - 1 downto 0);
|
subtype ADDRESS_TYPE is std_logic_vector(OPEN8_ADDR_WIDTH - 1 downto 0);
|
subtype DATA_TYPE is std_logic_vector(OPEN8_DATA_WIDTH - 1 downto 0);
|
subtype DATA_TYPE is std_logic_vector(OPEN8_DATA_WIDTH - 1 downto 0);
|
-- Note: INTERRUPT_BUNDLE must be exactly the same width as DATA_TYPE
|
-- Note: INTERRUPT_BUNDLE must be exactly the same width as DATA_TYPE
|
subtype INTERRUPT_BUNDLE is DATA_TYPE;
|
subtype INTERRUPT_BUNDLE is DATA_TYPE;
|
|
|
subtype EXT_GP_FLAGS is std_logic_vector(3 downto 0);
|
subtype EXT_GP_FLAGS is std_logic_vector(4 downto 0);
|
|
|
constant EXT_GP4 : integer := 0;
|
constant EXT_ISR : integer := 0;
|
constant EXT_GP5 : integer := 1;
|
constant EXT_GP4 : integer := 1;
|
constant EXT_GP6 : integer := 2;
|
constant EXT_GP5 : integer := 2;
|
constant EXT_GP7 : integer := 3;
|
constant EXT_GP6 : integer := 3;
|
|
constant EXT_GP7 : integer := 4;
|
|
|
constant OPEN8_NULLBUS : DATA_TYPE := x"00";
|
constant OPEN8_NULLBUS : DATA_TYPE := x"00";
|
|
|
-- Component declaration
|
-- Component declaration
|
-- (assumes a 1K RAM at 0x0000 and ROM at the top of the memory map)
|
-- (assumes a 1K RAM at 0x0000 and ROM at the top of the memory map)
|