Multiplicador INFO

Embed Size (px)

Citation preview

  • 7/21/2019 Multiplicador INFO

    1/7

    LABORATORIO DE MICROELETRONICA

    INGENIERIA ELECTRNICA

    LABORATORIO N5 SINTESIS CON VHDL DE SISTEMAS SECUENCIALES MODULARESOSCAR LEONARDO SANDOVAL HIGUERA Cd.: 0160978

    JEFFERSON JAIMES BERNATE Cd.: 0161057

    I. INTRODUCCIONEn la microelectrnica el uso de memorias es muy

    utilizado dado que permite usar los recursos disponibles

    de menea mucho ms eficiente pues con el uso de esta

    los datos se ordenan mediante direcciones establecidos

    y el acceso a ellos es mucho ms fcil. Los procesadores

    y, valga la redundancia, las memorias de un computador

    se construyen a base de ellas interconectndose

    mediante buses que transportan desde datos hastadirecciones y en el caso de tener mas de una memoria

    BITS de seleccin que permiten ya sea leer o escribir

    sobe una de ellas.

    El siguiente informe presenta una sntesis en VHDL de

    una memoria esttica de acceso aleatorio en al cual se

    guardan datos de una multiplicacin y posteriormente

    se accede a ellos mediante comando externos.

    II. OBJETIVOS Desarrollar un a nivel RTL y sintetizarlo

    utilizando VHDL

    Analizar el funcionamiento de un multiplicadorbinario de 4 bits.

    Adoptar un algoritmo apropiado para suimplementacin.

    Expresar de manera personal los resultadosobtenidos.

    III. MARCO TEORICOAlgoritmo de la multiplicacin binaria:

    La multiplicacin binaria se puede hacer ya sea,

    mediante sumas sucesivas sumando un el multiplicando

    tantas veces me lo diga el multiplicador, por el

    algoritmo de Booth, o por corrimiento de registros.

    El mtodo usado en esta implementacin fue el de

    corrimiento de registros debido a que las sumas

    sucesivas requieren muchas operaciones y

    comprobaciones, el algoritmo de Booth es ms til con

    multiplicacin signada.

    El mtodo de corrimiento de registros almacena los

    datos, tanto el multiplicando como el multiplicador en

    registros los cuales se van corriendo y sumando como

    se hara en una multiplicacin algebraica normal.

    11101111

    111011

    ---------------------

    11101111

    11101111

    00000000

    11101111

    11101111

    11101111

    -----------------------------

    11011100010101De esta manera se puede implementar fcilmente un

    multiplicador corriendo el multiplicando y sumndolo o

    sumando ceros dependiendo del valor de cada bit del

    multiplicador.

    Memoria SRAM de 2N*K

    Una SRAM o memoria esttica de acceso aleatorio es un

    tipo de memoria basada en semiconductores que es

    capaza de mantener los datos (mientras este

    alimentada) sin necesidad de circuito de refresco (no se

    descargan). Sin embargo, si son memorias voltiles, sdecir que pierden la informacin si se les interrumpe la

    alimentacin elctrica.

    Figura 1. Esquema Elctrico de una memoria RAM.

  • 7/21/2019 Multiplicador INFO

    2/7

    LABORATORIO DE MICROELETRONICA

    INGENIERIA ELECTRNICA

    Estas memorias son de acceso aleatorio, lo que significa

    que las posiciones en la memoria pueden ser escritas o

    ledas en cualquier orden, independientemente de cul

    fuera la ltima posicin de memoria leda o escrita.

    Cada bit en una SRAM se almacena en cuatrotransistores, que forman un biestable. Este biestable

    tendr dos estados, utilizados para almacenar un 0 o un

    1. Se utilizan otros 2 transistores adicionales para

    controlar el acceso al biestable durante las operaciones

    de lectura y escritura.

    IV. EQUIPO NECESARIO Computador inter (R)

    Pentium (R) 4 CPU 3.00 GHZ, 1 GB de RAM

    Software de apoyo ISE FUNDATION de Xilinx

    Simulador ISE Simulator FPGA NEXYS 2

    V. DESARROLLO DE LA PRACTICA

    En la implementacin y diseo de la estructura se tiene

    la siguiente Entidad general:

    Figura 1. Entidad General de todo el sistema.

    Esta Entidad Principal contiene internamente 8

    componentes que permiten realizar las operaciones

    requeridas segn los objetivos planteados, en la Figura

    2 se puede observar la interconexin del sistema:

    Figura 2. Componentes Internos del Sistema.

    Figura 3. Jerarqua del Diseo Implementado.

    De manera general, el sistema multiplica 2 nmeros de

    4 bits que almacena en 2 registros de 8bits, guarda

    estos datos en la RAM 23*8 en las posiciones de

    memoria 0 y 1. Luego se realiza la operacin de

    multiplicacin, donde su resultado es guardado en otro

    registro, y luego guardado en la posicin 2,.

    La informacin se introduce por un teclado matricial de

    4x5, el resultado se visualiza en notacin decimal en 4

    dgitos del display siete segmentos del FPGA Nexys2.

    Para la implementacin de este sistema se implemento

    el modulo Dectepuls que permite generar un pulso

    por tecla pulsada si importar cunto tiempo se

    mantenga la tecla oprimida, de esta manera le facilita a

    usuario la introduccin de los datos.

  • 7/21/2019 Multiplicador INFO

    3/7

    LABORATORIO DE MICROELETRONICA

    INGENIERIA ELECTRNICA

    Estructura Final

    Dentro de estos 8 componentes existe uno vale la pena

    resaltar es la EstructuraFinal la cual contiene la Macro-operacin de la Multiplicacin y asignacin de cada uno

    de los datos a la RAM.

    Es importante tener en cuenta que para la

    implementacin de este diseo se utilizaron dos

    unidades de control, una Unidad Esclava y una Unidad

    Maestra. La unidad Esclava Unidad_Control se

    encarga de realizar la operacin de multiplicacin y

    guardar en los registros A, B y C.

    Enviando seales de control a la Unidad MaestraUnidad_Master le informa sobre el avance de las

    operaciones, y le indica en qu momento puede

    guardar en la RAM, luego la unidad maestra enva

    seales de control que le permiten a la unidad esclava

    continuar con la operacin de multiplicacin, despus

    de haber guardado los dos primeros datos en la RAM.

    Cuando la operacin de multiplicacin es completada y

    unidad esclava enva una seal de control para que se

    guarde ese resultado en la RAM para dar por terminado

    el proceso.

    La operacin de guardar en la RAM de ejecutautilizando un multiplexor Multixrg que permite

    seleccionar el dato de cada uno de los registros y

    enviarlos a la posicin de memoria requerida.

    Figura 4. Jerarqua del Modulo Completo del Sistema

    Multiplicador y RAM.

    Figura 5. EstructuraFinal y sus Componentes internos.

    Multiplicador

    ProductoFinal:

    El multiplicador se diseo mediante corrimiento y suma

    de registros en los cuales se guardan los datos de la

    multiplicacin:

    Figura 5. Jerarqua del Diseo del Multiplicador.

    Figura 6. Mtodo y Pseudocdigo de la Multiplicacin.

  • 7/21/2019 Multiplicador INFO

    4/7

  • 7/21/2019 Multiplicador INFO

    5/7

    LABORATORIO DE MICROELETRONICA

    INGENIERIA ELECTRNICA

    Figura 10. Carta ASM de la Unidad de Control Maestra

    S0=0; Ya=0; Enram=0; AD=0;

    Master

    =1?

    Si No

    Enram=1; rw=1;

    Espera

    GuardaA

    AD=1;

    Enram=1; rw=1;

    GuardaB

    S0=1; enram=0;

    Termina

    Pregunta

    Done=

    1?

    Si No

    AD=1;

    Enram=1; rw=1;

    GuardaC

    Aux=1?Si No

    Contina Siguiente Columna

    Espera2

    AD=0;

    Ya=1; enram=1; rw=0;

    Aux=1?Si No

    enram=1; rw=0;

    Aux=1?Si No

    AD=1;

    M1

    M2

    enram=1; rw=0;

    Aux=1?Si No

    AD=1;

    M3

    Retorna a

    ESPERA

  • 7/21/2019 Multiplicador INFO

    6/7

    LABORATORIO DE MICROELETRONICA

    INGENIERIA ELECTRNICA

    S0 => En 1 Le Indica a la Unidad Esclava cuando puede

    continuar con la operacin de multiplicacin.

    Ya => En 1 Le indica a la Unidad Esclava cuando borre

    registros y luego de haber guardado en memoria RAM.

    Enram => Habilitador de Memoria RAM.

    AD => En 1 incrementa la Posicin de la Memoria RAM

    y en 0 inicializa a la posicin 000.

    Master=> En 1 le indica a la Unidad Maestra cuando

    los datos han sido guardados en los Registros.

    Rw=> En 1 indica la Escritura de la RAM y en 0 su

    lectura.

    Done=> Le indica a la Unidad Maestra que la

    multiplicacin ha terminado.

    Aux => En 1 el usuario indica que quiere ver lo que sea

    ha guardado en memoria RAM.

    Componentes para el Usuario:

    - BCDCONV- CONTASEG- DIVISORA- MUXDIS- DETECPULSEstos componentes permiten visualizar en 1 display

    siete segmentos de 4 digitos, los datos ingresados

    por el usuario y a la vez el resultado en notacin

    decimal.

    - BCDCON convierte el dato en los dgitos de 4bits para decodificar en los siete segmentos.

    - CONTASEG decodifica los 4 dgitos de BCDCONen datos para los displays.

    - MUXDIS multiplex los 4 dgitos.- DIVISORA es el divisor de frecuencia para los

    displays.

    - DECTEPULS le permite al usuario tener algunotecla pulsada sin que esto sea ledo como una

    serie de datos para la operacin.

    VI. CONCLUSIONES El uso de memorias resulta de utilidad cuando

    se requiere acceder a los datos en cualquie

    momento del programa sin necesidad de re

    calcular o reingresarlos.

    La mejor forma de ingresar datos a unamemoria es a travs de registros los cuales me

    almacenan los datos provisionalmente para

    moverlos o modificarlos para luego escribirlos

    en la posicin de memoria correspondiente.

    El diseo a nivel RTL nos permite unadescripcin ms detallada de los algoritmos que

    se implementan de manera que los diseos a

    base de cata ASM.

    En la implementacin de un sistema de estamagnitud es necesario calcular en trminos de

    ciclos de reloj cuanto demora cada

    microperacion y macrooperacion para no

    utilizar estados de mas en las unidades de

    control.

    Eventualmente en estos diseos de complejidadelevada, pueden existir problemas en la

    sintetizacin de los mdulos y es necesario

    tener cuidado para evitar conflictos con e

    software.

    En este tipo de operaciones la velocidad deprocesamiento se puede optimiza

    considerablemente, pero es necesario tener en

    cuenta que la informacin proveniente deusuario se realiza a una velocidad cientos de

    miles de millones ms lenta que la mxima

    velocidad de procesamiento.

  • 7/21/2019 Multiplicador INFO

    7/7

    LABORATORIO DE MICROELETRONICA

    INGENIERIA ELECTRNICA

    RECOMENDACIONES

    Cuando se tienen perifricos de entrada comoteclados matriciales, es preferible implementar

    mdulos programados y cdigos que permitan

    al usuario ingresar los datos de manera

    cmoda.

    Cuando se tienes versiones de Xilinx antiguas enPCs de ltima generacin con sistemas

    operativos nuevos, pueden existir problemas a

    la hora de la implementacin, por eso es

    recomendable si se trabaja con estas versiones

    utilizar PCs con versiones del sistemas

    operativos de la misma poca.

    Cuando se realizan operaciones de este tipo esrecomendable implementar cada uno de los

    mdulos utilizados en el sistema para evitar

    problemas al final cuando se tenga el sistema

    completo diseado.

    VII.BIBLIOGRAFIA

    1. http://es.wikipedia.org/wiki/Memoria_de_acceso_aleatorio

    2. - STEPHEN BROWN, ZVONKO VRANESIC.Fundamentos de Logica Digital con diseo en

    VHDL"

    http://es.wikipedia.org/wiki/Memoria_de_acceso_aleatoriohttp://es.wikipedia.org/wiki/Memoria_de_acceso_aleatoriohttp://es.wikipedia.org/wiki/Memoria_de_acceso_aleatoriohttp://es.wikipedia.org/wiki/Memoria_de_acceso_aleatoriohttp://es.wikipedia.org/wiki/Memoria_de_acceso_aleatoriohttp://es.wikipedia.org/wiki/Memoria_de_acceso_aleatorio