Entity: I2cRegSlave

Diagram

time TPD_G integer range 0 to 1 TENBIT_G integer range 0 to 1023 I2C_ADDR_G integer range 0 to 1 OUTPUT_EN_POLARITY_G integer range 2 to 512 FILTER_G natural ADDR_SIZE_G positive DATA_SIZE_G integer range 0 to 1 ENDIANNESS_G sl sRst sl aRst sl clk slv((8*DATA_SIZE_G)-1 downto 0) rdData i2c_in_type i2ci slv((8*ADDR_SIZE_G)-1 downto 0) addr sl wrEn slv((8*DATA_SIZE_G)-1 downto 0) wrData sl rdEn i2c_out_type i2co

Description


Company : SLAC National Accelerator Laboratory

Description: Implements an I2C slave attached to a generic RAM interface. Protocol is simple: Address of configurable size, followed by data of

configurable size.

This file is part of 'SLAC Firmware Standard Library'. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of 'SLAC Firmware Standard Library', including this file, may be copied, modified, propagated, or distributed except according to

the terms contained in the LICENSE.txt file.

Generics

Generic name Type Value Description
TPD_G time 1 ns
TENBIT_G integer range 0 to 1 0 Generics passed down to I2cSlave
I2C_ADDR_G integer range 0 to 1023 0
OUTPUT_EN_POLARITY_G integer range 0 to 1 0
FILTER_G integer range 2 to 512 4
ADDR_SIZE_G natural 2 in bytes
DATA_SIZE_G positive 1 in bytes
ENDIANNESS_G integer range 0 to 1 0

Ports

Port name Direction Type Description
sRst in sl
aRst in sl
clk in sl
addr out slv((8*ADDR_SIZE_G)-1 downto 0) Front End Ram Interface
wrEn out sl
wrData out slv((8*DATA_SIZE_G)-1 downto 0)
rdEn out sl
rdData in slv((8*DATA_SIZE_G)-1 downto 0)
i2ci in i2c_in_type I2C Signals
i2co out i2c_out_type

Signals

Name Type Description
r RegType
rin RegType
i2cSlaveOut I2cSlaveOutType From i2cSlave
i2cSlaveIn I2cSlaveInType To I2cSlave

Constants

Name Type Value Description
REG_INIT_C RegType ( state => IDLE_S,
byteCnt => (others => '0'),
addr => (others => '0'),
wrEn => '0',
wrData => (others => '0'),
rdEn => '0',
i2cSlaveIn => I2C_SLAVE_IN_INIT_C)

Types

Name Type Description
StateType (IDLE_S,
ADDR_S,
WRITE_DATA_S,
READ_DATA_S)
RegType

Functions

Processes

Instantiations