use of de.neemann.digital.core.basic.And in project Digital by hneemann.
the class ModelAnalyser method replaceJKFF.
private void replaceJKFF() throws NodeException, AnalyseException {
List<FlipflopJK> jkList = model.findNode(FlipflopJK.class);
for (FlipflopJK jk : jkList) {
checkClock(jk);
jk.getClockVal().removeObserver(jk);
jk.getjVal().removeObserver(jk);
jk.getkVal().removeObserver(jk);
// create d ff
ObservableValue q = jk.getOutputs().get(0);
ObservableValue qn = jk.getOutputs().get(1);
FlipflopD d = new FlipflopD(jk.getLabel(), q, qn);
And a1 = new And(new ElementAttributes());
a1.setInputs(new ObservableValues(jk.getjVal(), qn));
And a2 = new And(new ElementAttributes());
Not nk = new Not(new ElementAttributes());
nk.setInputs(jk.getkVal().asList());
a2.setInputs(new ObservableValues(nk.getOutput(), q));
Or or = new Or(new ElementAttributes());
or.setInputs(new ObservableValues(a1.getOutput(), a2.getOutput()));
d.setInputs(new ObservableValues(or.getOutputs().get(0), jk.getClockVal()));
model.add(a1);
model.add(a2);
model.add(nk);
model.add(or);
model.replace(jk, d);
}
}
Aggregations