microcontrolador sintetizado

Upload: xavi-mayen

Post on 24-Feb-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Microcontrolador Sintetizado

    1/2

    1

    Microcontrolador bsico sintentizadoFase Final

    Universidad de San Carlos de Guatemala, Facultad de Ingeniera

    Escuela de Mecnica Elctrica

    Laboratorio de Electrnica 6Jose Carlos Veliz 2012-12814

    Javier Andrs Rodrguez Mayn 2012-12980

    Luis Francisco Maldonado Mendizabal 2012-13205

    Grupo 54

    I. OBJETIVOS

    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. DESCRIPCIN DELPROYECTO

    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 esel 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 conver-

    tirlas 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. ESPECIFICACIONES

    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 compara-

    ciones y testeos.

    B, C, D, E, H, L: Estos son registros de 8 bits para prop-

    sito 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 dela 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 signifi-

    cativo 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 Pari-

    dad/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.

  • 7/25/2019 Microcontrolador Sintetizado

    2/2

    2

    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 uti-

    lizadas 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 unaseccin 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 funcio-

    namiento 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 especi-

    ficado.

    III-C. Especificaciones de HardwareEl 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. DIAGRAMA DELMICROCONTROLADOR

    V. FPGA UTILIZADA

    fpga.jpg

    VI . REFERENCIASBIBLIOGRAFICAS

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

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