Expand description
Transactional cuckoo table, nine true synchronous RAM banks of 64 entries. Transactions are serialized; responses hold until consumed. Reset discards all in-flight work and scrubs every RAM address before accepting another request.
The central invariant is that no request can observe an unfinished eviction. A successful insertion keeps its writes; an exhausted insertion restores every overwritten entry before publishing failure. Holding the response also holds off the next request, which makes the transaction boundary clear.
State encoding: 0 scrub, 1 idle/admit, 2 launch RAM addresses, 3 inspect RAM results, 4 undo one journal entry. New requests launch their RAM addresses on admission. Evicted victims still use state 2 to launch their new address. Reset clears the table; it does not restore a persistent pre-reset snapshot.
Transfers occur on rising edges with valid and ready asserted. Producers retain valid and payload until transfer. Simultaneous lookup/update requests alternate admission preference; a stalled response blocks further admission. Reset suppresses request and response handshakes.
Structs§
- Entry
- One physical RAM entry; key and value are meaningful only while valid.
- Hash
Table - Nine 64-entry synchronous RAM banks with key64/value16 and bounded insertion. Reset scrubs all contents. Failed insertion rolls back before reporting failure.
- Hash
Table In - Requests and response-consumer readiness for the serialized table.
- Hash
Table Out - Admission readiness, held responses, and reset/diagnostic status.
- Lookup
Req - One lookup; hold its fields until
valid && lookup_request_ready. - Lookup
Resp - A held result. A miss always returns value zero; consult
hitto distinguish that miss from a stored zero value. - Registers
- Transaction controller state, including the twelve-entry undo journal.
- Undo
- The old contents of one physical location, recorded before overwriting it. Repeated locations remain separate records because rollback is ordered.
- Update
Req - op=0 upsert, op=1 delete. This is a semantic API, not HLS enum packing.
- Update
Resp - Upsert success means the entry is installed. Delete success means an entry existed. Failed upsert means all eviction writes have already been undone.
Functions§
- hash_
table_ kernel - Advance admission, synchronous RAM access, or one rollback step. Decisions read the registered snapshot; writes describe the next edge.