Beispiel #1
0
        public UC(ILog logger, Dictionary <int, int> linhaBinarioXCodigo)
        {
            logger  = logger == null ? new Logger() : logger;
            _logger = logger;
            _linhaBinarioXCodigo = linhaBinarioXCodigo;

            Registradores = new Registradores();
            BarramentoA   = new Barramento(logger);
            BarramentoB   = new Barramento(logger);

            Ula = new ULA();

            ConectaConectoresAoComponente(Portas.Ula.EntradaUla, -1, BarramentoA, Ula);
            ConectaConectoresAoComponente(Portas.Ula.EntradaX, -1, BarramentoA, Ula.X);
            ConectaConectoresAoComponente(-1, Portas.Ula.SaidaAc, BarramentoA, Ula.AC);

            Registradores.PC  = ConfiguraRegistrador(Portas.PC.Entrada, Portas.PC.Saida, "0", "PC", BarramentoA);
            Registradores.MAR = ConfiguraRegistrador(Portas.Mar.Entrada, -1, null, "MAR", BarramentoA);
            Registradores.MBR = ConfiguraRegistrador(Portas.Mbr.Entrada, Portas.Mbr.Saida, null, "MBR", BarramentoA);
            Registradores.AX  = ConfiguraRegistrador(Portas.Ax.Entrada, Portas.Ax.Saida, null, "AX", BarramentoA);
            Registradores.BX  = ConfiguraRegistrador(Portas.Bx.Entrada, Portas.Bx.Saida, null, "BX", BarramentoA);
            Registradores.CX  = ConfiguraRegistrador(Portas.Cx.Entrada, Portas.Cx.Saida, null, "CX", BarramentoA);
            Registradores.DX  = ConfiguraRegistrador(Portas.Dx.Entrada, Portas.Dx.Saida, null, "DX", BarramentoA);

            Registradores.IR = ConfiguraIr(Portas.Ir.Entrada, -1, BarramentoA);
            IR = Registradores.IR;
            ConectaConectoresAoComponente(Portas.Ir.EntradaP1, Portas.Ir.SaidaP1, BarramentoA, Registradores.IR.P1);
            ConectaConectoresAoComponente(Portas.Ir.EntradaP2, Portas.Ir.SaidaP2, BarramentoA, Registradores.IR.P2);

            Memoria = new Memoria(Registradores.MAR, Registradores.MBR, logger);
        }
Beispiel #2
0
        private IR ConfiguraIr(int numEntrada,
                               int numSaida,
                               Barramento barramento)
        {
            var registrador = new IR();

            // Adiciona Conectores no Barramento

            ConectaConectoresAoComponente(numEntrada, numSaida, barramento, registrador);

            return(registrador);
        }