PoC.io.iic.BusController

The I2C BusController transmitts bits over the I2C bus (SerialClock - SCL, SerialData - SDA) and also receives them. To send/receive words over the I2C bus, use the I2C Controller, which utilizes this controller. This controller is compatible to the System Management Bus (SMBus).

Entity Declaration:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
entity iic_BusController is
  generic (
    CLOCK_FREQ              : FREQ                          := 100 MHz;
    ADD_INPUT_SYNCHRONIZER  : boolean                       := FALSE;
    IIC_BUSMODE             : T_IO_IIC_BUSMODE              := IO_IIC_BUSMODE_STANDARDMODE;     -- 100 kHz
    ALLOW_MEALY_TRANSITION  : boolean                       := TRUE
  );
  port (
    Clock                   : in  std_logic;
    Reset                   : in  std_logic;
    
    Request                 : in  std_logic;
    Grant                   : out std_logic;
    Command                 : in  T_IO_IICBUS_COMMAND;
    Status                  : out T_IO_IICBUS_STATUS;
    
    Serial                  : inout T_IO_IIC_SERIAL
  );
end entity;