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/ISynchronousRam.lvt
namespace Livt.IO
/**
* Single-clock, single-port storage with a one-edge read response.
* At each non-reset rising edge, enable accepts exactly one read or write.
* Writes, disabled cycles and invalid addresses hold readData. Reset clears
* readData, suppresses commands and retains cells. Unwritten cells are unspecified.
* GEOMETRY identifies capacity; ADDRESS is its unsigned hardware address type.
*/
interface ISynchronousRam<T, ADDRESS, GEOMETRY>
{
// Consumer-owned command, stable before the accepting edge.
enable: in bool
writeEnable: in bool
address: in ADDRESS
writeData: in T
// Provider-owned response, updated after an accepted read edge.
readData: out T
}