Galvez Ciudad: guayaquil, Ecuador Universidad: escuela politenica del litoral (ESPOL) Email: atutiven@espol.edu.ec Materia: sistema digitales 2
Abstract— El diseño de un microcontrolador RISC de 8 bits, El micro tiene un bloque de decodificación de
que está dirigido principalmente para realizar funciones instrucciones del emulador para detectar los puntos de cruciales sin temporización dentro de los FPGA. El interrupción y deshabilitar las entrada de reloj de todos los microcontrolador se basa en la popular familia de componentes del emulador hasta que se reciba la orden de microcontroladores Microchip PIC16. La característica continuar desde el PC. principal del microcontrolador es que es 4 veces más rápido para las instrucciones regulares y 8 veces más rápido para las Con respecto al tema de los emuladores, en la Universidad instrucciones que modifican el contador del programa, que su Abierta de Cataluña el autor Bas Gago implementa el arquetipo de Microchip sincronizado con la misma frecuencia. emulador de un microcontrolador PIC 16F84 basado en una El microcontrolador realiza 33 más de 35 instrucciones del FPGA, el autor utiliza MPlab para desarrollar el código de PIC16F877A. El algoritmo del microcontrolador es un código de funcionamiento el cual es leído por Emulpic una interfaz de ensamblador. El código es responsable de la escritura del valor usuario desarrollada 8 por el autor en Microsoft C++.NET leído desde la ubicación de la memoria de datos (Palacios, Remiro, & Lopez, 2006.), desde esta plataforma se logra también la comunicación con la FPGA y el control del Keywords—PIC16F877A, FPGA, MDCU, SFR, W, AD, emulador ya implementado en la misma (Bas Gago, 2010). [1] ALU.
Introducción
Este trabajo es para dar conocer las características muy
importante se un microcontrolador en FPGA. El uso de microcontroladores que programan secuencias de control o máquinas de estados en ensamblajes o lenguajes de alto nivel suele ser más fácil que crear estructuras similares en los FPGA. Por lo tanto, el microcontrolador incorporado puede implementar las funciones de control complejas cruciales sin tiempo, mientras que las funciones de tiempo crítico o de ruta de datos se implementan mejor en la lógica FPGA. Los proveedores de FPGA también ofrecen núcleos de propiedad intelectual (IP) de microprocesadores de 8 y 32 bits. Los problemas de los núcleos IP de microprocesadores que Ilustración 1 diagrama del bloque del PIC 16F84 provienen de un proveedor no se pueden usar con un FPGA de otro proveedor. Por lo tanto, el diseñador tiene que B. Microcontrolador PIC 16F877A-16F688 basado en una aprender diferentes arquitecturas de microprocesadores, listas FPGA de instrucciones y herramientas de desarrollo al usar FPGA de diferentes vendedores. PIC16F877A se usó como parte principal de un sistema de posicionamiento basado en GPRS y un sistema integrado que Microcontrolador RISC de 8 bits está diseñado para el controla las trayectorias de exploración de un transductor de desempeño sin interrupciones Se presentan funciones ultrasonido. cruciales dentro de un FPGA. Además, La arquitectura del microcontrolador está basada en el Microchip de la Familia Otro microcontrolador (PIC16F688) se empleó para PIC16F87x. La característica importante del microcontrolador controlar una condición operativa de la antena de microcinta. es que es 4 veces más rápido y 8 veces más rápido para También hay una serie de diseños de microcontroladores PIC instrucciones que modifican el contador del programa. El dirigidos a implementaciones de FPGA. microcontrolador realiza 33 más de 35 instrucciones del Ambos núcleos IP, llamados MINIRISC y RISC8 PIC16F877A. respectivamente, tienen una estructura de ciclo de I. TRABAJO RELACIONADOS instrucciones mejorada y son 4 veces más rápidos que el microcontrolador PIC original. Sin embargo, las instrucciones A. Microcontrolador PIC 16F84 basado en una FPGA que modifican el contador del programa aún requieren 2 ciclos El micro PIC 16F84 está constituido por la ALU, los en el caso del RISC8 y 4 ciclos para el MINIRISC. Por lo registro, la memoria de datos RAM y EEPROM, el contador tanto, este último es dos veces más lento que el PIC16C57 de programa, la memoria de programa, el registro de trabajo para estas instrucciones. (Hajduk, Z., 2014) [2] W, el registro de estado STATUS, la pila y varios II. METODOLOGIA multiplexores que permitirán seleccionar los datos de entrada a la ALU, al bus de direcciones de la memoria. El microcontrolador es Idéntico al Microchip PIC16F877A. Lo cual la estructura y algoritmo del micro es: A. Estructura del micro B. Algoritmo del micro La estructura del micro está construido por un El algoritmo del microcontrolador es un código de decodificador principal y un bloque de la unidad de control ensamblador muy simple que se muestra en el ilustración 3. (MDCU), de lo cual su función es decodificar las Las primeras dos columnas de valores hexadecimales en el instrucciones y del comportamiento de control de registro de Listado 1. tuberías R1, R2, R3, registro de trabajo (W) y grupo de registros de funciones especiales (SFR), y generando una señal de solicitud de interrupción. Además, tiene dos circuitos combinatorios que están situados cerca de MDCU, que se encargar en evaluar el bloque de valor de PC (NEXTPC) y calcular el siguiente bloque de valor de puntero de pila (NEXTSP). El microcontrolador está equipado con dos bancos de memoria de datos, llamados registros de propósito general (GPR), implementados físicamente como una RAM distribuida dentro de FPGA. Los buses de dirección y control de los bancos GPR son Ilustración 3 codigo ensamblador controlados por el bloque del decodificador de direcciones Las tres primeras instrucciones de la causa del listado para (AD), que también es un circuito combinatorio. El bloque AD cargar el valor 05h al registro W, enviar el valor del registro también controla un multiplexor MUX2, que entrega el primer W a la salida del puerto A y almacenar el contenido del valor de operando para la unidad aritmética lógica (ALU). registro W en la memoria de datos (GPR) en la ubicación de Este valor puede ser una salida de bancos GPR o registros SFR 55h. Los cambios posteriores del contenido del registro W y o un valor de puerto de entrada o un valor directo proveniente el estado de la salida del puerto A (PAout). El código de la de los 8 bits menos significativos de un bus de instrucción emerge en el bus de instrucciones, que toma INSTRUCCIÓN. inmediatamente la dirección de la siguiente instrucción. El segundo operando para ALU proviene de un registro W, Después de las tres instrucciones mencionadas de lo cual acumula los datos del dbus. El microcontrolador anteriormente, la siguiente instrucción ejecutada es ‘‘ addwf tiene puertos de entrada separados (PAin, PBin, PCin) de los 55h, 1 ’’. Al mismo tiempo, cuando se actualiza el bus puertos de salida (PAout, PBout, PCout); todos los puertos son DIRECCIÓN, el bloque AD confirma la dirección de la de una sola dirección. El microcontrolador también está memoria de datos (bus gpr_addr) y la señal de control para el equipado con un simple temporizador de 8 bits TMR0 con un multiplexor MUX2. Posteriormente, la memoria de datos se prescaller. lee de forma asíncrona y el valor de lectura se transmite al bus de origen (sbus) y la primera entrada de ALU (sbus = 05h). Como la MDCU hace que la ALU realice una adición y el segundo operando para la ALU proviene del registro W (05h en este caso), el resultado de la ALU se calcula correctamente (0Ah en este caso) y se traslada al bus de destino (dbus). Mientras que el valor de flanco ascendente de dbus más cercano se escribe en la misma ubicación en la memoria de datos desde la que se leyeron los datos. El flanco ascendente del reloj también hace que aparezca el siguiente código de instrucción (2018h) en el bus instrucción. Esta instrucción es una llamada de subrutina ubicada en la dirección de 018h. La dirección aparece directamente en el bus de dirección, y durante el siguiente flanco ascendente del reloj, la primera instrucción de la subrutina se recupera y se ejecuta posteriormente. Por lo tanto, las instrucciones que modifican el contador del programa se ejecutan dentro de un solo ciclo de reloj. La subrutina del ilustración 3 también ilustra las capacidades de direccionamiento indirecto del microcontrolador. El código es responsable de la escritura del valor leído desde la ubicación de la memoria de datos de 55h bajo la dirección contenida en el registro W. Esto resulta en el cambio del puerto de salida A de 05h a 0Ah. Después del retorno de la subrutina, que también toma un ciclo de reloj, la siguiente instrucción (‘btfsc 55h, 0’ ’) prueba el bit 0 (bit LSB) del valor leído desde la ubicación de la Ilustración 2 A. Estructura del micro memoria de datos 055h. Como el bit está claro en este caso, esto hace que se omita la ejecución de la siguiente instrucción ubicada en 011h: la señal de salto se activa durante un ciclo de reloj. III. RESULTADOS Por lo tanto, un micro realizar funciones cruciales sin temporización dentro del FPGA. El microcontrolador A. ventajas del micro pertenece a la familia de microcontroladores Microchip El microcontrolador realiza 33 más de 35 instrucciones del PIC16. El micro es 4 veces más rápido para las instrucciones PIC16F877A. regulares y 8 veces más rápido para las instrucciones que modifican el contador del programa. El microcontrolador hay El microcontrolador es que es 4 veces más rápido para las menos ciclos de reloj (4 veces) que en el caso de la familia instrucciones regulares y 8 veces más rápido para las PIC16. El microcontrolador realiza 33 más de 35 instrucciones que modifican el contador del programa. instrucciones del PIC16F877A. El algoritmo del Personalización es otra ventaja de los microcontroladores microcontrolador es un código de ensamblador de lo cual integrados, p. ej. Los periféricos específicos se pueden controla las instrucciones para cada bloque de registro del conectar directamente a los buses del microcontrolador. micro. El código es responsable de la escritura del valor leído desde la ubicación de la memoria de datos y enviar el valor del B. desventajas del micro registro a cada salida del puerto A y almacenar el contenido No se han implementado un temporizador de vigilancia del registro W en la memoria de datos. claro (CLRWDT) y las instrucciones de DORMIR. Como memoria de programa para el microcontrolador, se requiere REFERENCIAS RAM sincrónica o memoria ROM. Los candidatos ideales [1] Bas Gago, I. (2010). Emulador de un microcontrolador PIC 16F84 para este propósito son los bloques de memoria RAM basado en una FPGA. Universitat Oberta de Catalunya, obtenido de incorporados dentro de los FPGA. http://openaccess.uoc.edu/webapps/o2/bitstream/10609/1004/1/36606 tfc.pdf. (Bas Gago, 2010) El microcontrolador hay menos ciclos de reloj (4 veces) [2] Hajduk, Z. (2014). An FPGA embedded que en el caso de la familia PIC16. microcontroller. Microprocessors and Microsystems, 38(1), 1-8. No se ha implementado ninguna función de vigilancia. CONCLUSION