public DynamicAdder(int bits) { fullAdders = new FullAdder[bits]; var inputPinSeriesA = new InputPin[bits]; var inputPinSeriesB = new InputPin[bits]; var outputPinSeriesSum = new OutputPin[bits]; FullAdder previousFullAdder = null; for (var i = 0; i < bits; i++) { var fullAdder = new FullAdder(); if (previousFullAdder != null) { previousFullAdder.CarryOver.ConnectTo(fullAdder.CarryIn); } fullAdders[i] = fullAdder; inputPinSeriesA[i] = fullAdder.InputA; inputPinSeriesB[i] = fullAdder.InputB; outputPinSeriesSum[i] = fullAdder.Sum; previousFullAdder = fullAdder; } Overflow = previousFullAdder.CarryOver; InputA = new InputPinSeries(inputPinSeriesA); InputB = new InputPinSeries(inputPinSeriesB); Sum = new OutputPinSeries(outputPinSeriesSum); }
public Subtracter8Bit() { InputA = new InputPinSeries(fullSubtracter1.InputA, fullSubtracter2.InputA, fullSubtracter3.InputA, fullSubtracter4.InputA, fullSubtracter5.InputA, fullSubtracter6.InputA, fullSubtracter7.InputA, fullSubtracter8.InputA); InputB = new InputPinSeries(fullSubtracter1.InputB, fullSubtracter2.InputB, fullSubtracter3.InputB, fullSubtracter4.InputB, fullSubtracter5.InputB, fullSubtracter6.InputB, fullSubtracter7.InputB, fullSubtracter8.InputB); Sub = new OutputPinSeries(fullSubtracter1.Sub, fullSubtracter2.Sub, fullSubtracter3.Sub, fullSubtracter4.Sub, fullSubtracter5.Sub, fullSubtracter6.Sub, fullSubtracter7.Sub, fullSubtracter8.Sub); fullSubtracter1.CarryOver.ConnectTo(fullSubtracter2.CarryIn); fullSubtracter2.CarryOver.ConnectTo(fullSubtracter3.CarryIn); fullSubtracter3.CarryOver.ConnectTo(fullSubtracter4.CarryIn); fullSubtracter4.CarryOver.ConnectTo(fullSubtracter5.CarryIn); fullSubtracter5.CarryOver.ConnectTo(fullSubtracter6.CarryIn); fullSubtracter6.CarryOver.ConnectTo(fullSubtracter7.CarryIn); fullSubtracter7.CarryOver.ConnectTo(fullSubtracter8.CarryIn); Overflow = fullSubtracter8.CarryOver; }