chronon::AsyncFifoCircuit
#include <AsyncFifo.hpp>
Public Classes
| Name | |
|---|---|
| struct | State |
| struct | Commit |
Public Types
| Name | |
|---|---|
| using CdcPacket< T > | Packet |
Public Functions
| Name | |
|---|---|
| bool | tryWrite(Packet && packet) |
| uint64_t | transactionAt(uint64_t binary) const Diagnostic identity only, never consulted by hardware control decisions. |
| std::optional< Packet > | take() |
| State | state() const |
| bool | requestRead() |
| uint64_t | pointerMask() const |
| bool | outputValid() const |
| bool | edgeActive() const |
| bool | drained() const |
| size_t | depth() const |
| Commit | commit(bool trace_visibility =false) |
| bool | canWrite() const |
| bool | canRead() const |
| void | beginEdges(bool write_edge, bool read_edge) |
| AsyncFifoCircuit(AsyncFifoConfig config ={}) |
Detailed Description
template <typename T >
class chronon::AsyncFifoCircuit;
Finite dual-clock circuit, independent of the scheduler. All state is private and owned here. beginEdges snapshots pre-edge remote Gray pointers; commit updates both domains from those snapshots (nonblocking-assignment semantics).
Public Types Documentation
using Packet
using chronon::sender::AsyncFifoCircuit< T >::Packet = CdcPacket<T>;
Public Functions Documentation
function tryWrite
inline bool tryWrite(
Packet && packet
)
function transactionAt
inline uint64_t transactionAt(
uint64_t binary
) const
Diagnostic identity only, never consulted by hardware control decisions.
function take
inline std::optional< Packet > take()
function state
inline State state() const
function requestRead
inline bool requestRead()
function pointerMask
inline uint64_t pointerMask() const
function outputValid
inline bool outputValid() const
function edgeActive
inline bool edgeActive() const
function drained
inline bool drained() const
function depth
inline size_t depth() const
function commit
inline Commit commit(
bool trace_visibility =false
)
function canWrite
inline bool canWrite() const
function canRead
inline bool canRead() const
function beginEdges
inline void beginEdges(
bool write_edge,
bool read_edge
)
function AsyncFifoCircuit
inline explicit AsyncFifoCircuit(
AsyncFifoConfig config ={}
)
Updated on 2026-09-20 at 14:23:39 +0000