fixes the RS flip-flop, closes #440

This commit is contained in:
hneemann 2020-04-10 12:08:00 +02:00
parent f09052d0e1
commit bacad7ede3
2 changed files with 9 additions and 9 deletions

View File

@ -61,8 +61,8 @@ public class FlipflopRSAsync extends FlipflopBit {
if (s) {
if (r) {
q = true;
qn = true;
q = false;
qn = false;
} else {
q = true;
qn = false;
@ -72,11 +72,11 @@ public class FlipflopRSAsync extends FlipflopBit {
q = false;
qn = true;
} else {
if (q && qn) {
if (!q && !qn) {
if (Math.random() < 0.5) {
q = false;
q = true;
} else {
qn = false;
qn = true;
}
}
}

View File

@ -29,9 +29,9 @@ public class FlipflopRSAsyncTest extends TestCase {
sc.check(0, 0, 1, 0);
sc.check(0, 1, 0, 1);
sc.check(0, 0, 0, 1);
sc.check(1, 1, 1, 1);
sc.check(1, 1, 0, 0);
sc.check(1, 0, 1, 0);
sc.check(1, 1, 1, 1);
sc.check(1, 1, 0, 0);
sc.check(0, 1, 0, 1);
ObservableValue q = out.getOutputs().get(0);
@ -41,8 +41,8 @@ public class FlipflopRSAsyncTest extends TestCase {
s.setValue(1);
r.setValue(1);
model.doStep();
assertTrue(q.getBool());
assertTrue(qn.getBool());
assertFalse(q.getBool());
assertFalse(qn.getBool());
s.setValue(0);
r.setValue(0);
model.doStep();