X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=cpu%2Fsrc%2Fextension_pkg.vhd;h=da172cc13dda76fb86af1f557d22fae31f0954e5;hb=4d230c21bb8c9c23c3dd3349f8736b84987eab0d;hp=49d5cdbae5e214369faa08c6ef33130a6cca6f6d;hpb=2271e17a13449f5e4f590cca7dc9c1c2992cb30c;p=calu.git diff --git a/cpu/src/extension_pkg.vhd b/cpu/src/extension_pkg.vhd index 49d5cdb..da172cc 100644 --- a/cpu/src/extension_pkg.vhd +++ b/cpu/src/extension_pkg.vhd @@ -4,19 +4,19 @@ use IEEE.std_logic_1164.all; use IEEE.numeric_std.all; use work.common_pkg.all; -use work.alu_pkg.all; -use work.gpm_pkg.all; +--use work.alu_pkg.all; +--use work.gpm_pkg.all; package extension_pkg is constant EXTWORDL : integer := log2c(4); constant BYTEADDR : integer := log2c(4); -constant PCOUNT : integer := log2c(4); +constant PCOUNT : integer := 3; constant EXTWORDS : integer := EXTWORDL + BYTEADDR; subtype ext_addrid_t is std_logic_vector(gp_register_t'high - EXTWORDS downto 0); subtype ext_addr_t is std_logic_vector((gp_register_t'high-BYTEADDR) downto 0); -subtype pointer_count is std_logic_vector(PCOUNT-1 downto 0); +subtype paddr_t is std_logic_vector(log2c(PCOUNT)-1 downto 0); type extmod_rec is record sel : std_logic; @@ -27,13 +27,19 @@ subtype pointer_count is std_logic_vector(PCOUNT-1 downto 0); end record; - +type status_rec is record + zero : std_logic; + oflo : std_logic; + sign : std_logic; + carry : std_logic; +end record; constant EXT_7SEG_ADDR: ext_addrid_t := x"FFFFFFA"; constant EXT_EXTMEM_ADDR: ext_addrid_t := x"FFFFFFB"; constant EXT_TIMER_ADDR: ext_addrid_t := x"FFFFFFC"; constant EXT_AC97_ADDR: ext_addrid_t := x"FFFFFFD"; -constant EXT_UART_ADDR: ext_addrid_t := x"FFFFFFE"; +-- constant EXT_UART_ADDR: ext_addrid_t := x"FFFFFFE"; +constant EXT_UART_ADDR: ext_addrid_t := x"0000100"; constant EXT_GPMP_ADDR: ext_addrid_t := x"FFFFFFF"; component extension_gpm is @@ -46,15 +52,18 @@ constant EXT_GPMP_ADDR: ext_addrid_t := x"FFFFFFF"; --System inputs clk : in std_logic; reset : in std_logic; - -- Standartinterface + -- general extension interface ext_reg : in extmod_rec; - data_out : out gp_register_t; + data_out : out gp_register_t; -- Input - alu_nxt : in alu_result_rec; + psw_nxt : in status_rec; + paddr : in paddr_t; + pinc : in std_logic; + pwr_en : in std_logic; -- Ouput - psw : out status_rec - - + psw : out status_rec; + pval : out gp_register_t; + pval_nxt : out gp_register_t ); end component extension_gpm;