Example #1
0
 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);
 }
Example #2
0
        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);
        }
Example #3
0
 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);
 }
Example #4
0
File: Memory.cs Project: boaz23/ECS
        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);
        }
Example #5
0
        // 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);
        }
Example #6
0
        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);
        }
Example #7
0
        //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);
        }
Example #8
0
        //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);
        }
Example #9
0
 // 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;
 }