Cocoa lets you write synthesizable state machines as straightforward
initial
processes, unifying low-level RTL with high-level functional models. The
transpiler emits traditional state machines — zero hardware overhead,
no simulation drift, no leaving SystemVerilog.
Drive a payload onto the channel and release it once the consumer accepts.
Cocoa emits the same registers and case statement a careful engineer would, so area and Fmax match hand-written RTL.
initial processes are already legal SystemVerilog. Source RTL and transpiled output agree cycle-for-cycle in simulation.
Run it as a preprocessor next to your linter. Outputs vanilla SystemVerilog-2017 — no new language, runtime, or complex tooling.