summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
28bd84e)
Was inverted when read before wireTravelTime elapsed
import net.mograsim.logic.core.timeline.Timeline;
import net.mograsim.logic.core.timeline.TimelineEvent;
import net.mograsim.logic.core.timeline.TimelineEventHandler;
import net.mograsim.logic.core.timeline.Timeline;
import net.mograsim.logic.core.timeline.TimelineEvent;
import net.mograsim.logic.core.timeline.TimelineEventHandler;
-import net.mograsim.logic.core.types.Bit;
+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;
import net.mograsim.logic.core.wires.CoreWire;
import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
public class CoreClock extends CoreComponent implements TimelineEventHandler, LogicObservable
{
private Collection<LogicObserver> observers;
public class CoreClock extends CoreComponent implements TimelineEventHandler, LogicObservable
{
private Collection<LogicObserver> observers;
- private boolean toggle = false;
+ private boolean isOn = true;// first update switches to 0
private ReadWriteEnd out;
private int delta;
private ReadWriteEnd out;
private int delta;
public void handle(TimelineEvent e)
{
addToTimeline();
public void handle(TimelineEvent e)
{
addToTimeline();
- out.feedSignals(toggle ? Bit.ONE : Bit.ZERO);
- toggle = !toggle;
+ isOn = !isOn;
+ out.feedSignals(getOutValues());
- public ReadWriteEnd getOut()
+ public BitVector getOutValues()
+ return isOn ? BitVector.SINGLE_1 : BitVector.SINGLE_0;
}
public boolean isOn()
{
}
public boolean isOn()
{
}
private void addToTimeline()
}
private void addToTimeline()
{
case "out":
if (clock != null)
{
case "out":
if (clock != null)
- return clock.getOut().getInputValues();
+ return clock.getOutValues();
return null;
default:
throw new IllegalArgumentException("No high level state with ID " + stateID);
return null;
default:
throw new IllegalArgumentException("No high level state with ID " + stateID);