Livt packages

Livt.IO

Version 1.8.1

Memory, UART, I2C, SPI, and Ethernet input/output components for Livt hardware designs.

Published files (126)

src/i2c/II2CBus.lvt

namespace Livt.IO

/**
 * Open-drain I2C bus contract.
 *
 * The bus provider exposes the observed line levels through `scl` and `sda`.
 * Devices request a low drive through `*_drive_low`; releasing a line is encoded
 * by writing `0b0` to the drive-low field.
 */
interface I2CBus
{
	// Observed line levels supplied by the bus provider.
	scl: out logic
	sda: out logic

	// Device requests: one pulls the line low, zero releases it.
	scl_drive_low: in logic
	sda_drive_low: in logic
}