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)); }
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)); }
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]); }