Search in sources :

Example 1 with FlipflopT

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);
        }
    }
}
Also used : FlipflopT(de.neemann.digital.core.flipflops.FlipflopT) FlipflopD(de.neemann.digital.core.flipflops.FlipflopD) FlipflopJK(de.neemann.digital.core.flipflops.FlipflopJK)

Aggregations

FlipflopD (de.neemann.digital.core.flipflops.FlipflopD)1 FlipflopJK (de.neemann.digital.core.flipflops.FlipflopJK)1 FlipflopT (de.neemann.digital.core.flipflops.FlipflopT)1