Search in sources :

Example 71 with Model

use of de.neemann.digital.core.Model in project Digital by hneemann.

the class PriorityEncoderTest method testEncoder2.

public void testEncoder2() throws Exception {
    Model model = new Model();
    ObservableValue d0 = new ObservableValue("d0", 1);
    ObservableValue d1 = new ObservableValue("d1", 1);
    PriorityEncoder out = model.add(new PriorityEncoder(new ElementAttributes().set(Keys.SELECTOR_BITS, 1)));
    out.setInputs(ovs(d0, d1));
    TestExecuter te = new TestExecuter(model).setInputs(d1, d0).setOutputs(out.getOutputs());
    te.check(0, 0, 0, 0);
    te.check(0, 1, 0, 1);
    te.check(1, 0, 1, 1);
    te.check(1, 1, 1, 1);
}
Also used : Model(de.neemann.digital.core.Model) ObservableValue(de.neemann.digital.core.ObservableValue) ElementAttributes(de.neemann.digital.core.element.ElementAttributes) TestExecuter(de.neemann.digital.TestExecuter)

Example 72 with Model

use of de.neemann.digital.core.Model in project Digital by hneemann.

the class FlipflopDTest method testFlipFlop.

public void testFlipFlop() throws Exception {
    ObservableValue d = new ObservableValue("d", 8);
    ObservableValue c = new ObservableValue("c", 1);
    Model model = new Model();
    FlipflopD out = model.add(new FlipflopD(new ElementAttributes().setBits(8)));
    out.setInputs(ovs(d, c));
    TestExecuter sc = new TestExecuter(model).setInputs(d, c).setOutputs(out.getOutputs());
    // D  C  Q  ~Q
    sc.check(0, 0, 0, 255);
    sc.check(1, 0, 0, 255);
    sc.check(1, 1, 1, 254);
    sc.check(1, 0, 1, 254);
    sc.check(0, 0, 1, 254);
    sc.check(7, 0, 1, 254);
    sc.check(7, 1, 7, 248);
}
Also used : ObservableValue(de.neemann.digital.core.ObservableValue) Model(de.neemann.digital.core.Model) ElementAttributes(de.neemann.digital.core.element.ElementAttributes) TestExecuter(de.neemann.digital.TestExecuter)

Example 73 with Model

use of de.neemann.digital.core.Model in project Digital by hneemann.

the class FlipflopJKAsyncTest method testFlipFlop.

public void testFlipFlop() throws Exception {
    ObservableValue set = new ObservableValue("set", 1);
    ObservableValue j = new ObservableValue("j", 1);
    ObservableValue c = new ObservableValue("c", 1);
    ObservableValue k = new ObservableValue("k", 1);
    ObservableValue clr = new ObservableValue("clr", 1);
    Model model = new Model();
    FlipflopJKAsync out = model.add(new FlipflopJKAsync(new ElementAttributes()));
    out.setInputs(ovs(set, j, c, k, clr));
    TestExecuter sc = new TestExecuter(model).setInputs(set, j, c, k, clr).setOutputs(out.getOutputs());
    // Set J  C  K  clr Q  ~Q
    sc.check(0, 0, 0, 0, 0, 0, 1);
    sc.check(0, 0, 0, 0, 0, 0, 1);
    sc.check(0, 1, 0, 0, 0, 0, 1);
    sc.check(0, 0, 1, 0, 0, 0, 1);
    sc.check(0, 1, 0, 0, 0, 0, 1);
    sc.check(0, 1, 1, 0, 0, 1, 0);
    sc.check(0, 1, 0, 1, 0, 1, 0);
    sc.check(0, 1, 1, 1, 0, 0, 1);
    sc.check(0, 1, 0, 1, 0, 0, 1);
    sc.check(0, 1, 1, 1, 0, 1, 0);
    sc.check(0, 0, 0, 1, 0, 1, 0);
    sc.check(0, 0, 1, 1, 0, 0, 1);
    sc.check(0, 0, 0, 0, 0, 0, 1);
    // async
    sc.check(1, 0, 0, 0, 0, 1, 0);
    sc.check(0, 0, 0, 0, 0, 1, 0);
    sc.check(0, 0, 0, 0, 1, 0, 1);
    sc.check(0, 0, 0, 0, 0, 0, 1);
}
Also used : ObservableValue(de.neemann.digital.core.ObservableValue) Model(de.neemann.digital.core.Model) ElementAttributes(de.neemann.digital.core.element.ElementAttributes) TestExecuter(de.neemann.digital.TestExecuter)

Example 74 with Model

use of de.neemann.digital.core.Model in project Digital by hneemann.

the class FlipflopJKTest method testFlipFlop.

public void testFlipFlop() throws Exception {
    ObservableValue j = new ObservableValue("j", 1);
    ObservableValue c = new ObservableValue("c", 1);
    ObservableValue k = new ObservableValue("k", 1);
    Model model = new Model();
    FlipflopJK out = model.add(new FlipflopJK(new ElementAttributes()));
    out.setInputs(ovs(j, c, k));
    TestExecuter sc = new TestExecuter(model).setInputs(j, c, k).setOutputs(out.getOutputs());
    // J  C  K  Q  ~Q
    sc.check(0, 0, 0, 0, 1);
    sc.check(0, 0, 0, 0, 1);
    sc.check(1, 0, 0, 0, 1);
    sc.check(0, 1, 0, 0, 1);
    sc.check(1, 0, 0, 0, 1);
    sc.check(1, 1, 0, 1, 0);
    sc.check(1, 0, 1, 1, 0);
    sc.check(1, 1, 1, 0, 1);
    sc.check(1, 0, 1, 0, 1);
    sc.check(1, 1, 1, 1, 0);
    sc.check(0, 0, 1, 1, 0);
    sc.check(0, 1, 1, 0, 1);
    sc.check(0, 0, 0, 0, 1);
}
Also used : ObservableValue(de.neemann.digital.core.ObservableValue) Model(de.neemann.digital.core.Model) ElementAttributes(de.neemann.digital.core.element.ElementAttributes) TestExecuter(de.neemann.digital.TestExecuter)

Example 75 with Model

use of de.neemann.digital.core.Model in project Digital by hneemann.

the class FlipflopTTest method testFlipFlop.

public void testFlipFlop() throws Exception {
    ObservableValue c = new ObservableValue("c", 1);
    Model model = new Model();
    FlipflopT out = model.add(new FlipflopT(new ElementAttributes().setBits(1).set(Keys.WITH_ENABLE, false)));
    out.setInputs(c.asList());
    TestExecuter sc = new TestExecuter(model).setInputs(c).setOutputs(out.getOutputs());
    // C  Q  ~Q
    sc.check(0, 0, 1);
    sc.check(1, 1, 0);
    sc.check(1, 1, 0);
    sc.check(0, 1, 0);
    sc.check(0, 1, 0);
    sc.check(1, 0, 1);
    sc.check(0, 0, 1);
}
Also used : ObservableValue(de.neemann.digital.core.ObservableValue) Model(de.neemann.digital.core.Model) ElementAttributes(de.neemann.digital.core.element.ElementAttributes) TestExecuter(de.neemann.digital.TestExecuter)

Aggregations

Model (de.neemann.digital.core.Model)85 ObservableValue (de.neemann.digital.core.ObservableValue)56 ElementAttributes (de.neemann.digital.core.element.ElementAttributes)52 TestExecuter (de.neemann.digital.TestExecuter)49 ToBreakRunner (de.neemann.digital.integration.ToBreakRunner)16 ValueTable (de.neemann.digital.data.ValueTable)6 Signal (de.neemann.digital.core.Signal)4 ModelCreator (de.neemann.digital.draw.model.ModelCreator)4 ObservableValues (de.neemann.digital.core.ObservableValues)3 Expression (de.neemann.digital.analyse.expression.Expression)2 BoolTable (de.neemann.digital.analyse.quinemc.BoolTable)2 Node (de.neemann.digital.core.Node)2 Delay (de.neemann.digital.core.wiring.Delay)2 Circuit (de.neemann.digital.draw.elements.Circuit)2 ElementLibrary (de.neemann.digital.draw.library.ElementLibrary)2 ShapeFactory (de.neemann.digital.draw.shapes.ShapeFactory)2 File (java.io.File)2 ArrayList (java.util.ArrayList)2 Variable (de.neemann.digital.analyse.expression.Variable)1 Parser (de.neemann.digital.analyse.parser.Parser)1