1 package net.mograsim.logic.core.components.gates;
5 import net.mograsim.logic.core.components.BasicCoreComponent;
6 import net.mograsim.logic.core.timeline.Timeline;
7 import net.mograsim.logic.core.timeline.TimelineEventHandler;
8 import net.mograsim.logic.core.types.BitVector;
9 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
10 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
12 public class CoreNotGate extends BasicCoreComponent
15 private ReadWriteEnd out;
17 public CoreNotGate(Timeline timeline, int processTime, ReadEnd in, ReadWriteEnd out)
19 super(timeline, processTime);
21 in.registerObserver(this);
26 protected TimelineEventHandler compute()
28 BitVector values = in.getValues().not();
29 return e -> out.feedSignals(values);
32 public ReadEnd getIn()
37 public ReadEnd getOut()
43 public List<ReadEnd> getAllInputs()
49 public List<ReadWriteEnd> getAllOutputs()