REGIO_INIT_BOARD_INFO : std_logic_vector(31 downto 0) := x"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_INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
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;
INIT_BOARD_INFO => REGIO_INIT_BOARD_INFO,
INIT_UNIQUE_ID => REGIO_INIT_UNIQUE_ID,
COMPILE_TIME => REGIO_COMPILE_TIME,
- COMPILE_VERSION => REGIO_COMPILE_VERSION,
+ INCLUDED_FEATURES => REGIO_INCLUDED_FEATURES,
HARDWARE_VERSION => REGIO_HARDWARE_VERSION,
CLOCK_FREQ => CLOCK_FREQUENCY
)
STAT_DEBUG_1 <= (others => '0');
-end architecture;
\ No newline at end of file
+end architecture;
REGIO_INIT_BOARD_INFO : std_logic_vector(31 downto 0) := x"1111_2222";
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(63 downto 0) := (others => '0');
+ REGIO_INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
REGIO_HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";
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;
INIT_UNIQUE_ID => REGIO_INIT_UNIQUE_ID,
INIT_ENDPOINT_ID => REGIO_INIT_ENDPOINT_ID,
COMPILE_TIME => REGIO_COMPILE_TIME,
- COMPILE_VERSION => REGIO_COMPILE_VERSION,
+ INCLUDED_FEATURES => REGIO_INCLUDED_FEATURES,
HARDWARE_VERSION => REGIO_HARDWARE_VERSION,
CLOCK_FREQ => CLOCK_FREQUENCY
)
REGIO_INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := x"1000_2000_3654_4876";
REGIO_INIT_BOARD_INFO : std_logic_vector(31 downto 0) := x"1111_2222";
REGIO_INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";
- REGIO_COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');
+ REGIO_INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
REGIO_HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";
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;
INIT_UNIQUE_ID => REGIO_INIT_UNIQUE_ID,
INIT_ENDPOINT_ID => REGIO_INIT_ENDPOINT_ID,
COMPILE_TIME => REGIO_COMPILE_TIME,
- COMPILE_VERSION => REGIO_COMPILE_VERSION,
+ INCLUDED_FEATURES => REGIO_INCLUDED_FEATURES,
HARDWARE_VERSION => REGIO_HARDWARE_VERSION,
CLOCK_FREQ => CLOCK_FREQUENCY
)
x"00000000_00000000_00007077_00000000" &
x"FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF";
COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";
- COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');
+ INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";
USE_VAR_ENDPOINT_ID : integer range c_NO to c_YES := c_NO;
HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";
INIT_UNIQUE_ID => INIT_UNIQUE_ID,
INIT_ENDPOINT_ID => INIT_ENDPOINT_ID,
COMPILE_TIME => COMPILE_TIME,
- COMPILE_VERSION => COMPILE_VERSION,
+ INCLUDED_FEATURES => INCLUDED_FEATURES,
HARDWARE_VERSION => HARDWARE_VERSION,
CLOCK_FREQ => CLOCK_FREQUENCY
)
x"00000000_00000000_000050FF_00000000" &
x"FFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFF";
COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";
- COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');
+ INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";
USE_VAR_ENDPOINT_ID : integer range c_NO to c_YES := c_NO;
HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";
INIT_ADDRESS : std_logic_vector(15 downto 0) := x"F004";
INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := (others => '0');
COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";
- COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');
+ INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";
INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";
BROADCAST_BITMASK : std_logic_vector(7 downto 0) := x"7E";
INIT_ADDRESS : std_logic_vector(15 downto 0) := x"F004";
INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := (others => '0');
COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";
- COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');
+ INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";
INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";
BROADCAST_BITMASK : std_logic_vector(7 downto 0) := x"7E";
INIT_ADDRESS : std_logic_vector(15 downto 0) := x"F3C0";
INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := (others => '0');
COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";
- COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');
+ INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"9000CE00";
INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0005";
BROADCAST_BITMASK : std_logic_vector(7 downto 0) := x"7E";
INIT_ADDRESS : std_logic_vector(15 downto 0) := x"F004";
INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := (others => '0');
COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";
- COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');
+ INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";
INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";
BROADCAST_BITMASK : std_logic_vector(7 downto 0) := x"7E";
INIT_ADDRESS => INIT_ADDRESS,
INIT_UNIQUE_ID => INIT_UNIQUE_ID,
COMPILE_TIME => COMPILE_TIME,
- COMPILE_VERSION => COMPILE_VERSION,
+ INCLUDED_FEATURES => INCLUDED_FEATURES,
HARDWARE_VERSION => HARDWARE_VERSION,
HUB_CTRL_BROADCAST_BITMASK => BROADCAST_BITMASK,
CLOCK_FREQUENCY => CLOCK_FREQUENCY,
INIT_ADDRESS : std_logic_vector(15 downto 0) := x"F004";
INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := (others => '0');
COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";
- COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');
+ INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";
INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";
BROADCAST_BITMASK : std_logic_vector(7 downto 0) := x"7E";
INIT_ADDRESS => INIT_ADDRESS,
INIT_UNIQUE_ID => INIT_UNIQUE_ID,
COMPILE_TIME => COMPILE_TIME,
- COMPILE_VERSION => COMPILE_VERSION,
+ INCLUDED_FEATURES => INCLUDED_FEATURES,
HARDWARE_VERSION => HARDWARE_VERSION,
HUB_CTRL_BROADCAST_BITMASK => BROADCAST_BITMASK,
CLOCK_FREQUENCY => CLOCK_FREQUENCY,
INIT_ADDRESS : std_logic_vector(15 downto 0) := x"F3C0";
INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := (others => '0');
COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";
- COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');
+ INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"9000CE00";
INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0005";
BROADCAST_BITMASK : std_logic_vector(7 downto 0) := x"7E";
INIT_UNIQUE_ID => INIT_UNIQUE_ID,
INIT_CTRL_REGS => INIT_CTRL_REGS,
COMPILE_TIME => COMPILE_TIME,
- COMPILE_VERSION => COMPILE_VERSION,
+ INCLUDED_FEATURES => INCLUDED_FEATURES,
HARDWARE_VERSION => HARDWARE_VERSION,
HUB_CTRL_BROADCAST_BITMASK => BROADCAST_BITMASK,
CLOCK_FREQUENCY => CLOCK_FREQUENCY,
USED_CTRL_REGS : std_logic_vector(2**(4)-1 downto 0) := (others => '1');
--set to 0 for each unused bit in a register
USED_CTRL_BITMASK : std_logic_vector(2**(4)*32-1 downto 0) := (others => '1');
- USE_DAT_PORT : integer range 0 to 1 := c_YES; --internal data port
- INIT_ADDRESS : std_logic_vector(15 downto 0) := x"FFFF";
- INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := x"1000_2000_3654_4876";
- INIT_BOARD_INFO : std_logic_vector(31 downto 0) := x"1111_2222";
- INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";
+ USE_DAT_PORT : integer range 0 to 1 := c_YES; --internal data port
+ INIT_ADDRESS : std_logic_vector(15 downto 0) := x"FFFF";
+ INIT_UNIQUE_ID : std_logic_vector(63 downto 0) := x"1000_2000_3654_4876";
+ INIT_BOARD_INFO : std_logic_vector(31 downto 0) := x"1111_2222";
+ INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";
COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000"; --not used any more!
- COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');
+ INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');
HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";
CLOCK_FREQ : integer range 1 to 200 := 100 --MHz
);
generic map(
INIT0 => COMPILE_TIME_LIB(15 downto 0),
INIT1 => COMPILE_TIME_LIB(31 downto 16),
- INIT2 => COMPILE_VERSION(15 downto 0),
- INIT3 => COMPILE_VERSION(31 downto 16),
+ INIT2 => INCLUDED_FEATURES(15 downto 0),
+ INIT3 => INCLUDED_FEATURES(31 downto 16),
INIT4 => HARDWARE_VERSION(15 downto 0),
INIT5 => HARDWARE_VERSION(31 downto 16),
- INIT6 => COMPILE_VERSION(47 downto 32),
- INIT7 => COMPILE_VERSION(63 downto 48)
+ INIT6 => INCLUDED_FEATURES(47 downto 32),
+ INIT7 => INCLUDED_FEATURES(63 downto 48)
)
port map(
CLK => CLK,
DEBUG_OUT : out std_logic_vector (31 downto 0)\r
);\r
end component;\r
+ \r
+ \r
+component bus_register_handler is\r
+ generic (\r
+ BUS_LENGTH : integer range 0 to 64 := 2);\r
+ port (\r
+ RESET : in std_logic;\r
+ CLK : in std_logic;\r
+--\r
+ DATA_IN : in std_logic_vector_array_32(0 to BUS_LENGTH);\r
+ READ_EN_IN : in std_logic;\r
+ WRITE_EN_IN : in std_logic;\r
+ ADDR_IN : in std_logic_vector(6 downto 0);\r
+ DATA_OUT : out std_logic_vector(31 downto 0);\r
+ DATAREADY_OUT : out std_logic;\r
+ UNKNOWN_ADDR_OUT : out std_logic\r
+ );\r
+end component; \r
\r
component trb_net_CRC is\r
port(\r
REGIO_INIT_BOARD_INFO : std_logic_vector(31 downto 0) := x"1111_2222";\r
REGIO_INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";\r
REGIO_COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";\r
- REGIO_COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');\r
+ REGIO_INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');\r
REGIO_HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";\r
REGIO_USE_1WIRE_INTERFACE : integer := c_YES; --c_YES,c_NO,c_MONITOR\r
REGIO_USE_VAR_ENDPOINT_ID : integer range c_NO to c_YES := c_NO;\r
REGIO_INIT_BOARD_INFO : std_logic_vector(31 downto 0) := x"1111_2222";\r
REGIO_INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";\r
REGIO_COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";\r
- REGIO_COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');\r
+ REGIO_INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');\r
REGIO_HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";\r
REGIO_USE_1WIRE_INTERFACE : integer := c_YES; --c_YES,c_NO,c_MONITOR\r
REGIO_USE_VAR_ENDPOINT_ID : integer range c_NO to c_YES := c_NO;\r
REGIO_INIT_BOARD_INFO : std_logic_vector(31 downto 0) := x"0000_0000";\r
REGIO_INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";\r
REGIO_COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";\r
- REGIO_COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');\r
+ REGIO_INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');\r
REGIO_HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"50000000";\r
REGIO_USE_1WIRE_INTERFACE : integer := c_YES; --c_YES,c_NO,c_MONITOR\r
REGIO_USE_VAR_ENDPOINT_ID : integer range c_NO to c_YES := c_NO;\r
INIT_BOARD_INFO : std_logic_vector(31 downto 0) := x"1111_2222";\r
INIT_ENDPOINT_ID : std_logic_vector(15 downto 0) := x"0001";\r
COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";\r
- COMPILE_VERSION : std_logic_vector(63 downto 0) := (others => '0');\r
+ INCLUDED_FEATURES : std_logic_vector(63 downto 0) := (others => '0');\r
HARDWARE_VERSION : std_logic_vector(31 downto 0) := x"12345678";\r
CLOCK_FREQ : integer range 1 to 200 := 100 --MHz\r
);\r
--constant VERSION_NUMBER_TIME : std_logic_vector(31 downto 0) := conv_std_logic_vector(1234567890,32);
+ type std_logic_vector_array_36 is array (integer range <>) of std_logic_vector(35 downto 0);
+ type std_logic_vector_array_32 is array (integer range <>) of std_logic_vector(31 downto 0);
+ type std_logic_vector_array_24 is array (integer range <>) of std_logic_vector(23 downto 0);
+ type std_logic_vector_array_11 is array (integer range <>) of std_logic_vector(10 downto 0);
+ type std_logic_vector_array_8 is array (integer range <>) of std_logic_vector(7 downto 0);
+
--function declarations