Sei sulla pagina 1di 7

LABORATORIO DE MICROELETRONICA

INGENIERIA ELECTRÓNICA

LABORATORIO Nº5 SINTESIS CON VHDL DE SISTEMAS SECUENCIALES MODULARES


OSCAR LEONARDO SANDOVAL HIGUERA Cód.: 0160978
JEFFERSON JAIMES BERNATE Cód.: 0161057

I. INTRODUCCION comprobaciones, el algoritmo de Booth es más útil con


multiplicación signada.
En la microelectrónica el uso de memorias es muy
utilizado dado que permite usar los recursos disponibles El método de corrimiento de registros almacena los
de menea mucho más eficiente pues con el uso de esta datos, tanto el multiplicando como el multiplicador en
registros los cuales se van corriendo y sumando como
los datos se ordenan mediante direcciones establecidos
se haría en una multiplicación algebraica normal.
y el acceso a ellos es mucho más fácil. Los procesadores
y, valga la redundancia, las memorias de un computador
11101111
se construyen a base de ellas interconectándose
111011
mediante buses que transportan desde datos hasta
direcciones y en el caso de tener mas de una memoria
---------------------
BITS de selección que permiten ya sea leer o escribir 11101111
sobe una de ellas. 11101111
00000000
El siguiente informe presenta una síntesis en VHDL de
11101111
una memoria estática de acceso aleatorio en al cual se
11101111
guardan datos de una multiplicación y posteriormente
se accede a ellos mediante comando externos.
11101111
-----------------------------
11011100010101
II. OBJETIVOS De esta manera se puede implementar fácilmente un
multiplicador corriendo el multiplicando y sumándolo o
 Desarrollar un a nivel RTL y sintetizarlo sumando ceros dependiendo del valor de cada bit del
utilizando VHDL multiplicador.
 Analizar el funcionamiento de un multiplicador
binario de 4 bits. Memoria SRAM de 2N*K
 Adoptar un algoritmo apropiado para su
implementación. Una SRAM o memoria estática de acceso aleatorio es un
 Expresar de manera personal los resultados tipo de memoria basada en semiconductores que es
obtenidos. capaza de mantener los datos (mientras este
alimentada) sin necesidad de circuito de refresco (no se
III. MARCO TEORICO descargan). Sin embargo, si son memorias volátiles, s
decir que pierden la información si se les interrumpe la
Algoritmo de la multiplicación binaria: alimentación eléctrica.

La multiplicación 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 método usado en esta implementación fue el de
corrimiento de registros debido a que las sumas Figura 1. Esquema Eléctrico de una memoria RAM.
sucesivas requieren muchas operaciones y
LABORATORIO DE MICROELETRONICA
INGENIERIA ELECTRÓNICA
Estas memorias son de acceso aleatorio, lo que significa
que las posiciones en la memoria pueden ser escritas o
leídas en cualquier orden, independientemente de cuál
fuera la última posición de memoria leída o escrita.
Cada bit en una SRAM se almacena en cuatro
transistores, 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
Figura 2. Componentes Internos del Sistema.

V. DESARROLLO DE LA PRACTICA

En la implementación y diseño de la estructura se tiene


la siguiente Entidad general:

Figura 3. Jerarquía del Diseño Implementado.

De manera general, el sistema multiplica 2 números 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 operación de
multiplicación, donde su resultado es guardado en otro
Figura 1. Entidad General de todo el sistema. registro, y luego guardado en la posición 2,.
La información se introduce por un teclado matricial de
4x5, el resultado se visualiza en notación decimal en 4
Esta Entidad Principal contiene internamente 8 dígitos del display siete segmentos del FPGA Nexys2.
componentes que permiten realizar las operaciones
requeridas según los objetivos planteados, en la Figura Para la implementación de este sistema se implemento
2 se puede observar la interconexión del sistema: el modulo “Dectepuls” que permite generar un pulso
por tecla pulsada si importar cuánto tiempo se
mantenga la tecla oprimida, de esta manera le facilita al
usuario la introducción de los datos.
LABORATORIO DE MICROELETRONICA
INGENIERIA ELECTRÓNICA
Estructura Final

Dentro de estos 8 componentes existe uno vale la pena


resaltar es la EstructuraFinal la cual contiene la Macro-
operación de la Multiplicación y asignación de cada uno
de los datos a la RAM.

Es importante tener en cuenta que para la


implementación de este diseño se utilizaron dos
unidades de control, una Unidad Esclava y una Unidad
Maestra. La unidad Esclava “Unidad_Control” se
encarga de realizar la operación de multiplicación y
guardar en los registros A, B y C.
Figura 5. EstructuraFinal y sus Componentes internos.
Enviando señales de control a la Unidad Maestra
“Unidad_Master” le informa sobre el avance de las
operaciones, y le indica en qué momento puede Multiplicador
guardar en la RAM, luego la unidad maestra envía ProductoFinal:
señales de control que le permiten a la unidad esclava El multiplicador se diseño mediante corrimiento y suma
continuar con la operación de multiplicación, después de registros en los cuales se guardan los datos de la
de haber guardado los dos primeros datos en la RAM. multiplicación:
Cuando la operación de multiplicación es completada y
unidad esclava envía una señal de control para que se
guarde ese resultado en la RAM para dar por terminado
el proceso.

La operación de guardar en la RAM de ejecuta


utilizando un multiplexor “Multixrg” que permite Figura 5. Jerarquía del Diseño del Multiplicador.
seleccionar el dato de cada uno de los registros y
enviarlos a la posición de memoria requerida.

Figura 4. Jerarquía del Modulo Completo del Sistema


Multiplicador y RAM.

Figura 6. Método y Pseudocódigo de la Multiplicación.


LABORATORIO DE MICROELETRONICA
INGENIERIA ELECTRÓNICA
Como se observa en el pseudocódigo a medida que se
realizan las operaciones se realiza el corrimiento del
registro tantas veces como sea el largo del número.

La siguiente carta ASM muestra el algoritmo usado para


realizar la multiplicación:

Figura 9. Unidad de Control de la Multiplicación


Figura 7. Carta ASM de la Multiplicación.
(Unidad Esclava)

Unidad de Control Maestra

En la unidad de control maestra se envían las señales


que establecen los momentos de operación de los
demás componentes externos a la multiplicación, en
este caso a la memoria RAM. Esta controla la escritura
en la RAM permitiendo realizar la operación de
multiplicación sin ningún problema.

Los datos de los registro se guardan antes de que la


operación de multiplicación sea realizada, debido a que
si se hiciera esto luego los datos de los registro estarían
modificados por efecto de los corrimientos realizados
por la operación de multiplicación.

Figura 8. Procesador de Datos implemento.


LABORATORIO DE MICROELETRONICA
INGENIERIA ELECTRÓNICA

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

M1
Si Master No
Ya=1; enram=1; rw=0;
=1?
GuardaA
Enram=1; rw=1;

Si Aux=1? No
AD=1;

GuardaB
Enram=1; rw=1; AD=1;

Termina M2
S0=1; enram=0; enram=1; rw=0;

Pregunta

Si Aux=1? No

Si Done= No
1?
AD=1;

AD=1; M3
enram=1; rw=0;
GuardaC
Enram=1; rw=1;

Espera2 Aux=1?
Si No

Retorna a
Aux=1? No ESPERA
Si

Figura 10. Carta ASM de la Unidad de Control Maestra


Continúa Siguiente Columna
LABORATORIO DE MICROELETRONICA
INGENIERIA ELECTRÓNICA
S0 => En ‘1’ Le Indica a la Unidad Esclava cuando puede
continuar con la operación de multiplicación. VI. CONCLUSIONES

Ya => En ‘1’ Le indica a la Unidad Esclava cuando borre  El uso de memorias resulta de utilidad cuando
registros y luego de haber guardado en memoria RAM. se requiere acceder a los datos en cualquier
momento del programa sin necesidad de re
Enram => Habilitador de Memoria RAM. calcular o reingresarlos.
AD => En ‘1’ incrementa la Posición de la Memoria RAM  La mejor forma de ingresar datos a una
y en ‘0’ inicializa a la posición “000”.
memoria es a través de registros los cuales me
Master=> En ‘1’ le indica a la Unidad Maestra cuando almacenan los datos provisionalmente para
los datos han sido guardados en los Registros. moverlos o modificarlos para luego escribirlos
en la posición de memoria correspondiente.
Rw=> En ‘1’ indica la Escritura de la RAM y en ‘0’ su
lectura.  El diseño a nivel RTL nos permite una
descripción más detallada de los algoritmos que
Done=> Le indica a la Unidad Maestra que la se implementan de manera que los diseños a
multiplicación ha terminado. base de cata ASM.

Aux => En ‘1’ el usuario indica que quiere ver lo que sea  En la implementación de un sistema de esta
ha guardado en memoria RAM. magnitud es necesario calcular en términos de
ciclos de reloj cuanto demora cada
microperacion y macrooperacion para no
Componentes para el Usuario: utilizar estados de mas en las unidades de
control.
- BCDCONV
- CONTASEG  Eventualmente en estos diseños de complejidad
- DIVISORA elevada, pueden existir problemas en la
- MUXDIS sintetización de los módulos y es necesario,
- DETECPULS tener cuidado para evitar conflictos con el
software.
Estos componentes permiten visualizar en 1 display
siete segmentos de 4 digitos, los datos ingresados
 En este tipo de operaciones la velocidad de
por el usuario y a la vez el resultado en notación
decimal. procesamiento se puede optimizar
- BCDCON convierte el dato en los dígitos de 4 considerablemente, pero es necesario tener en
bits para decodificar en los siete segmentos. cuenta que la información proveniente del
- CONTASEG decodifica los 4 dígitos de BCDCON usuario se realiza a una velocidad cientos de
en datos para los displays. miles de millones más lenta que la máxima
- MUXDIS multiplex los 4 dígitos. velocidad de procesamiento.
- DIVISORA es el divisor de frecuencia para los
displays.
- DECTEPULS le permite al usuario tener alguno
tecla pulsada sin que esto sea leído como una
serie de datos para la operación.
LABORATORIO DE MICROELETRONICA
INGENIERIA ELECTRÓNICA
RECOMENDACIONES

 Cuando se tienen periféricos de entrada como


teclados matriciales, es preferible implementar
módulos programados y códigos que permitan
al usuario ingresar los datos de manera
cómoda.

 Cuando se tienes versiones de Xilinx antiguas en


PC’s de última generación con sistemas
operativos nuevos, pueden existir problemas a
la hora de la implementación, 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 es


recomendable implementar cada uno de los
módulos utilizados en el sistema para evitar
problemas al final cuando se tenga el sistema
completo diseñado.

VII. BIBLIOGRAFIA

1. http://es.wikipedia.org/wiki/Memoria_de_acce
so_aleatorio

2. - STEPHEN BROWN, ZVONKO VRANESIC.


“Fundamentos de Logica Digital con diseño en
VHDL"

Potrebbero piacerti anche