Вы находитесь на странице: 1из 3

Microcontroladores en FPGAs

Nombre: Andres Moises Tutiven


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

Вам также может понравиться