pub const MUL_FUNC_F: &str = r#" // The integer multiplies (MulHiU, MulOvfS) run on the engine's multiplier unit (ST_MU..ST_MUW); every other
// integer func code that reaches here answers 0.
function signed [63:0] func_f(input [7:0] op, input signed [63:0] a, input signed [63:0] x);
begin
func_f = 64'sd0;
end
endfunction
"#;Expand description
The combinational func_f for the over-the-wire SoC: no integer func code computes here. DivS/ModS/FloorDivS/Pow
(codes 0–3) run on the engine’s sequential datapath (wpe_soc_template.v st==6, a magnitude-restoring divider and
a repeat-multiply), MulHiU (4) and MulOvfS (12) on its multiplier unit (ST_MU..ST_MUW), and the float lane on the
FPU, so no multiply or divide shares a cycle with the cell walk. Shared by all three SoC engines
(behavioral/synth/hw) so they agree byte-for-byte; the sequencing and results are proven ≡ FuncUnit::eval
(== the VM) under iverilog.