Look at https://si2.epfl.ch/~demichel/publications/archive/2021/3Input.pdf, and introduce following operations that look useful.
synth.onehot (n input)
synth.mux_inv (3 input)
synth.majority (2*n+1 input)
Note that synth.majority is re-introduction of synth.mig.maj_inv but this time
the operation is simply one of 3-input logic operations, and is not considered as a primary target of homogeneous logic representation. So three shouldn't be no concern from the patent perspective (see #10152). Though we have to make sure not to introduce mig specific optimizations (specifically algebraic rewriting etc).
The addition of these operations can be done in a declarative way using BooleanLogicOpInterface.
Look at https://si2.epfl.ch/~demichel/publications/archive/2021/3Input.pdf, and introduce following operations that look useful.
Note that
synth.majorityis re-introduction ofsynth.mig.maj_invbut this timethe operation is simply one of 3-input logic operations, and is not considered as a primary target of homogeneous logic representation. So three shouldn't be no concern from the patent perspective (see #10152). Though we have to make sure not to introduce mig specific optimizations (specifically algebraic rewriting etc).
The addition of these operations can be done in a declarative way using BooleanLogicOpInterface.