mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-27 06:51:37 -04:00
added tests for the async flip-flops
This commit is contained in:
parent
954e96a9bc
commit
ae614b6135
@ -0,0 +1,36 @@
|
||||
package de.neemann.digital.core.flipflops;
|
||||
|
||||
import de.neemann.digital.TestExecuter;
|
||||
import de.neemann.digital.core.Model;
|
||||
import de.neemann.digital.core.ObservableValue;
|
||||
import de.neemann.digital.core.element.ElementAttributes;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import static de.neemann.digital.core.ObservableValues.ovs;
|
||||
|
||||
/**
|
||||
* @author hneemann
|
||||
*/
|
||||
public class FlipflopDAsyncTest extends TestCase {
|
||||
public void testFlipFlop() throws Exception {
|
||||
ObservableValue set = new ObservableValue("set", 1);
|
||||
ObservableValue d = new ObservableValue("d", 8);
|
||||
ObservableValue c = new ObservableValue("c", 1);
|
||||
ObservableValue clr = new ObservableValue("clr", 1);
|
||||
|
||||
Model model = new Model();
|
||||
FlipflopDAsync out = model.add(new FlipflopDAsync(new ElementAttributes().setBits(8)));
|
||||
out.setInputs(ovs(set, d, c, clr));
|
||||
|
||||
TestExecuter sc = new TestExecuter(model).setInputs(set, d, c, clr).setOutputs(out.getOutputs());
|
||||
// set D C clr Q ~Q
|
||||
sc.check(0, 0, 0, 0, 0, 255);
|
||||
sc.check(1, 0, 0, 0, 255, 0); // set
|
||||
sc.check(0, 0, 0, 0, 255, 0);
|
||||
sc.check(0, 0, 0, 1, 0, 255); // clr
|
||||
sc.check(0, 0, 0, 0, 0, 255);
|
||||
sc.check(0, 1, 0, 0, 0, 255);
|
||||
sc.check(0, 1, 1, 0, 1, 254);
|
||||
sc.check(0, 0, 0, 0, 1, 254);
|
||||
}
|
||||
}
|
@ -11,9 +11,9 @@ import static de.neemann.digital.core.ObservableValues.ovs;
|
||||
/**
|
||||
* @author hneemann
|
||||
*/
|
||||
public class D_FlipflopTest extends TestCase {
|
||||
public class FlipflopDTest extends TestCase {
|
||||
public void testFlipFlop() throws Exception {
|
||||
ObservableValue d = new ObservableValue("s", 8);
|
||||
ObservableValue d = new ObservableValue("d", 8);
|
||||
ObservableValue c = new ObservableValue("c", 1);
|
||||
|
||||
Model model = new Model();
|
@ -0,0 +1,47 @@
|
||||
package de.neemann.digital.core.flipflops;
|
||||
|
||||
import de.neemann.digital.TestExecuter;
|
||||
import de.neemann.digital.core.Model;
|
||||
import de.neemann.digital.core.ObservableValue;
|
||||
import de.neemann.digital.core.element.ElementAttributes;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import static de.neemann.digital.core.ObservableValues.ovs;
|
||||
|
||||
/**
|
||||
* @author hneemann
|
||||
*/
|
||||
public class FlipflopJKAsyncTest extends TestCase {
|
||||
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);
|
||||
}
|
||||
}
|
@ -11,7 +11,7 @@ import static de.neemann.digital.core.ObservableValues.ovs;
|
||||
/**
|
||||
* @author hneemann
|
||||
*/
|
||||
public class JK_FlipflopTest extends TestCase {
|
||||
public class FlipflopJKTest extends TestCase {
|
||||
public void testFlipFlop() throws Exception {
|
||||
ObservableValue j = new ObservableValue("j", 1);
|
||||
ObservableValue c = new ObservableValue("c", 1);
|
@ -11,7 +11,7 @@ import static de.neemann.digital.core.ObservableValues.ovs;
|
||||
/**
|
||||
* @author hneemann
|
||||
*/
|
||||
public class FlipflopRS_Test extends TestCase {
|
||||
public class FlipflopRSTest extends TestCase {
|
||||
public void testFlipFlop() throws Exception {
|
||||
ObservableValue s = new ObservableValue("s", 1);
|
||||
ObservableValue c = new ObservableValue("c", 1);
|
@ -11,7 +11,7 @@ import junit.framework.TestCase;
|
||||
/**
|
||||
* @author hneemann
|
||||
*/
|
||||
public class FlipflopT_Test extends TestCase {
|
||||
public class FlipflopTTest extends TestCase {
|
||||
|
||||
public void testFlipFlop() throws Exception {
|
||||
ObservableValue c = new ObservableValue("c", 1);
|
Loading…
x
Reference in New Issue
Block a user