Skip to main content

emit_reversible_alu_core_verilog

Function emit_reversible_alu_core_verilog 

Source
pub fn emit_reversible_alu_core_verilog(width: u32) -> String
Expand description

Emit the LOGOS reversible ALU CORE as synthesizable Verilog — the abelian charge-recovery datapath of the VM: two width-bit registers a,b and a 3-bit opcode selecting RevAdd/RevSub/RevXor/ RevNeg/RevSwap. For every fixed opcode the transition on (a,b) is a BIJECTION, so the whole ALU runs backward with zero erased bits. The 32-bit form place-and-routes on a Lattice ECP5 (ULX3S) via scripts/synth-soft-core.sh (benchmarks/silicon/rev_alu_core.v): 336 LUTs + 64 FFs at ~136 MHz.