import java.util.List;\r
\r
import era.mi.logic.Bit;\r
import era.mi.logic.components.BasicComponent;\r
import era.mi.logic.wires.WireArray;\r
import java.util.List;\r
\r
import era.mi.logic.Bit;\r
import era.mi.logic.components.BasicComponent;\r
import era.mi.logic.wires.WireArray;\r
\r
public abstract class MultiInputGate extends BasicComponent\r
{\r
protected WireArray[] in;\r
protected WireArray out;\r
\r
public abstract class MultiInputGate extends BasicComponent\r
{\r
protected WireArray[] in;\r
protected WireArray out;\r
protected MultiInputGate(int processTime, Operation op, WireArray out, WireArray... in)\r
{\r
super(processTime);\r
this.op = op;\r
length = out.length;\r
this.in = in.clone();\r
protected MultiInputGate(int processTime, Operation op, WireArray out, WireArray... in)\r
{\r
super(processTime);\r
this.op = op;\r
length = out.length;\r
this.in = in.clone();\r
result = op.execute(result, in[i].getValues());\r
outI.feedSignals(result);\r
}\r
result = op.execute(result, in[i].getValues());\r
outI.feedSignals(result);\r
}\r
protected interface Operation\r
{\r
public Bit[] execute(Bit[] a, Bit[] b);\r
protected interface Operation\r
{\r
public Bit[] execute(Bit[] a, Bit[] b);\r