Upload
enzo-nicola-sandoval-fiori
View
214
Download
0
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