Esempio n. 1
0
        public static (Word sum, Bit carryOut) Add(Word a, Word b, Bit cIn)
        {
            var r0 = BitAdder.Add(a.b0, b.b0, cIn);
            var r1 = BitAdder.Add(a.b1, b.b1, r0.carryOut);
            var r2 = BitAdder.Add(a.b2, b.b2, r1.carryOut);
            var r3 = BitAdder.Add(a.b3, b.b3, r2.carryOut);

            return(new Word(r0.sum, r1.sum, r2.sum, r3.sum), r3.carryOut);
        }
Esempio n. 2
0
 public void CarryOut()
 {
     Assert.False(BitAdder.CarryOut(0, 0, 0));
     Assert.False(BitAdder.CarryOut(0, 0, 1));
     Assert.True(BitAdder.CarryOut(0, 1, 1));
     Assert.False(BitAdder.CarryOut(0, 1, 0));
     Assert.True(BitAdder.CarryOut(1, 1, 0));
     Assert.True(BitAdder.CarryOut(1, 1, 1));
     Assert.True(BitAdder.CarryOut(1, 0, 1));
     Assert.False(BitAdder.CarryOut(1, 0, 0));
 }
Esempio n. 3
0
 public void Sum()
 {
     Assert.False(BitAdder.Sum(0, 0, 0));
     Assert.True(BitAdder.Sum(0, 0, 1));
     Assert.False(BitAdder.Sum(0, 1, 1));
     Assert.True(BitAdder.Sum(0, 1, 0));
     Assert.False(BitAdder.Sum(1, 1, 0));
     Assert.True(BitAdder.Sum(1, 1, 1));
     Assert.False(BitAdder.Sum(1, 0, 1));
     Assert.True(BitAdder.Sum(1, 0, 0));
 }