Sunteți pe pagina 1din 2

1

Microcontrolador bsico sintentizado


Fase Final
Universidad de San Carlos de Guatemala, Facultad de Ingeniera
Escuela de Mecnica Elctrica
Laboratorio de Electrnica 6
Jose Carlos Veliz 2012-12814
Javier Andrs Rodrguez Mayn 2012-12980
Luis Francisco Maldonado Mendizabal 2012-13205
Grupo 54

I.

O BJETIVOS

I-A. General
Aplicar los conceptos obtenidos en el laboratorio de
electrnica 6 para describir hardware dentro de una
FPGA.
I-B. Especficos
Aplicar los conocimientos adquiridos en cursos anteriores
para describir una arquitectura de hardware.
Sintetizar los mdulos de un microprocesador dentro de
una FPGA.
Desarrollar la lgica de los procesos concurrentes y
secuenciales en el lenguaje de descripcin de hardware
VHDL.
Implementar el manejo del puntero de instrucciones en
la pila.
Emplear un intrprete bsico para programar el hardware
descrito.
II.

D ESCRIPCIN DEL P ROYECTO

Se debe sintetizar un hardware capaz de funcionar como


un microcontrolador muy bsico. Este est compuesto por
registros, memorias y unidades de funcionamiento lgico.
El microcontrolador deber ejecutar instrucciones, las cuales
estn almacenadas en una memoria interna. Este al estar
procesando cada instruccin, dependiendo de cul sea, se
deber modificar registros, puertos, espacios de memoria, etc.
El manejo del puntero ser muy importante ya que este es
el encargado de ir ejecutando cada una de las instrucciones,
tomar en cuenta los saltos y las llamadas a subrutinas. Todas
las instrucciones sern programadas por un usuario, por lo
tanto, deber crear un software capaz de interpretar cada una
de las instrucciones creadas en lenguaje assembler y convertirlas a binario. Las instrucciones binarias sern enviadas por
el protocolo de comunicacin UART, desde el puerto serial
de una computadora hasta el puerto serial de una FPGA.
Cada instruccin binaria tendr un formato especfico para
luego ser decodificada e interpretada por el microcontrolador
sintetizado.

III.

E SPECIFICACIONES

La comunicacin con el microcontrolador se realizar por


medio de UART. La longitud total de la trama a enviar por
UART es de 22 bits.
III-A. Registros requeridos
A: Este es un registro de 8 bits que funciona como el
acumulador. Este registro se utiliza generalmente como
destino de muchas operaciones aritmticas, de comparaciones y testeos.
B, C, D, E, H, L: Estos son registros de 8 bits para propsito general, utilizados para operaciones, almacenamiento
de valores, etc.
SP: Registro de 16 bits llamado puntero de pila, este
apunta a la posicin actual del lector de la pila.
PC: El Program Counter o Contador de Programa es
un registro de 16 bits. El cual contiene la direccin de
la instruccin actual a ejecutar. El PC no se modifica
directamente moviendo valores a este registro, solamente
se modificar mediante instrucciones de salto (JP, JR,
CALL, etc.).
Registro de flags: Ser llamado F, este no es un registro
de propsito general en donde se pueda introducir valores
a voluntad. Cada uno de los diferentes bits del registro F
tiene un significado propio que cambia automticamente
segn el resultado de las operaciones anteriores.
Flag S (sign o signo): Este flag se pone a uno si el
resultado de la operacin realizada en complemento
a dos es negativo (es una copia del bit ms significativo del resultado).
Flag Z (zero o cero): Este flag se pone a uno si
el resultado de la ltima operacin que afecte a los
flags es cero.
Flag
P/V
(Parity/Overflow
o
Paridad/Desbordamiento): En las operaciones que
modifican el bit de paridad, este bit vale 1 si el
nmero de unos del resultado de la operacin es
par, y 0 si es impar. Si, por contra, el resultado
de la operacin realizada necesita ms bits para
ser representado de los que nos provee el registro,
tendremos un desbordamiento, con este flag a 1.

Flag N (Substract o Resta): Se pone a 1 si la


ltima operacin realizada fue una resta. Se utiliza
en operaciones aritmticas.
Flag C (Carry o Acarreo): Este flag se pone a uno si
el resultado de la operacin anterior no cupo en el
registro y necesita un bit extra para ser representado.
Este bit es ese bit extra.
III-B. Set de instrucciones
Son 15 instrucciones bsicas a realizar:
LD [00000]: Instruccin para la carga de datos en los
diferentes registros, este no afectar ningn valor del
registro de banderas.
INC [00001] y DEC [00010]: Ests instrucciones son utilizadas para incremental o decrementar respectivamente
el valor de un registro o posicin de memoria.
ADD [00011]: Instruccin utilizada para realizar sumas
SUB [00100]: Instruccin utilizada para realizar restas.
NOP [00101]: Esta instruccin dejar pasar la lnea de
instruccin sin hacer nada.
JP [00110]: Instruccin de salto, realiza un traslado a una
seccin especfica de la pila de instrucciones.
CALL [00111]: Esta instruccin genera una subrutina y
retornar la instruccin siguiente en donde se hizo la
llamada cuando se encuentre la instruccin RET.
AND [01000]: Instruccin que realiza la operacin lgica
and.
OR [01001]: Instruccin que realiza la operacin lgica
or.
XOR [01010]: Instruccin que realiza la operacin lgica
xor.
NEG [01011]: Instruccin que realiza la operacin lgica
not.
HALT [01100]: La instruccin HALT suspende el funcionamiento de la CPU hasta que una interrupcin la habilita
o se recibe un reset. Mientras existe el estado HALT, el
procesador ejecuta NOP para mantener la lgica de la
memoria.
IN [01110]: Esta instruccin se utilizar para acceder a
una direccin especfica de puerto para ser guardado en
un registro.
OUT [01111]: Esta instruccin se utilizar para mostrar
en una direccin especfica de puerto el registro especificado.
III-C. Especificaciones de Hardware
El dispositivo debe constar con una unidad central de
procesos, constituida por memorias para el manejo de los
registros y pilas descritos anteriormente, una unidad de control
y una unidad lgica aritmtica, la cual podr manejar entradas
y salidas de espacios de memoria, como banderas, espacios en
memoria RAM y puertos. La unidad de control puede acceder
a los registros, a la memoria y a los puertos conectados. Las
memorias a implementar son dos, una memoria ROM en la
cual se guardar cada una de las instrucciones a ejecutar y una
memoria RAM en la cual se guardarn los registros, las flags,
la LIFO para manejar las llamadas y los puertos de entrada y

salida. Se requiere de dos puertos, estos pueden ser de entrada


o de salida.
III-D. Especificaciones del Intrprete
El intrprete simplemente deber leer un archivo, lnea por
lnea guardarlo en arreglos de Strings y separarlo en partes
las cuales se convertirn en binario, dependiendo de cada
instruccin. Si el neumnico est seguido por otra palabra,
estos debern estar separados por un espacio en blanco. Las
direcciones y los datos tendrn que estar separados por comas.
Si se desea acceder a una posicin de memoria este debe
estar limitado por parntesis. Al enviar los datos solamente
se trabajar con valores en sistema decimal enteros positivos
o negativos, utilizar complemento a dos.
IV.

D IAGRAMA DEL M ICROCONTROLADOR

V.

FPGA U TILIZADA
fpga.jpg

VI.

R EFERENCIAS B IBLIOGRAFICAS

1. Chu, Pong P. FPGA prototyping by VHDL examples.


ISBN 978-0-470-18531. USA 2008.

S-ar putea să vă placă și