Exemplo n.º 1
0
        // creating counter by using one multibit register and 1 full addr to increment by 1
        // using mux to decide if to increment or to get new input
        public Counter(int iSize)
        {
            Size = iSize;
            Input = new WireSet(Size);
            Output = new WireSet(Size);
            Load = new Wire();
            val = new WireSet(Size);
            val.SetValue(1);

            mux_op = new BitwiseMux(Size);
            adder = new MultiBitAdder(Size);
            register = new MultiBitRegister(Size);

            register.Load.Value = 1;

            mux_op.ConnectControl(Load);
            mux_op.ConnectInput1(adder.Output);
            mux_op.ConnectInput2(Input);
            register.ConnectInput(mux_op.Output);
            Output.ConnectInput(register.Output);

            adder.ConnectInput1(register.Output);
            adder.ConnectInput2(val);


        }
Exemplo n.º 2
0
Arquivo: Memory.cs Projeto: boaz23/ECS
 private void ConnectRegisters()
 {
     m_registers = new MultiBitRegister[(int)Math.Pow(2, AddressSize)];
     for (int i = 0; i < m_registers.Length; i++)
     {
         var register = new MultiBitRegister(WordSize);
         m_registers[i] = register;
         register.ConnectInput(Input);
         register.Load.ConnectInput(m_addressDemux.Outputs[i]);
         m_outputMux.Inputs[i].ConnectInput(register.Output);
     }
 }