Line 123... |
Line 123... |
|
|
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
component i2c_slave_model is
|
component i2c_slave_model is
|
generic
|
generic
|
(
|
(
|
i2c_adr : std_logic_vector(6 downto 0)
|
I2C_ADR : integer
|
);
|
);
|
port
|
port
|
(
|
(
|
scl : inout std_logic;
|
scl : inout std_logic;
|
sda : inout std_logic
|
sda : inout std_logic
|
);
|
);
|
end component i2c_slave_model;
|
end component i2c_slave_model;
|
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
|
|
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
function get_slave_addr(n : natural) return std_logic_vector is
|
function get_slave_addr(n : natural) return natural is
|
variable ret : std_logic_vector(6 downto 0);
|
variable ret : unsigned(6 downto 0);
|
begin
|
begin
|
ret := "010" & std_logic_vector(to_unsigned(n, 4));
|
ret := "010" & to_unsigned(n, 4);
|
return ret;
|
return to_integer(ret);
|
end function get_slave_addr;
|
end function get_slave_addr;
|
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
|
|
signal cs_start : std_logic := '0';
|
signal cs_start : std_logic := '0';
|
signal cs_busy : std_logic;
|
signal cs_busy : std_logic;
|
Line 262... |
Line 262... |
|
|
----------------------------------------------------------------------------
|
----------------------------------------------------------------------------
|
i2c_slave_model_inst0 : i2c_slave_model
|
i2c_slave_model_inst0 : i2c_slave_model
|
generic map
|
generic map
|
(
|
(
|
i2c_adr => get_slave_addr(i)
|
I2C_ADR => get_slave_addr(i)
|
)
|
)
|
port map
|
port map
|
(
|
(
|
scl => scl(i),
|
scl => scl(i),
|
sda => sda(i)
|
sda => sda(i)
|