Source code for hwtLib.peripheral.i2c.intf

from hwt.interfaces.tristate import TristateClk, TristateSig
from hwt.simulator.agentBase import AgentWitReset
from hwt.synthesizer.interface import Interface
from ipCorePackager.intfIpMeta import IntfIpMeta
from hwtSimApi.agents.peripheral.i2c import I2cAgent
from hwtSimApi.hdlSimulator import HdlSimulator


[docs]class I2c(Interface): """ I2C interface also known as IIC, TWI or Two Wire If interface is outside of chip it needs pull-up resistors .. hwt-autodoc:: """ def _declr(self): self.scl = TristateClk() # serial clk self.sda = TristateSig() # serial data
[docs] def _getIpCoreIntfClass(self): return IP_IIC
[docs] def _initSimAgent(self, sim: HdlSimulator): scl = self.scl sda = self.sda rst = AgentWitReset._discoverReset(self, allowNoReset=True) self._ag = I2cAgent( sim, (scl, sda), rst)
[docs]class IP_IIC(IntfIpMeta):
[docs] def __init__(self): super().__init__() self.name = "iic" self.version = "1.0" self.vendor = "xilinx.com" self.library = "interface" self.map = {"scl": {"t": "SCL_T", "i": "SCL_I", "o": "SCL_O"}, "sda": {"t": "SDA_T", "i": "SDA_I", "o": "SDA_O"} }