Sunteți pe pagina 1din 7

LABORATORIO DE MICROELETRONICA

INGENIERIA ELECTRNICA

LABORATORIO N5 SINTESIS CON VHDL DE SISTEMAS SECUENCIALES MODULARES
OSCAR LEONARDO SANDOVAL HIGUERA Cd.: 0160978
JEFFERSON JAIMES BERNATE Cd.: 0161057


I. INTRODUCCION

En 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 hasta
direcciones 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 multiplicador
binario de 4 bits.
Adoptar un algoritmo apropiado para su
implementacin.
Expresar de manera personal los resultados
obtenidos.

III. MARCO TEORICO

Algoritmo 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
-----------------------------
11011100010101
De 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 2
N
*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, s
decir que pierden la informacin si se les interrumpe la
alimentacin elctrica.

Figura 1. Esquema Elctrico de una memoria RAM.


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


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 2
3
*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 al
usuario la introduccin de los datos.

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 Maestra
Unidad_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 ejecuta
utilizando 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.


LABORATORIO DE MICROELETRONICA
INGENIERIA ELECTRNICA

Como se observa en el pseudocdigo a medida que se
realizan las operaciones se realiza el corrimiento del
registro tantas veces como sea el largo del nmero.

La siguiente carta ASM muestra el algoritmo usado para
realizar la multiplicacin:



Figura 7. Carta ASM de la Multiplicacin.


Figura 8. Procesador de Datos implemento.


Figura 9. Unidad de Control de la Multiplicacin
(Unidad Esclava)



Unidad de Control Maestra

En la unidad de control maestra se envan las seales
que establecen los momentos de operacin de los
dems componentes externos a la multiplicacin, en
este caso a la memoria RAM. Esta controla la escritura
en la RAM permitiendo realizar la operacin de
multiplicacin sin ningn problema.

Los datos de los registro se guardan antes de que la
operacin de multiplicacin sea realizada, debido a que
si se hiciera esto luego los datos de los registro estaran
modificados por efecto de los corrimientos realizados
por la operacin de multiplicacin.






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

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

Estos 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 4
bits para decodificar en los siete segmentos.
- CONTASEG decodifica los 4 dgitos de BCDCON
en datos para los displays.
- MUXDIS multiplex los 4 dgitos.
- DIVISORA es el divisor de frecuencia para los
displays.
- DECTEPULS le permite al usuario tener alguno
tecla 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 cualquier
momento del programa sin necesidad de re
calcular o reingresarlos.
La mejor forma de ingresar datos a una
memoria 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 una
descripcin 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 esta
magnitud 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 complejidad
elevada, pueden existir problemas en la
sintetizacin de los mdulos y es necesario,
tener cuidado para evitar conflictos con el
software.
En este tipo de operaciones la velocidad de
procesamiento se puede optimizar
considerablemente, pero es necesario tener en
cuenta que la informacin proveniente del
usuario se realiza a una velocidad cientos de
miles de millones ms lenta que la mxima
velocidad de procesamiento.




LABORATORIO DE MICROELETRONICA
INGENIERIA ELECTRNICA

RECOMENDACIONES
Cuando se tienen perifricos de entrada como
teclados 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 en
PCs 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 es
recomendable 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_acce
so_aleatorio
2. - STEPHEN BROWN, ZVONKO VRANESIC.
Fundamentos de Logica Digital con diseo en
VHDL"

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