Beispiel #1
0
        public void jk_set()
        {
            var jkFlipFlop = new JKFlipFlop(TTLGateTypeEnum.Perfect);

            jkFlipFlop.J.Add(5);
            jkFlipFlop.K.Add(0);
            jkFlipFlop.Clk.Add(5);

            jkFlipFlop.J.Add(5);
            jkFlipFlop.K.Add(0);
            jkFlipFlop.Clk.Add(0);

            jkFlipFlop.J.Add(5);
            jkFlipFlop.K.Add(0);
            jkFlipFlop.Clk.Add(5);

            jkFlipFlop.J.Add(5);
            jkFlipFlop.K.Add(0);
            jkFlipFlop.Clk.Add(0);

            jkFlipFlop.RunCircuit();

            Assert.True(jkFlipFlop.VerifyNoShortedOutputs());
            Assert.True(jkFlipFlop.VerifyAllGateInputsConnected());

            Assert.True(jkFlipFlop.CircuitCompletedSuccessfully);
            Assert.Equal(5, jkFlipFlop.Q(1));
            Assert.Equal(0, jkFlipFlop.QNot(1));
        }
Beispiel #2
0
        public void jk_reset()
        {
            var jkFlipFlop = new JKFlipFlop(TTLGateTypeEnum.Perfect);

            jkFlipFlop.J.Add(0);
            jkFlipFlop.K.Add(5);
            jkFlipFlop.Clk.Add(5);

            jkFlipFlop.J.Add(0);
            jkFlipFlop.K.Add(5);
            jkFlipFlop.Clk.Add(0);

            jkFlipFlop.J.Add(0);
            jkFlipFlop.K.Add(5);
            jkFlipFlop.Clk.Add(5);

            jkFlipFlop.J.Add(0);
            jkFlipFlop.K.Add(5);
            jkFlipFlop.Clk.Add(0);

            // Give this 2 clock cycles to sort out any randomness
            jkFlipFlop.RunCircuit();

            Assert.True(jkFlipFlop.VerifyNoShortedOutputs());
            Assert.True(jkFlipFlop.VerifyAllGateInputsConnected());

            Assert.True(jkFlipFlop.CircuitCompletedSuccessfully);
            Assert.Equal(0, jkFlipFlop.Q(3));
            Assert.Equal(5, jkFlipFlop.QNot(3));
        }
Beispiel #3
0
        public void JKFlipFlop()
        {
            var jkff = new JKFlipFlop(c, f, f);

            Assert.IsFalse(jkff[0]);

            c.Go();
            Assert.IsFalse(jkff[0]);

            jkff.Inputs[0] = t;
            c.Go();
            Assert.IsTrue(jkff[0]);

            jkff.Inputs[1] = t;
            c.Go();
            Assert.IsFalse(jkff[0]);

            jkff.Inputs[0] = t;
            c.Go();
            Assert.IsTrue(jkff[0]);
        }