示例#1
0
        public void CreateNewWithInputEndpointCollection()
        {
            IInputEndpointCollection <IInputEndpoint> inputs = new InputEndpointCollection <InputEndpoint>(3);
            Nexus nexus = new Nexus(3, inputs);

            Assert.IsNotNull(nexus);
        }
示例#2
0
        public Complementor8Bits()
        {
            InitXORGates();

            Inputs  = new InputEndpointCollection <InputEndpoint>(WIDTH, _xorGates.Select(x => x.Input1 as InputEndpoint));
            _nexus  = new Nexus(WIDTH + 1, _xorGates.Select(x => x.Input2 as InputEndpoint));
            Invert  = _nexus.GetEndpointAt(WIDTH);
            Outputs = new OutputEndpointCollection <OutputEndpoint>(WIDTH,
                                                                    _xorGates.Select(x => x.Output as OutputEndpoint));
        }
示例#3
0
        public Adder8Bits()
        {
            InitFullAdders();

            Number1Inputs = new InputEndpointCollection <InputEndpoint>(WIDTH, _fullAdders.Select(a => a.Number1In as InputEndpoint));
            Number2Inputs = new InputEndpointCollection <InputEndpoint>(WIDTH, _fullAdders.Select(a => a.Number2In as InputEndpoint));
            CarryInput    = _fullAdders[0].CarryIn;
            SumOutputs    = new OutputEndpointCollection <OutputEndpoint>(WIDTH, _fullAdders.Select(a => a.Sum as OutputEndpoint));
            CarryOutput   = _fullAdders[WIDTH - 1].CarryOut;
        }
        public Complementor16Bits()
        {
            _lowerCplmtor = new Complementor8Bits();
            _upperCplmtor = new Complementor8Bits();
            _invertNexus  = new TShapedNexus(null, _lowerCplmtor.Invert, _upperCplmtor.Invert);

            var mergedInputs  = _lowerCplmtor.Inputs.Concat(_upperCplmtor.Inputs).Cast <InputEndpoint>();
            var mergedOutputs = _lowerCplmtor.Outputs.Concat(_upperCplmtor.Outputs).Cast <OutputEndpoint>();

            Inputs  = new InputEndpointCollection <InputEndpoint>(WIDTH, mergedInputs);
            Outputs = new OutputEndpointCollection <OutputEndpoint>(WIDTH, mergedOutputs);
            Invert  = _invertNexus.GetEndpointAt(0);
        }
示例#5
0
        public Adder16Bits()
        {
            _lowerAdder = new Adder8Bits();
            _upperAdder = new Adder8Bits();
            _lowerAdder.CarryOutput.ConnectTo(_upperAdder.CarryInput);

            var inputpointsNumber1 = _lowerAdder.Number1Inputs.Concat(_upperAdder.Number1Inputs).Cast <InputEndpoint>();
            var inputpointsNumber2 = _lowerAdder.Number2Inputs.Concat(_upperAdder.Number2Inputs).Cast <InputEndpoint>();
            var outputsSum         = _lowerAdder.SumOutputs.Concat(_upperAdder.SumOutputs).Cast <OutputEndpoint>();

            Number1Inputs = new InputEndpointCollection <InputEndpoint>(WIDTH, inputpointsNumber1);
            Number2Inputs = new InputEndpointCollection <InputEndpoint>(WIDTH, inputpointsNumber2);
            CarryInput    = _lowerAdder.CarryInput;
            SumOutputs    = new OutputEndpointCollection <OutputEndpoint>(WIDTH, outputsSum);
            CarryOutput   = _upperAdder.CarryOutput;
        }