use of de.neemann.digital.core.flipflops.FlipflopT in project Digital by hneemann.
the class ModelAnalyser method replaceTFF.
private void replaceTFF() throws NodeException, AnalyseException {
List<FlipflopT> tList = model.findNode(FlipflopT.class);
for (FlipflopT tff : tList) {
checkClock(tff);
tff.getClockVal().removeObserver(tff);
ObservableValue q = tff.getOutputs().get(0);
ObservableValue qn = tff.getOutputs().get(1);
ObservableValue enable = tff.getEnableVal();
if (enable == null) {
// create d ff
FlipflopD d = new FlipflopD(tff.getLabel(), q, qn);
d.setInputs(new ObservableValues(qn, getClock()));
model.replace(tff, d);
} else {
// create jk ff
enable.removeObserver(tff);
FlipflopJK jk = new FlipflopJK(tff.getLabel(), q, qn);
jk.setInputs(new ObservableValues(enable, getClock(), enable));
model.replace(tff, jk);
}
}
}
Aggregations