Esempio n. 1
0
        public void jk_toggle_once()
        {
            var jkFlipFlop = new JKMasterSlave(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);

            // start toggle
            jkFlipFlop.J.Add(5);
            jkFlipFlop.K.Add(5);
            jkFlipFlop.Clk.Add(5);

            jkFlipFlop.J.Add(5);
            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(5, jkFlipFlop.Q(3));
            Assert.Equal(0, jkFlipFlop.QNot(3));
        }
Esempio n. 2
0
        public void jk_set()
        {
            var jkFlipFlop = new JKMasterSlave(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));
        }