Livt packages

Livt.Collections

Version 1.4.2

Fixed-capacity FIFOs, queues, stacks, circular buffers, lists, and bit sets for Livt hardware.

Published files (62)

src/fifo/IFifoStorage.lvt

namespace Livt.Collections

/**
 * Single-writer, independent combinational-read storage for FIFO datapaths.
 * Writes commit at the inherited context's rising edge outside reset.
 * readData continuously reflects readAddress; there is no read clock or
 * scheduled transaction. The FIFO registers that value in its read domain.
 * Payload cells survive reset; unwritten contents are unspecified.
 * Addresses are valid unsigned element indices in GEOMETRY's capacity.
 * The consumer prevents simultaneous access to the same cell. The provider
 * is exclusively owned and must not add stalls or registered read latency.
 */
interface IFifoStorage<T, GEOMETRY>
{
	// Write-domain command accepted at the rising edge.
	writeEnable: in bool
	writeAddress: in uint
	writeData: in T

	// Independent read tap; registration belongs to the FIFO's read endpoint.
	readAddress: in uint
	readData: out T
}