public override bool TestGate() { Load.Value = 0; Clock.ClockDown(); Clock.ClockUp(); if (Output.GetValue() != 0) { return(false); } Input.SetValue(1); Clock.ClockDown(); Clock.ClockUp(); if (Output.GetValue() != 0) { return(false); } Load.Value = 1; Address.SetValue(0); Clock.ClockDown(); Clock.ClockUp(); if (Output.GetValue() != 1) { return(false); } Input.SetValue(0); Load.Value = 0; Address.SetValue(2); Clock.ClockDown(); Clock.ClockUp(); if (Output.GetValue() != 0) { return(false); } return(true); }
public override bool TestGate() { int maxInput = (int)Math.Pow(2, Size); for (int i = 0; i < maxInput; i++) { Load.Value = 1; Input.SetValue(i); Clock.ClockDown(); Clock.ClockUp(); Input.SetValue(i + 1); if (Output.GetValue() != i) { return(false); } Load.Value = 0; Clock.ClockDown(); Clock.ClockUp(); if (Output.GetValue() != i) { return(false); } } return(true); }
public override bool TestGate() { Input.SetValue(8); Load.Value = 1; Clock.ClockDown(); Clock.ClockUp(); Input.SetValue(7); Load.Value = 1; if (Output.GetValue() != 8) { return(false); } Clock.ClockDown(); Clock.ClockUp(); Input.SetValue(6); Load.Value = 0; if (Output.GetValue() != 7) { return(false); } Clock.ClockDown(); Clock.ClockUp(); Input.SetValue(5); Load.Value = 0; if (Output.GetValue() != 7) { return(false); } return(true); }
private bool TestRegister(int maxInputValue) { for (int i = 0; i < maxInputValue; i++) { Load.Value = 1; Input.SetValue(i); Clock.ClockDown(); Clock.ClockUp(); Input.SetValue(i + 1); if (Output.GetValue() != i) { return(false); } Load.Value = 0; Clock.ClockDown(); Clock.ClockUp(); if (Output.GetValue() != i) { return(false); } } return(true); }
// checking 16 inputs and outputs. public override bool TestGate() { Random ran = new Random(); int value_to_insert, chosen_address; value_to_insert = ran.Next(0, ((int)Math.Pow(2, WordSize) - 1)); chosen_address = ran.Next(0, ((int)Math.Pow(2, AddressSize) - 1)); for (int i = 0; i < 16; i++) { Input.SetValue(value_to_insert); Address.SetValue(chosen_address); if (i % 2 == 0) { Load.Value = 1; } else { Load.Value = 0; } Clock.ClockDown(); Clock.ClockUp(); if (i % 2 == 0 && Output.GetValue() != value_to_insert) { return(false); } else if (i % 2 != 0 && Output.GetValue() == value_to_insert) { return(false); } value_to_insert = ran.Next(0, ((int)Math.Pow(2, WordSize) - 1)); } return(true); }
public override bool TestGate() { int value1; int value2; Random ran = new Random(); for (int i = 0; i < 4; i++) { value1 = ran.Next(0, ((int)Math.Pow(2, Size) - 1) / 2); value2 = ran.Next(0, ((int)Math.Pow(2, Size) - 1) / 2); Input1.SetValue(value1); Input2.SetValue(value2); //Console.WriteLine(ToString()); if (Output.GetValue() != value1 + value2) { return(false); } } return(true); }
//checking 2 possible outcomes public override bool TestGate() { Random ran = new Random(); int value1, value2; value1 = ran.Next(0, ((int)Math.Pow(2, Size) - 1)); Input.SetValue(value1); Load.Value = 0; Clock.ClockDown(); Clock.ClockUp(); Load.Value = 1; value2 = ran.Next(0, ((int)Math.Pow(2, Size) - 1)); Clock.ClockDown(); Clock.ClockUp(); Input.SetValue(value2); if (Output.GetValue() != value1) { return(false); } return(true); }
//checks each input from 1 to the len of Inputs public override bool TestGate() { Random ran = new Random(); int value; for (int i = 0; i < (int)Math.Pow(2, ControlBits); i++) { value = ran.Next(0, (int)Math.Pow(2, ControlBits) - 1); Inputs[i].SetValue(value); } for (int i = 0; i < (int)Math.Pow(2, ControlBits); i++) { Control.SetValue(i); if (Output.GetValue() != Inputs[i].GetValue()) { return(false); } } //Console.WriteLine("succes"); return(true); }
// checking increment 3 times and then changing the input public override bool TestGate() { Load.Value = 1; Input.SetValue(0); Clock.ClockDown(); Clock.ClockUp(); Load.Value = 0; Clock.ClockDown(); Clock.ClockUp(); Input.SetValue(0); Clock.ClockDown(); Clock.ClockUp(); Clock.ClockDown(); Clock.ClockUp(); if (Output.GetValue() != 3) return false; Load.Value = 1; Clock.ClockDown(); Clock.ClockUp(); if (Output.GetValue() != 0) return false; return true; }