import java.util.List;
import net.mograsim.logic.core.timeline.Timeline;
+import net.mograsim.logic.core.timeline.TimelineEventHandler;
+import net.mograsim.logic.core.types.BitVector;
import net.mograsim.logic.core.wires.CoreWire;
import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
}
@Override
- public void compute()
+ public TimelineEventHandler compute()
{
int selectValue;
if (!select.hasNumericValue() || (selectValue = (int) select.getUnsignedValue()) >= inputs.length)
{
- out.clearSignals();
- return;
+ return e -> out.clearSignals();
}
- ReadEnd active = inputs[selectValue];
- out.feedSignals(active.getValues());
+ BitVector activeValues = inputs[selectValue].getValues();
+ return e -> out.feedSignals(activeValues);
}
@Override