Livt packages
Livt.IO
Version 1.8.1
Memory, UART, I2C, SPI, and Ethernet input/output components for Livt hardware designs.
Published files (126)
- ArrayRam.lvt
- AsynchronousDistributedRam.lvt
- AsynchronousDistributedRam32x16.lvt
- AsynchronousDistributedRam32x32.lvt
- AsynchronousDistributedRam8x64.lvt
- AsynchronousRam.lvt
- BlockRam.lvt
- DistributedRam.lvt
- IAsynchronousRam.lvt
- IRam.lvt
- ISynchronousRam.lvt
- Ram.lvt
- Ram16.lvt
- Ram32.lvt
- RamAccess.lvt
- RamGeometry.lvt
- SequentialRam.lvt
- SynchronousRam.lvt
src/memory/IRam.lvt
namespace Livt.IO
/**
* Scheduled element-addressable memory transactions, independent of capacity.
* Invalid reads return zero; invalid writes do nothing. Valid unwritten cells
* are unspecified. Calls may take multiple cycles and share one storage port.
*/
interface IRam<T>
{
/**
* Reads one element after the transaction has acquired the storage port.
*/
fn Read(address: int) T
/**
* Writes one element and completes after the write has committed.
*/
fn Write(address: int, value: T)
/**
* Reports whether address selects a stored element.
*/
fn IsValidAddress(address: int) bool
}