Search in sources :

Example 26 with ElementAttributes

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

the class AddTest method testAdd32.

public void testAdd32() throws Exception {
    ObservableValue a = new ObservableValue("a", 32);
    ObservableValue b = new ObservableValue("b", 32);
    ObservableValue c = new ObservableValue("c", 1);
    Model model = new Model();
    Add node = new Add(new ElementAttributes().setBits(32));
    node.setInputs(ovs(a, b, c));
    model.add(node);
    TestExecuter sc = new TestExecuter(model).setInputs(a, b, c).setOutputs(node.getOutputs());
    sc.check(-1, 0, 1, 0, 1);
    sc.check(-1, 1, 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 27 with ElementAttributes

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

the class AddTest method testAdd64.

public void testAdd64() throws Exception {
    ObservableValue a = new ObservableValue("a", 64);
    ObservableValue b = new ObservableValue("b", 64);
    ObservableValue c = new ObservableValue("c", 1);
    Model model = new Model();
    Add node = new Add(new ElementAttributes().setBits(64));
    node.setInputs(ovs(a, b, c));
    model.add(node);
    TestExecuter sc = new TestExecuter(model).setInputs(a, b, c).setOutputs(node.getOutputs());
    sc.check(-1, 0, 1, 0, 1);
    sc.check(-1, 1, 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 28 with ElementAttributes

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

the class BitCountTest method testBitCount64.

public void testBitCount64() throws Exception {
    ObservableValue a = new ObservableValue("a", 64);
    Model model = new Model();
    BitCount node = new BitCount(new ElementAttributes().setBits(64));
    node.setInputs(a.asList());
    model.add(node);
    TestExecuter sc = new TestExecuter(model).setInputs(a).setOutputs(node.getOutputs());
    sc.check(0, 0);
    sc.check(-1, 64);
    sc.check(1, 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 29 with ElementAttributes

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

the class BitExtenderTest method testSignExtendError2.

public void testSignExtendError2() throws Exception {
    try {
        ObservableValue in = new ObservableValue("in", 5);
        new BitExtender(new ElementAttributes().set(Keys.OUTPUT_BITS, 4)).setInputs(in.asList());
        fail();
    } catch (NodeException e) {
    }
}
Also used : ObservableValue(de.neemann.digital.core.ObservableValue) NodeException(de.neemann.digital.core.NodeException) ElementAttributes(de.neemann.digital.core.element.ElementAttributes)

Example 30 with ElementAttributes

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

the class BitExtenderTest method testSignExtend64.

public void testSignExtend64() throws Exception {
    ObservableValue in = new ObservableValue("in", 63);
    BitExtender bitExtender = new BitExtender(new ElementAttributes().set(Keys.INPUT_BITS, 63).set(Keys.OUTPUT_BITS, 64));
    bitExtender.setInputs(in.asList());
    assertEquals(1, bitExtender.getOutputs().size());
    ObservableValue out = bitExtender.getOutputs().get(0);
    check(in, out, 0, 0);
    check(in, out, 0x4000000000000000L, 0xC000000000000000L);
}
Also used : ObservableValue(de.neemann.digital.core.ObservableValue) ElementAttributes(de.neemann.digital.core.element.ElementAttributes)

Aggregations

ElementAttributes (de.neemann.digital.core.element.ElementAttributes)87 ObservableValue (de.neemann.digital.core.ObservableValue)73 TestExecuter (de.neemann.digital.TestExecuter)61 Model (de.neemann.digital.core.Model)52 ObservableValues (de.neemann.digital.core.ObservableValues)16 BitsException (de.neemann.digital.core.BitsException)3 FanIn (de.neemann.digital.core.basic.FanIn)3 NodeException (de.neemann.digital.core.NodeException)2 Delay (de.neemann.digital.core.wiring.Delay)2 Circuit (de.neemann.digital.draw.elements.Circuit)2 And (de.neemann.digital.core.basic.And)1 Not (de.neemann.digital.core.basic.Not)1 Or (de.neemann.digital.core.basic.Or)1 Element (de.neemann.digital.core.element.Element)1 Key (de.neemann.digital.core.element.Key)1 FlipflopD (de.neemann.digital.core.flipflops.FlipflopD)1 FlipflopJK (de.neemann.digital.core.flipflops.FlipflopJK)1 Clock (de.neemann.digital.core.wiring.Clock)1 VisualElement (de.neemann.digital.draw.elements.VisualElement)1 ElementLibrary (de.neemann.digital.draw.library.ElementLibrary)1