public MultiBitRegister(int iSize) { Size = iSize; Input = new WireSet(Size); Output = new WireSet(Size); Load = new Wire(); }
public BitwiseNotGate(int iSize) { Size = iSize; Input = new WireSet(Size); Output = new WireSet(Size); Input.ConnectOutput(this); }
public override bool TestGate() { Random rnd = new Random(); WireSet[] aInputs = new WireSet[Inputs.Length]; for (int i = 0; i < Inputs.Length; i++) { aInputs[i] = new WireSet(Size); ConnectInput(i, aInputs[i]); aInputs[i].SetValue(i + 1); } WireSet wsControl = new WireSet(ControlBits); ConnectControl(wsControl); for (int i = 0; i < Inputs.Length; i++) { wsControl.SetValue(i); if (Output.GetValue() != Inputs[i].GetValue()) { return(false); } } return(true); }
public ALU(int iSize) { Size = iSize; InputX = new WireSet(Size); InputY = new WireSet(Size); ZeroX = new Wire(); ZeroY = new Wire(); NotX = new Wire(); NotY = new Wire(); F = new Wire(); NotOutput = new Wire(); Output = new WireSet(Size); Zero = new Wire(); Negative = new Wire(); ZeroX.ConnectOutput(this); ZeroY.ConnectOutput(this); NotX.ConnectOutput(this); NotY.ConnectOutput(this); F.ConnectOutput(this); NotOutput.ConnectOutput(this); InputX.ConnectOutput(this); InputY.ConnectOutput(this); }
public Counter(int iSize) { Size = iSize; Input = new WireSet(Size); Output = new WireSet(Size); Load = new Wire(); Reset = new Wire(); }
public BitwiseDemux(int iSize) { Size = iSize; Control = new Wire(); Input = new WireSet(Size); Output1 = new WireSet(Size); Output2 = new WireSet(Size); Input.ConnectOutput(this); }
public BitwiseBooleanGate(int iSize) { Size = iSize; Input1 = new WireSet(iSize); Input2 = new WireSet(iSize); Output = new WireSet(iSize); Input1.ConnectOutput(this); Input2.ConnectOutput(this); }
public void ConnectInput(WireSet wIn) { if (InputConected) { throw new InvalidOperationException("Cannot connect a wire to more than one inputs"); } if (wIn.Size != Size) { throw new InvalidOperationException("Cannot connect two wiresets of different sizes."); } wIn.ConnectOutput(this); InputConected = true; }
public BitwiseMultiwayDemux(int iSize, int cControlBits) { Size = iSize; Input = new WireSet(Size); Control = new WireSet(cControlBits); Outputs = new WireSet[(int)Math.Pow(2, cControlBits)]; for (int i = 0; i < Outputs.Length; i++) { Outputs[i] = new WireSet(Size); } Input.ConnectOutput(this); Control.ConnectOutput(this); }
public Memory(int iAddressSize, int iWordSize) { AddressSize = iAddressSize; WordSize = iWordSize; Input = new WireSet(WordSize); Output = new WireSet(WordSize); Address = new WireSet(AddressSize); Load = new Wire(); Size = (int)Math.Pow(2, Address.Size); m_aiRegisters = new int[Size]; Address.ConnectOutput(this); }
public BitwiseMultiwayMux(int iSize, int cControlBits) { ControlBits = cControlBits;//bug fix Size = iSize; Output = new WireSet(Size); Control = new WireSet(cControlBits); Inputs = new WireSet[(int)Math.Pow(2, cControlBits)]; for (int i = 0; i < Inputs.Length; i++) { Inputs[i] = new WireSet(Size); Inputs[i].ConnectOutput(this); } Control.ConnectOutput(this); }
public void ConnectInput(WireSet wsInput) { Input.ConnectInput(wsInput); }
public void ConnectInput2(WireSet wInput) { Input2.ConnectInput(wInput); }
public void ConnectInput1(WireSet wInput) { Input1.ConnectInput(wInput); }
public Wire(WireSet wsContainer) : this() { m_wsContainer = wsContainer; }
public void ConnectControl(WireSet wsControl) { Control.ConnectInput(wsControl); }
public void ConnectInput(int i, WireSet wsInput) { Inputs[i].ConnectInput(wsInput); }