public override bool TestGate() { Load.Value = 1; Input.Value = 1; Clock.ClockDown(); Clock.ClockUp(); Input.Value = 0; if (Output.Value != 1) { return(false); } Clock.ClockDown(); Clock.ClockUp(); Load.Value = 0; Input.Value = 1; if (Output.Value != 0) { return(false); } Clock.ClockDown(); Clock.ClockUp(); Input.Value = 0; if (Output.Value != 0) { return(false); } Load.Value = 1; Input.Value = 1; if (Output.Value != 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() { 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() { 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 void ZeroOutRegister() { Load.Value = 1; Input.SetValue(0); Clock.ClockDown(); Clock.ClockUp(); }
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() { Input.Set2sComplement(5); Load.Value = 1; Clock.ClockDown(); Clock.ClockUp(); if (Output.Get2sComplement() != 5) { return(false); } return(true); }
public override bool TestGate() { Input.Set2sComplement(22); Address.Set2sComplement(4); Load.Value = 1; Clock.ClockDown(); Clock.ClockUp(); Load.Value = 0; if (Output.Get2sComplement() != 22) { return(false); } Input.Set2sComplement(11); Clock.ClockDown(); Clock.ClockUp(); if (Output.Get2sComplement() != 22) { return(false); } Load.Value = 1; Clock.ClockDown(); Clock.ClockUp(); if (Output.Get2sComplement() != 11) { return(false); } Load.Value = 0; Address.SetValue(7); Clock.ClockDown(); Clock.ClockUp(); if (Output.Get2sComplement() != 0) { return(false); } Load.Value = 1; if (Output.Get2sComplement() != 0) { return(false); } Clock.ClockDown(); Clock.ClockUp(); if (Output.Get2sComplement() != 11) { return(false); } return(true); }
public override bool TestGate() { Random rand = new Random(); WireSet randWire = new WireSet(Size); WireSet maxWire = new WireSet(Size); maxWire.Set2sComplement((int)Math.Pow(2, Size - 1) - 1); for (int i = 0; i < 1000; i++) { int num = (int)rand.Next(-(int)Math.Pow(2, Size - 1), ((int)Math.Pow(2, Size - 1) - 1)); randWire.Set2sComplement(num); Input.Set2sComplement(randWire.Get2sComplement()); Load.Value = 1; Clock.ClockDown(); Clock.ClockUp(); Load.Value = 0; Input.Set2sComplement(maxWire.Get2sComplement()); if (randWire.Get2sComplement() != Output.Get2sComplement()) { return(false); } Clock.ClockDown(); Clock.ClockUp(); if (randWire.Get2sComplement() != Output.Get2sComplement()) { return(false); } Load.Value = 1; Clock.ClockDown(); Clock.ClockUp(); if (Input.Get2sComplement() != Output.Get2sComplement()) { 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); }
// 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; }
public override bool TestGate() { Random rand = new Random(); WireSet randInWire = new WireSet(WordSize); for (int i = 0; i < m_rMultiBit.Length; i++) { randInWire.Set2sComplement((int)rand.Next(-(int)Math.Pow(2, WordSize - 1), ((int)Math.Pow(2, WordSize - 1) - 1))); //generate random valid input Input.Set2sComplement(randInWire.Get2sComplement()); // connect input to randomized wire Address.Set2sComplement((int)rand.Next(0, (int)Math.Pow(2, AddressSize) + 1)); //generate random valid address Load.Value = 1; Clock.ClockDown(); Clock.ClockUp(); Load.Value = 0; int tempChange = randInWire.Get2sComplement(); if (tempChange < 0) { tempChange++; } else { tempChange--; } Input.Set2sComplement(tempChange); if (Output.Get2sComplement() != randInWire.Get2sComplement()) { return(false); } Clock.ClockDown(); Clock.ClockUp(); if (Output.Get2sComplement() != randInWire.Get2sComplement()) { return(false); } Load.Value = 1; Clock.ClockDown(); Clock.ClockUp(); if (Output.Get2sComplement() != Input.Get2sComplement()) { return(false); } tempChange = Address.Get2sComplement(); if (tempChange != 0) { tempChange--; } else { tempChange++; } Address.Set2sComplement(tempChange); Clock.ClockDown(); Clock.ClockUp(); if (Output.Get2sComplement() != Input.Get2sComplement()) { return(false); } } return(true); }