// Designs that use these primitives cannot be synthesized. // ANCHOR: std_unsyn_mult_def comb primitive std_unsyn_mult<"share"=1>[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { assign out = left * right; }; // ANCHOR_END: std_unsyn_mult_def comb primitive std_unsyn_div<"share"=1>[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { assign out = left / right; }; comb primitive std_unsyn_mod<"share"=1>[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH) { assign out = left % right; }; comb primitive std_unsyn_smult<"share"=1>[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH){ assign out = $signed(left * right); }; comb primitive std_unsyn_sdiv<"share"=1>[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH){ assign out = $signed(left / right); }; comb primitive std_unsyn_smod<"share"=1>[WIDTH](left: WIDTH, right: WIDTH) -> (out: WIDTH){ assign out = $signed(left % right); };