REGIO_COMPILE_TIME : std_logic_vector(31 downto 0) := x"00000000";
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,c_I2C,c_XDNA
+ REGIO_USE_1WIRE_INTERFACE : integer := c_YES; --c_YES,c_NO,c_MONITOR,c_I2C,c_XDNA,C_I2C_TC
REGIO_USE_VAR_ENDPOINT_ID : integer range c_NO to c_YES := c_NO;
CLOCK_FREQUENCY : integer range 1 to 200 := 100;
USE_GBE : integer range 0 to 1 := c_YES
STAT_ADDR_DEBUG => STAT_ADDR_DEBUG
);
gen_no1wire : if REGIO_USE_1WIRE_INTERFACE = c_NO generate
- ONEWIRE_DATA <= REGIO_IDRAM_DATA_IN;
- ONEWIRE_ADDR <= REGIO_IDRAM_ADDR_IN;
- ONEWIRE_WRITE <= REGIO_IDRAM_WR_IN;
- REGIO_IDRAM_DATA_OUT <= buf_IDRAM_DATA_OUT;
- REGIO_ONEWIRE_INOUT <= '0';
+ ONEWIRE_DATA <= REGIO_IDRAM_DATA_IN;
+ ONEWIRE_ADDR <= REGIO_IDRAM_ADDR_IN;
+ ONEWIRE_WRITE <= REGIO_IDRAM_WR_IN;
+ REGIO_IDRAM_DATA_OUT <= buf_IDRAM_DATA_OUT;
+ REGIO_ONEWIRE_INOUT <= '0';
REGIO_ONEWIRE_MONITOR_OUT <= '0';
end generate;
gen_1wire : if REGIO_USE_1WIRE_INTERFACE = c_YES generate
-
REGIO_IDRAM_DATA_OUT <= (others => '0');
- STAT_ONEWIRE <= buf_stat_onewire;
+ STAT_ONEWIRE <= buf_stat_onewire;
onewire_interface : trb_net_onewire
generic map(
);
end generate;
gen_1wire_monitor : if REGIO_USE_1WIRE_INTERFACE = c_MONITOR generate
+
REGIO_IDRAM_DATA_OUT <= (others => '0');
REGIO_ONEWIRE_MONITOR_OUT <= '0';
);
end generate;
gen_i2c : if REGIO_USE_1WIRE_INTERFACE = c_I2C generate
+
REGIO_ONEWIRE_MONITOR_OUT <= '0';
REGIO_ONEWIRE_INOUT <= '0';
+
i2c_interface : trb_net_i2cwire
generic map(
USE_TEMPERATURE_READOUT => c_YES,
STAT => buf_stat_onewire
);
end generate;
+ gen_i2c_tomcat : if REGIO_USE_1WIRE_INTERFACE = c_I2C_TC generate
+
+ REGIO_ONEWIRE_MONITOR_OUT <= '0';
+ REGIO_ONEWIRE_INOUT <= '0';
+
+ i2c_interface2 : trb_net_i2cwire2
+ generic map(
+ USE_TEMPERATURE_READOUT => c_YES,
+ CLK_PERIOD => 10
+ )
+ port map(
+ CLK => CLK,
+ RESET => RESET,
+ READOUT_ENABLE_IN => '1',
+ --connection to I2C interface
+ SCL_INOUT => I2C_SCL,
+ SDA_INOUT => I2C_SDA,
+ --connection to id ram, according to memory map in TrbNetRegIO
+ DATA_OUT => ONEWIRE_DATA,
+ ADDR_OUT => ONEWIRE_ADDR,
+ WRITE_OUT => ONEWIRE_WRITE,
+ TEMP_OUT => temperature,
+ ID_OUT => unique_id_out_i,
+ STAT => buf_stat_onewire
+ );
+ end generate;
end generate;
end generate;
gentermbuf: if USE_CHANNEL(i) = c_NO generate
end component;\r
\r
\r
+ component trb_net_i2cwire2 is\r
+ generic(\r
+ USE_TEMPERATURE_READOUT : integer range 0 to 1 := 1;\r
+ CLK_PERIOD : integer := 10 --clk period in ns\r
+ );\r
+ port(\r
+ CLK : in std_logic;\r
+ RESET : in std_logic;\r
+ READOUT_ENABLE_IN : in std_logic := '1';\r
+ --connection to I2C interface\r
+ SCL_INOUT : inout std_logic;\r
+ SDA_INOUT : inout std_logic;\r
+ --connection to id ram, according to memory map in TrbNetRegIO\r
+ DATA_OUT : out std_logic_vector(15 downto 0);\r
+ ADDR_OUT : out std_logic_vector(2 downto 0);\r
+ WRITE_OUT : out std_logic;\r
+ TEMP_OUT : out std_logic_vector(11 downto 0);\r
+ ID_OUT : out std_logic_vector(63 downto 0);\r
+ STAT : out std_logic_vector(31 downto 0)\r
+ );\r
+ end component;\r
+\r
\r
component trb_net16_ibuf is\r
generic (\r
--Trigger Info
constant TRIG_SUPPRESS_BIT : integer range 0 to 15 := 0;
-
-
-- some basic definitions for the whole network
-----------------------------------------------
-
constant c_DATA_WIDTH : integer := 16;
constant c_NUM_WIDTH : integer := 3;
constant c_MUX_WIDTH : integer := 3; --!!!
-
--assigning channel names
constant c_TRG_LVL1_CHANNEL : integer := 0;
constant c_DATA_CHANNEL : integer := 1;
constant c_FIFO_INFTY : integer := 7;
--simple logic
- constant c_YES : integer := 1;
- constant c_NO : integer := 0;
+ constant c_YES : integer := 1;
+ constant c_NO : integer := 0;
constant c_MONITOR : integer := 2;
- constant c_I2C : integer := 3;
- constant c_XDNA : integer := 4;
+ constant c_I2C : integer := 3;
+ constant c_XDNA : integer := 4;
+ constant c_I2C_TC : integer := 5;
--media interface steering
constant c_IS_UNUSED : integer := 0;