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 (s) {
if (r) { if (r) {
q = true; q = false;
qn = true; qn = false;
} else { } else {
q = true; q = true;
qn = false; qn = false;
@ -72,11 +72,11 @@ public class FlipflopRSAsync extends FlipflopBit {
q = false; q = false;
qn = true; qn = true;
} else { } else {
if (q && qn) { if (!q && !qn) {
if (Math.random() < 0.5) { if (Math.random() < 0.5) {
q = false; q = true;
} else { } 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, 0, 1, 0);
sc.check(0, 1, 0, 1); sc.check(0, 1, 0, 1);
sc.check(0, 0, 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, 0, 1, 0);
sc.check(1, 1, 1, 1); sc.check(1, 1, 0, 0);
sc.check(0, 1, 0, 1); sc.check(0, 1, 0, 1);
ObservableValue q = out.getOutputs().get(0); ObservableValue q = out.getOutputs().get(0);
@ -41,8 +41,8 @@ public class FlipflopRSAsyncTest extends TestCase {
s.setValue(1); s.setValue(1);
r.setValue(1); r.setValue(1);
model.doStep(); model.doStep();
assertTrue(q.getBool()); assertFalse(q.getBool());
assertTrue(qn.getBool()); assertFalse(qn.getBool());
s.setValue(0); s.setValue(0);
r.setValue(0); r.setValue(0);
model.doStep(); model.doStep();