Sunteți pe pagina 1din 12

Digitales II – Grupo 3

Facultad De Ingeniería – Universidad Del Magdalena

DISEÑO DE UNA MEMORIA EN EL


SOFTWARE XILINX ISE FOUNDATION

Juan Herrera Neira


Maury Herrera Torres
Luis Sierra Castro
Susana Thomas Troncoso

jdhn89@gmail.com

ABSTRACT:

This report will show the steps and processes to create a memory in the Xilinx ISE Foundation software. The
memory that was developed in this report is based on the 32x4-bit memory chip and the tool that gives us the
software I create a bidirectional data bus and a buffer system with high impedance for this to show the three
basic functions of a memory: writing, reading and high impedance (this last for not producing a conflict of data.)

KEYWORDS

Memory, registry, tri-state, writing, reading, high impedance, bidirectional.

1. INTRODUCCIÓN

La memoria es un dispositivo presente en los circuitos secuenciales esta retiene datos binarios durante algún
intervalo de tiempo, y tiene la función de escribir y leer dichos datos. La capacidad de almacenamiento de
una memoria está determinada por el tamaño de los datos que entran y por el número de estos que se
pueden ser guardados en ella. Es importante tener primero en cuenta el tamaño de la memoria, para así
conocer el tamaño del bus de datos y del bus de direcciones que hay que crear.

Cada dato tiene una dirección en la memoria, el cual se ingresa por el bus de dirección, y los controles de la
memoria se encuentran en el bus de control.

La memoria que se hizo en este informe cuenta con otra función aparte de la escritura y la lectura, esta es la
alta impedancia esta es necesaria puesto que ayuda a que no se presente conflictos de datos que se entran y
salen.

Dentro del contenido de este informe se vera todo el proceso, pasos y simulaciones respectivas de cada
bloque con su respectiva explicación para el mayor entendimiento del lector.

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.
Digitales II – Grupo 3
Facultad De Ingeniería – Universidad Del Magdalena

2. PROCEDIMIENTO

2.1 Unidad De Memoria 32x4 Bits

Lo fundamental que hay que analizar en el diseño, es la unidad de memoria que se va a emplear, la unidad
utilizada en este proyecto es la RAM32X4S que se encuentra en el software XILINX ISE FOUNDATION y se
muestra como la figura 1.

En la figura 1.1 se observa la tabla lógica de la RAM32X4S donde se puede observar que cuenta con varias
entradas en las que se encuentra “WE” que tiene como función servir de habilitador para el proceso de
escritura y que es activa a nivel alto, es decir, que activa la escritura de la memoria cuando en ella está
presente un “1” lógico.

Las entradas “D3 – D0” son las entradas de datos de la memoria y tiene un tamaño de 4 bit al igual que la
salida “O3 - O0”.

La entrada “WCLK” es donde se introduce la señal de reloj a la memoria. Esta señal controla el proceso de
escritura ya que solo se escribe cuando “WCLK” se encuentra en un flaco de subida y “WE” esta activada.

La figura 1.1 muestra que la memoria está permanentemente en proceso de lectura. Por lo que no hay forma
de deshabilitar completamente la memoria. Esto impide realizar un proceso de expansión, ya que es

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.
Digitales II – Grupo 3
Facultad De Ingeniería – Universidad Del Magdalena

necesario que la memoria se pueda deshabilitar completamente. Por lo que hay que modificar la memoria a
estas condiciones. En la figura 2 se muestra el cambio realizado a la RAM32X4S del software XILINX ISE
FOUNDATION.

En la figura 2 se observa que a la RAM32X4S se le adicionaron varias compuertas lógicas, una AND de dos
entradas, tres ANDs de tres entradas y un INV, cuya salida va a cada una de las ANDs de tres entrada. Con lo
anterior se logra crear otra entrada con el nombre “EN” que funciona como habilitador principal de la memoria.
Con esto se corrige el proceso de solo lectura ya que solo si la nueva entrada “WE” está en nivel bajo.
Además se organizaron las 5 entradas de dirección, en un bus de nombre “Busdir(4:0)” y las 4 entradas de
datos en otro bus de nombre “Busdat(3:0)”.

En la figura 2.1 aparece la RAM 32X4 encapsulada con las modificaciones necesarias para llevar a cambio la
expansión de la memoria. Después de haber creado el símbolo, se llevo a cabo la respectiva simulación para
verificar el correcto funcionamiento de la matriz.

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.
Digitales II – Grupo 3
Facultad De Ingeniería – Universidad Del Magdalena

Figura 2.2 Simulación MEMO1

En la figura 2.2 se escogieron dos direcciones de memoria para efectuar la simulación. La dirección A y la
dirección B. Se habilita la escritura de la memoria (we se cambia a alto), en el” busin” se introducen los datos
A y C. la memora habilitada para escritura desde 600ns se deshabilita a los 2000ns (we cambia a bajo), a
partir de los 2000ns la memoria empieza la lectura y el “busout” muestra los datos A y C respectivamente
guardados en la memoria

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.
Digitales II – Grupo 3
Facultad De Ingeniería – Universidad Del Magdalena

Creación de la matriz 2x4

Realizada la encapsulación de la unidad MEMO1 mostrada en la figura 2.2 se procede a crear la matriz
dispuesta para este proyecto que es de 2x4. En la figura 2.3 se observa el arreglo de unidades por filas y
columnas que comparten por igual el mismo bus de direcciones [XLXN_277(4:0)], la misma señal del reloj
[CLK] y la entrada WE, por su parte cada fila cuenta con un habilitador, la primera fila es habilitada por el [en1]
y la segunda por [en2]. El busin (15:0) provee 4 bits para cada columna hasta completar 16 bits y la salidas
de cada columna en la unidad MEMO1 son sumadas por compuertas OR para así obtener un bus de salida
(busout (15:0)) de 16 bits como se aprecia en la figura 2.2.

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.
Digitales II – Grupo 3
Facultad De Ingeniería – Universidad Del Magdalena

En la figura 2.4 se observa la misma matriz 2x4 desarrollada en la figura 2.3 solo que esta se encuentra
encapsulada para aprovechar espacio dentro del software y hacer mas fácil las conexiones con las entradas y
salidas de dicha matriz.

2.2 Creación del bloque bidireccional

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.
Digitales II – Grupo 3
Facultad De Ingeniería – Universidad Del Magdalena

Para solucionar cualquier posible problema de conflictos de datos se procede a la creación de un bus de

datos bidireccional, que tendrá la memoria que se está diseñando. Esto facilita los procesos de lectura,
escritura y alta impedancia en un solo bus de direcciones de la memoria. Cuando C0 es un 1 lógico se
selecciona el bus de salida y cuando C1 es un 1 lógico se activa el bus de entrada. Este bus esta conformado
en base a buffer de tres estados y se realizan las conexiones como se muestra en la figura 3.

En la figura 3.1 se observa encapsulado el anterior circuito para un uso mas practico en la simulación del
diseño.

Ya que el bus de salida “Busout(15:0)” esta formado por 16 datos, se necesita utilizar 16 encapsulados del
circuito anterior, para organizar este diseño lo dividimos en dos bloques; para el primer bloque se utiliza 8 de
estos encapsulados, el nuevo diseño se observa en la figura 3.2

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.
Digitales II – Grupo 3
Facultad De Ingeniería – Universidad Del Magdalena

Figura 3.2 Organización del primer bloque del bus bidireccional.

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.
Digitales II – Grupo 3
Facultad De Ingeniería – Universidad Del Magdalena

Ahora se encapsula el diseño anterior para mejor facilidad a la hora de simular la memoria completa, este se
muestra en la figura 3.3.

Figura 3.3 Encapsulado del primer bloque


del bus bidireccional

Para el segundo bloque se utilizan dos encapsulados “Inten2”, una OR de dos entradas y una NAND de dos
entradas con una entrada negada, estas compuertas lógicas me van seleccionar si el bus bidireccional es de
entrada o de salida, en la figura 3.4 se muestra la tabla de verdad de este circuito y en la figura 3.6 se observa
el diseño del segundo bloque.

CONT WR C1 C0

1 1 1 1

1 0 1 1

0 1 1 0

0 0 0 1

Figura 3.4 Tabla de verdad del bus bidireccional.

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.
Digitales II – Grupo 3
Facultad De Ingeniería – Universidad Del Magdalena

Figura 3.5 Segundo bloque del bus bidireccional.

En la figura 3.6 se muestra el bus bidireccional completo, encapsulando el circuito anterior.

Figura 3.6 Bus bidireccional completo

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.
Digitales II – Grupo 3
Facultad De Ingeniería – Universidad Del Magdalena

2.3 Memoria Completa

Este es el diseño de la memoria completa

El marcador “habilitador” debe estar en 1 para que la memoria escriba o lea los datos y solo espere
las entradas del “busdir” que es el encargado de seleccionar en que registro van a ingresarse los
datos, al estar en 0 la memoria se inhabilita totalmente

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.
Digitales II – Grupo 3
Facultad De Ingeniería – Universidad Del Magdalena

En la figura 3.8 se introducen los datos C y 06 en el bus de direcciones; cuando el controlador está
deshabilitado la memoria funciona perfectamente eso sucede de 0ns hasta 4000ns a partir de este
tiempo el bus bidireccional está en alta impedancia. Desde 100ns hasta 1600ns se la escritura esta
habilitada y en el bus bidireccional ingresan los datos 6 y B en las direcciones C y 6 respectivamente.
Desde 1600ns la memoria lee los datos ingresados en las direcciones dadas anteriormente. Entre
2600ns y 3100ns la memoria se inactiva mediante un habilitador que al cambiar de estado inhabilita
la memoria.

3. CONCLUSION

El software Xilinx ISE Foundation es una gran herramienta que todo ingeniero electrónico debería manejar
puesto que es fácil y muy practico a la hora de diseñar sus propios circuitos pues aporta todas las

herramientas necesarias al diseñador para simplificar al máximo el diseño sin importar lo complejo que sean
bien ya sean combinacionales o secuenciales, también es de gran importancia el papel que juegan las
memorias en nuestro tiempo, ya que siguen siendo y lo seguirán siendo, una tecnología universal en nuestra
época y para las nuevas tecnologías del futuro, ya que la mayoría de dispositivos utilizan memorias.

4. BIBLIOGRAFIA

[1] SEMICONDUCTOR MEMORIES. (MSC HEINER CASTRO G.)

[2] FLOYD, Thomas. Fundamentos de Sistemas Digitales. New Jersey: Pearson Education International. 2006.

[3] TOCCI, Ronald J y WIDMER Neal S. Sistemas Digitales, principios y aplicaciones. México: Pearson
Education. 2003.

Reporte No 1 – Septiembre 6 - Año 2010


Herrera J. Herrera M. Sierra L. Thomas S.

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