3f-fluid fluid lambdas (valid/retry/fire)
Transactional blocks where each input/output carries a valid/retry
handshake; a transaction advances only when .[fire]
(.[valid] and !.[retry]). Callable only from
mod/fluid. The frontend parses the
fluid kind (incl. pub fluid), but nothing lowers
the elastic machinery and no test exercises it.
Failing example (pyrope/verilog pair, sketch)
// finc.prp — combinational fluid stage: handshake passes through
fluid finc(a:u8) -> (r:u9) {
r = a + 1
}
// finc.v — expected mapping (port naming per the fluid ABI to be fixed)
module finc(input [7:0] a, input a_valid, output a_retry,
output [8:0] r, output r_valid, input r_retry);
assign r = a + 1;
assign r_valid = a_valid;
assign a_retry = r_retry;
endmodule
Docs (TBD markers)
- docs/pyrope/06d-fluid.md — chapter TBD admonition
- docs/pyrope/06-functions.md — lambda-kinds list,
fluidbullet - docs/pyrope/15-tbd.md
Done when
The pair LECs (after fixing the handshake ABI), .[fire] gating
and registered fluid stages work, and 06d's examples elaborate. Then drop
the TBD marks in 06d/06/quick-intro.