package era.mi.logic.components;\r
\r
-import era.mi.logic.types.Bit;\r
+import era.mi.logic.types.BitVector;\r
import era.mi.logic.wires.Wire;\r
import era.mi.logic.wires.Wire.WireEnd;\r
import era.mi.logic.wires.WireObserver;\r
\r
protected void compute()\r
{\r
+ BitVector inputBits = input.getValues();\r
int startIndex = 0;\r
- Bit[] inputBits = input.getValues();\r
for (int i = 0; i < outputs.length; i++)\r
{\r
- Bit[] outputBits = new Bit[outputs[i].length()];\r
- System.arraycopy(inputBits, startIndex, outputBits, 0, outputs[i].length());\r
- outputs[i].feedSignals(outputBits);\r
+ outputs[i].feedSignals(inputBits.subVector(startIndex, startIndex + outputs[i].length()));\r
startIndex += outputs[i].length();\r
}\r
}\r
\r
@Override\r
- public void update(Wire initiator, Bit[] oldValues)\r
+ public void update(Wire initiator, BitVector oldValues)\r
{\r
compute();\r
}\r