mirror of
https://github.com/hneemann/Digital.git
synced 2025-09-28 07:28:20 -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
|
* @author hneemann
|
||||||
*/
|
*/
|
||||||
public class D_FlipflopTest extends TestCase {
|
public class FlipflopDTest extends TestCase {
|
||||||
public void testFlipFlop() throws Exception {
|
public void testFlipFlop() throws Exception {
|
||||||
ObservableValue d = new ObservableValue("s", 8);
|
ObservableValue d = new ObservableValue("d", 8);
|
||||||
ObservableValue c = new ObservableValue("c", 1);
|
ObservableValue c = new ObservableValue("c", 1);
|
||||||
|
|
||||||
Model model = new Model();
|
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
|
* @author hneemann
|
||||||
*/
|
*/
|
||||||
public class JK_FlipflopTest extends TestCase {
|
public class FlipflopJKTest extends TestCase {
|
||||||
public void testFlipFlop() throws Exception {
|
public void testFlipFlop() throws Exception {
|
||||||
ObservableValue j = new ObservableValue("j", 1);
|
ObservableValue j = new ObservableValue("j", 1);
|
||||||
ObservableValue c = new ObservableValue("c", 1);
|
ObservableValue c = new ObservableValue("c", 1);
|
@ -11,7 +11,7 @@ import static de.neemann.digital.core.ObservableValues.ovs;
|
|||||||
/**
|
/**
|
||||||
* @author hneemann
|
* @author hneemann
|
||||||
*/
|
*/
|
||||||
public class FlipflopRS_Test extends TestCase {
|
public class FlipflopRSTest extends TestCase {
|
||||||
public void testFlipFlop() throws Exception {
|
public void testFlipFlop() throws Exception {
|
||||||
ObservableValue s = new ObservableValue("s", 1);
|
ObservableValue s = new ObservableValue("s", 1);
|
||||||
ObservableValue c = new ObservableValue("c", 1);
|
ObservableValue c = new ObservableValue("c", 1);
|
@ -11,7 +11,7 @@ import junit.framework.TestCase;
|
|||||||
/**
|
/**
|
||||||
* @author hneemann
|
* @author hneemann
|
||||||
*/
|
*/
|
||||||
public class FlipflopT_Test extends TestCase {
|
public class FlipflopTTest extends TestCase {
|
||||||
|
|
||||||
public void testFlipFlop() throws Exception {
|
public void testFlipFlop() throws Exception {
|
||||||
ObservableValue c = new ObservableValue("c", 1);
|
ObservableValue c = new ObservableValue("c", 1);
|
Loading…
x
Reference in New Issue
Block a user