REPLY_CAN_RECEIVE_DATA : channel_config_t := (c_YES,c_YES,c_NO,c_NO);
USE_CHECKSUM : channel_config_t := (c_NO,c_YES,c_YES,c_YES);
APL_WRITE_ALL_WORDS : channel_config_t := (c_NO,c_NO,c_NO,c_NO);
+ ADDRESS_MASK : std_logic_vector(15 downto 0) := x"FFFF";
BROADCAST_BITMASK : std_logic_vector(7 downto 0) := x"FF";
REGIO_NUM_STAT_REGS : integer range 0 to 6 := 2; --log2 of number of status registers
REGIO_NUM_CTRL_REGS : integer range 0 to 6 := 3; --log2 of number of ctrl registers
--standard values for output registers
- REGIO_INIT_CTRL_REGS : std_logic_vector(2**(3)*32-1 downto 0) := (others => '0');
+ REGIO_INIT_CTRL_REGS : std_logic_vector(2**(4)*32-1 downto 0) := (others => '0');
--set to 0 for unused ctrl registers to save resources
- REGIO_USED_CTRL_REGS : std_logic_vector(2**(3)-1 downto 0) := "00000001";
+ REGIO_USED_CTRL_REGS : std_logic_vector(2**(4)-1 downto 0) := x"0001";
--set to 0 for each unused bit in a register
- REGIO_USED_CTRL_BITMASK : std_logic_vector(2**(3)*32-1 downto 0) := (others => '1');
+ REGIO_USED_CTRL_BITMASK : std_logic_vector(2**(4)*32-1 downto 0) := (others => '1');
REGIO_USE_DAT_PORT : integer range 0 to 1 := c_YES; --internal data port
REGIO_INIT_ADDRESS : std_logic_vector(15 downto 0) := x"FFFF";
REGIO_INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := x"0000_0000_0000_0000";
REGIO_INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";
REGIO_COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";
REGIO_COMPILE_VERSION : std_logic_vector(15 downto 0) := x"0001";
- REGIO_HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"00000000";
+ REGIO_HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"50000000";
REGIO_USE_1WIRE_INTERFACE: integer := c_YES; --c_YES,c_NO,c_MONITOR
+ REGIO_USE_VAR_ENDPOINT_ID : integer range c_NO to c_YES := c_NO;
CLOCK_FREQUENCY : integer range 1 to 200 := 100
);
port(
REGIO_COMMON_CTRL_REG_OUT : out std_logic_vector(std_COMCTRLREG*32-1 downto 0);
REGIO_REGISTERS_IN : in std_logic_vector(32*2**(REGIO_NUM_STAT_REGS)-1 downto 0) := (others => '0');
REGIO_REGISTERS_OUT : out std_logic_vector(32*2**(REGIO_NUM_CTRL_REGS)-1 downto 0);
+ COMMON_STAT_REG_STROBE : out std_logic_vector(std_COMSTATREG-1 downto 0);
+ COMMON_CTRL_REG_STROBE : out std_logic_vector(std_COMCTRLREG-1 downto 0);
+ STAT_REG_STROBE : out std_logic_vector(2**(REGIO_NUM_STAT_REGS)-1 downto 0);
+ CTRL_REG_STROBE : out std_logic_vector(2**(REGIO_NUM_CTRL_REGS)-1 downto 0);
+ --following ports only used when using internal data port
REGIO_ADDR_OUT : out std_logic_vector(16-1 downto 0);
REGIO_READ_ENABLE_OUT : out std_logic;
REGIO_WRITE_ENABLE_OUT : out std_logic;
REGIO_ONEWIRE_INOUT : inout std_logic;
REGIO_ONEWIRE_MONITOR_OUT : out std_logic;
REGIO_ONEWIRE_MONITOR_IN : in std_logic;
- TRIGGER_MONITOR_IN : in std_logic; --strobe when timing trigger received
+ REGIO_VAR_ENDPOINT_ID : in std_logic_vector(15 downto 0) := (others => '0');
+ TRIGGER_MONITOR_IN : in std_logic := '0'; --strobe when timing trigger received
GLOBAL_TIME_OUT : out std_logic_vector(31 downto 0); --global time, microseconds
LOCAL_TIME_OUT : out std_logic_vector(7 downto 0); --local time running with chip frequency
TIME_SINCE_LAST_TRG_OUT : out std_logic_vector(31 downto 0); --local time, resetted with each trigger
USED_CTRL_BITMASK => REGIO_USED_CTRL_BITMASK,
USE_DAT_PORT => REGIO_USE_DAT_PORT,
INIT_ADDRESS => REGIO_INIT_ADDRESS,
+ INIT_BOARD_INFO => REGIO_INIT_BOARD_INFO,
INIT_UNIQUE_ID => REGIO_INIT_UNIQUE_ID,
COMPILE_TIME => REGIO_COMPILE_TIME,
COMPILE_VERSION => REGIO_COMPILE_VERSION,
--Custom Register in / out
REGISTERS_IN => REGIO_REGISTERS_IN,
REGISTERS_OUT => REGIO_REGISTERS_OUT,
+ COMMON_STAT_REG_STROBE => COMMON_STAT_REG_STROBE,
+ COMMON_CTRL_REG_STROBE => COMMON_CTRL_REG_STROBE,
+ STAT_REG_STROBE => STAT_REG_STROBE,
+ CTRL_REG_STROBE => CTRL_REG_STROBE,
--following ports only used when no internal register is accessed
DAT_ADDR_OUT => REGIO_ADDR_OUT,
DAT_READ_ENABLE_OUT => REGIO_READ_ENABLE_OUT,
STAT_DEBUG_1 <= (others => '0');
-
-
-
-
-
-end architecture;
-
-
-
-
-
-
-
-
-
-
-
-
+end architecture;
\ No newline at end of file