0% encontró este documento útil (0 votos)
119 vistas21 páginas

"Memorias Ram": Práctica No. 11

Este documento describe el diseño de una memoria RAM de 16x8 en VHDL. Explica el funcionamiento de las memorias RAM, y presenta el código VHDL para implementar una memoria RAM con este tamaño que muestre la dirección y el dato en displays.

Cargado por

Kevin Flores
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
119 vistas21 páginas

"Memorias Ram": Práctica No. 11

Este documento describe el diseño de una memoria RAM de 16x8 en VHDL. Explica el funcionamiento de las memorias RAM, y presenta el código VHDL para implementar una memoria RAM con este tamaño que muestre la dirección y el dato en displays.

Cargado por

Kevin Flores
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD AUTÓNOMA METROPOLITANA

UNIDAD AZCAPOTZALCO

División de C.B.I. Departamento de Electrónica

LABORATORIO DE DISEÑO LÓGICO

PRÁCTICA No. 11.

“MEMORIAS RAM”

EQUIPO 8

Alavez Rosas Nelly Yessenia 2203000759


Flores Figueroa Kevin Ulises 2213030661
Sanchez Torres Keyla Aranza 2193004403

Profesor:

Francisco Javier Sánchez Rangel

CEL01
TRIMESTRE 24I

14/05/24
OBJETIVOS:
1. Conocer el funcionamiento de las memorias RAM.
2. Diseñar en VHDL una memoria RAM.

MARCO TEÓRICO.
Describir que es una memoria RAM.
Es aquella que acepta información nueva y la almacena para usarla después. El proceso de
almacenamiento de información nueva en la memoria se le conoce como operación de
escritura en memoria. El proceso de transmisión de la información almacenada en la mem oria
se le conoce como lectura de la memoria.
La información binaria se almacena en la memoria en grupo de bits, que se llaman palabras.
Una palabra es una entidad de bits que entra y sale de la memoria como unidad.
Un grupo de unos y ceros puede representar:
1. Un número.
2. una instrucción.
3. uno o varios caracteres alfanuméricos.
4. u otra información codificada en binario.
Un grupo de ocho bits se llama byte. La mayor parte de las memorias emplean palabras que
son múltiplos de ocho bits. Generalmente, la capacidad de una unidad de memoria se indica
como la cantidad de bytes que puede almacenar.

Diagrama a bloques de una memoria RAM.


La comunicación entre una memoria y su medio ambiente se logra por medio de:

•Líneas de entrada y salida de datos,

•Líneas de selección de dirección

•Líneas de control que indican la dirección de la transferencia de la información.

Diagrama de una memoria RAM.


Operación de escritura.
1. Aplique la dirección binaria de la palabra deseada a las líneas de dirección.
2. Aplique los bits de datos que deben almacenarse a las líneas de entrada de datos.

3. Active la entrada Write.

Diagrama de bloques de la escritura de una memoria RAM.


Operación de lectura.
1. Aplique la dirección binaria de la palabra deseada a las líneas de dirección.
2. Active la entrada Read.

Diagrama de bloques de la lectura de una memoria RAM.

Entradas de control de un chip de memoria.

Entradas de control de una memoria.


Celda de RAM estática.
Chip de RAM de 16 palabraspor 1 Bit.

Búfer de tres estados.

Búfer de tres estadosque forman una línea Multiplexada de OL.


Mencionar los distintos tipos de memorias RAM que existen y comentar cómo
funcionan.
Según las operaciones permitidas sobre la memoria:
De sólo lectura:
Las cuales son un medio de almacenamiento utilizado en ordenadores y dispositivos
electrónicos, que permite solo la lectura de la información y no su escritura,
independientemente de la presencia o no de una fuente de energía.
• ROM (read-only memory)
• PROM (Programmable read-only memory)
• EPROM (Erasable programmable read-only memory)
• EEPROM (memoria programable y borrable eléctricamente solo de lectura.) De
lectura y escritura:

La memoria de lectura-escritura es un tipo de memoria de computadora en la que se puede


escribir y de la que se puede leer con relativa facilidad, es decir, utilizando señales eléctricas
normalmente asociadas a la ejecución de un software, y sin ningún otro proceso físico. El
término relacionado RAM (para "memoria de acceso aleatorio") significa algo diferente; se
refiere a la memoria que puede acceder a cualquier lugar de la memoria en una cantidad de
tiempo constante.
El término también podría referirse a las ubicaciones de memoria que tienen permisos de
lectura y escritura. En los sistemas informáticos modernos que utiliza la segmentación de la
memoria, cada segmento tiene una longitud y un conjunto de permisos (por ejemplo, lectura,
escritura, ejecución) asociados a él. RAM (memorias de acceso aleatorio)

• SRAM (Estática)

• DRAM (Dinámica)
Según la estabilidad de la información almacenada:
Volátiles: La información almacenada en la memoria se pierde al cortar la alimentación.
Ejemplo: RAM.
No volátiles: Retienen la información aún sin alimentación, el contenido es memorizado sin
consumo energético. Ejemplo: ROM.
Según el soporte físico de almacenamiento:
Eléctrico: Memorias de semiconductores estáticas (biestables) y dinámicas (condensadores).
Magnético: Disquetes. Discos Duros.
Óptico: CD y DVD.
Mecánico: Tarjetas perforadas.
DESARROLLO TEÓRICO

Diseñe en VHDL una Memoria RAM de 16x8, la memoria debe tener salida con buffers
de tres estados.

Figura 1. Diagrama a bloques de la memoria RAM 16 x 8.

Operación de escritura:
1. Aplicar la dirección binaria de la palabra deseada a las líneas de dirección.
2. Aplicar los bits de datos que deben almacenarse a las líneas de entrada de datos.
3. Activar la entrada write.

Figura 2. Escritura de la memoria RAM.

Operación de lectura:
1. Aplicar la dirección binaria de la palabra deseada a las líneas de dirección.
2. Activar la entrada read..

Figura 3. Lectura de la memoria RAM.


Nota:
Cuando se realice la escritura de un dato en alguna celda de memoria, es necesario colocar el
estado de la memoria en lectura y ya una vez colocado el dato ahora si cambiar al estado de
escritura, ya que de lo contrario se sobre-escribe y habría un error en la escritura de la celda.

Dado que se deben mostrar en los displays los datos de las celdas de memoria, es necesario
hacer un bloque de un decodificador de siete segmentos para reducir el tamaño del programa
principal.

Figura . Decodificador de 7 segmentos.

Figura . Diagrama a bloques de memoria RAM 16 x 8 con salida con buffer de 3 estados.

Código VHDL
library ieee;
use ieee.std_logic_1164.all;
entity Display is
port(Bin: in std_logic_vector(3 downto 0);
Seven: out std_logic_vector(6 downto 0));
end Display;

architecture Display_arch of Display is


begin
with Bin select
Seven <= "1000000" when "0000",
"1111001" when "0001",
"0100100" when "0010",
"0110000" when "0011",
"0011001" when "0100",
"0010010" when "0101",
"0000010" when "0110",
"1111000" when "0111",
"0000000" when "1000",
"0010000" when "1001",
"0001000" when "1010",
"0000011" when "1011",
"1000110" when "1100",
"0100001" when "1101",
"0000110" when "1110",
"0001110" when others;
end Display_arch;
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all;
entity RAM is
port(CLK: in std_logic;
we,re: in std_logic;
adrs: in std_logic_vector(3 downto 0);
Din: in std_logic_vector(7 downto 0);
Dout: buffer std_logic_vector(7 downto 0);
ADisplay: out std_logic_vector(6 downto 0);
DirDisplay: out std_logic_vector(6 downto 0);
dDisplay: out std_logic_vector(6 downto 0);
DH: out std_logic_vector(6 downto 0);
DL: out std_logic_vector(6 downto 0);
desc: in std_logic_vector(6 downto 0)) ;
end RAM;
architecture RAM_arch of RAM is
type memtype is array(0 to 15) of std_logic_vector(7 downto 0);
signal mem: memtype;
signal mout: std_logic_vector(7 downto 0);
signal Display_Dat_Al_DH: std_logic_vector(6 downto 0);
signal Display_Dat_Al_DL: std_logic_vector(6 downto 0);
signal Reloj: std_logic;
signal Div: std_logic_vector(25 downto 0);
component Display is
port (Bin: in std_logic_vector (3 downto 0);
Seven: out std_logic_vector (6 downto 0));
end component;
begin
ADisplay <= "0001000";
dDisplay <= "1000010";
process(CLK)
begin
if CLK'event and CLK='1' then
Div <= Div+1;
end if;
end process;
Reloj <= Div(25);
process(CLK)
begin
if CLK'event and CLK='1' then
if we = '1' then
mem(to_integer(unsigned(adrs))) <= Din;
end if;
Dout <= mout;
end if;
end process;
mout <= mem(to_integer(unsigned(adrs))) when re = '1' else (others => 'Z');
DisplayDir: Display port map (adrs, DirDisplay);
DisplayH: Display port map (Dout(7 downto 4), Display_Dat_Al_DH);
DisplayL: Display port map (Dout(3 downto 0), Display_Dat_Al_DL);
DH <= Display_Dat_Al_DH when re='1' else "1111111";
DL <= Display_Dat_Al_DL when re='1' else "1111111";
end RAM_arch;
DESARROLLO EXPERIMENTAL.
Implemente en VHDL la memoria RAM diseñada y compruebe su
funcionamiento. La dirección y el dato de salida de la memoria RAM se deben
desplegar en los displays de la tarjeta de desarrollo DE2.

Imagen 1.1.- Programa del diseño de la Memoria RAM.


Imagen 1.2.- Programa Completo del diseño de la Memoria RAM.
Imagen 1.3.- Circuito FPGA o RTL del diseño de la Memoria RAM.

Imagen 1.4.- Circuito FPGA o RTL donde se muestra cómo se conforma la


Memoria RAM.
Imagen 1.5.- Circuito FPGA o RTL donde se muestran los MUX del Display de la Memoria RAM.
Imágenes 1.6.- Simulación DHL del diseño de la Memoria RAM.
Imágenes 1.7.- Asignación de pines del diseño de la Memoria RAM.
Usando la tarjeta DE2 pudimos verificar el funcionamiento de nuestro diseño En la
imagen apreciamos nuestra memoria funcionando pues podemos apreciar en un
display, en uno se aprecia el ADRS, mientras que en el otro se aprecia el dato, en
la imagen apreciamos al ADRS en estado 8, mientras que en el de dato vemos el 8
en estado 8.

Imágenes 1.8.- Resultado usando la tarjeta DE2 del diseño de la Memoria RAM.

MATERIAL Y EQUIPO.

• Computadora PC.

• Software Quartus II.

• Tarjeta de desarrollo ALTERA DE2.

BIBLOGRAFÍA Y/O PÁGINAS WEB.


• MANO, KIME; “FUNDAMENTOS DE DISEÑO LÓGICO Y DE
COMPUTADORAS”; 3ª EDICIÓN; ED. PEARSON 2005.
• MAXINEZ, ALCALÁ; “VHDL: EL ARTE DE PROGRAMAR SISTEMAS
DIGITALES”; ED. CECSA 2010.

• SÁNCHEZ RANGEL; NOTAS DEL CURSO DE DISEÑO LÓGICO.


• SCHNADOWER; “FUNDAMENTOS DE DISEÑO DIGITAL Y VHDL”; UAM 2013.
• QUARTUS II HANDBOOK VERSION 13.0, VOLUME 1: DESIGN AND
SYNTHESIS; ALTERA 2013.
• DE2 DEVELOPMENT AND EDUCATION BOARD, USER MANUAL; ALTERA
2012.

CONCLUSIONES.

Alavez Rosas Nelly Yessenia 2203000759


En esta práctica se conoció el funcionamiento de las memorias de acceso aleatorio (RAM)
las cuáles se caracteriza por almacenar nueva información binaria dentro de un conjunto de
palabras conformadas por n bits (regularmente se utiliza múltiplos de ocho bits) , a este
proceso se le denomina escritura, una vez guardados los datos es posible consultarlos al
activar la operación de lectura, no obstante estás memorias poseen el inconveniente de que
si se les corta el suministro de energía la información resguardada se perderá.

Es de suma importancia tener en cuenta que los datos gestionados por la RAM pueden
representar: instrucciones, números, alguna codificación en binario o caracteres
alfanuméricos.

No hay que perder de vista que estas memorias consisten en una integración a gran escala
puesto que internamente contienen un cierto número de flip flops conectados a compuertas
lógicas con la finalidad de almacenar los bits, asimismo es conveniente añadir
decodificadores a fin de acceder a cada una de las direcciones de memoria, de esta manera
se podrá ejecutar alguna de las dos operaciones, siempre y cuando se habilite el selector del
chip.

Ciertamente resulta conveniente representar a la RAM por medio de un bloque que en


primera instancia específica la capacidad de la memoria señalando el número de palabras
como 2^k de n bits por registro, acompañado de las señales R/W', CS seguidas de los buses
de direcciones, entrada y salida de datos. Cómo se hizo en la presente práctica.

Ahora bien, en lo que respecta al diseño de la RAM en VHDL, previamente surge la


necesidad de analizar los arreglos, debido a que estos facilitan declarar un nuevo tipo de
dato con ciertas características específicas, para este caso en particular la nueva herramienta
permite establecer mediante líneas de código la capacidad de almacenamiento, dado que se
indican el número de palabras seguido del tamaño de ellas afín de crear una señal con las
cualidades anteriormente mencionadas, adicionalmente es obligatorio añadir el paquete use
ieee.numeric_std.all puesto que las direcciones de memoria deben ser convertidas a enteros
sin signo, en general para completar el desarrollo de la memoria se deben agregar algunas
señales, postulados PROCESS y si el diseño lo requiere las instanciaciones
correspondientes.
Con los nuevos conocimiento adquiridos fue posible realizar el diseño del proyecto
propuesto en esta práctica, el cuál fue muy representativo ya que en un principio cuando se
estudió la teoría tanto el concepto de palabra, escritura y lectura resultaban sencillos de
comprender, sin embargo muy abstractos, cabe recalcar que eso se soluciona al momento de
contemplar la funcionalidad de la memoria una vez que se cargó el [Link] a la tarjeta
de desarrollo ALTERA DE2, por ende fue muy fácil asimilar la escritura de los bits en cada
una de las direcciones de memoria puesto que todo se veía reflejado en los displays de 7
segmentos, lo mismo se cumple para la escritura a la que se le añadieron buffers de tres
estados.

Flores Figueroa Kevin Ulises 2213030661


Al concluir esta práctica sobre memorias RAM, he logrado cumplir con los objetivos
propuestos de manera satisfactoria. En primer lugar, he adquirido un entendimiento
profundo del funcionamiento de las memorias RAM, comprendiendo su importancia en el
almacenamiento temporal de datos y su rol crucial en el rendimiento general de un sistema
informático. Aprendí sobre sus características principales, como la volatilidad, la velocidad
de acceso y los diferentes tipos de RAM disponibles en el mercado.

En segundo lugar, he aplicado mis conocimientos teóricos al diseño de una memoria RAM
utilizando el lenguaje de descripción de hardware VHDL. A través de esta experiencia, no
solo reforcé mis habilidades en VHDL, sino que también entendí mejor los aspectos
prácticos de la implementación y simulación de memorias RAM en entornos digitales. El
proceso de codificación, síntesis y prueba del diseño me permitió visualizar cómo se
comporta la memoria en distintas condiciones y cómo optimizar su funcionamiento para
aplicaciones específicas.

En resumen, esta práctica me ha proporcionado una combinación valiosa de teoría y


aplicación práctica, fortaleciendo mis competencias en el diseño y comprensión de
componentes clave de la arquitectura computacional. Estoy satisfecho con los resultados
obtenidos y con el conocimiento adquirido, que sin duda será fundamental en mi desarrollo
profesional en el campo de la ingeniería electrónica y la informática.

Sanchez Torres Keyla Aranza 2193004403


En esta práctica tuvimos la oportunidad de explorar en profundidad los conceptos teóricos
de las memorias RAM, que es una forma de memoria de acceso aleatorio en la que el
procesador puede leer y escribir datos temporalmente mientras realiza tareas y se ut iliza
para almacenar datos que están siendo utilizados activamente por el sistema operativo y los
programas en ejecución. Además, exploraron sus diversos tipos hasta las especificaciones
clave que influyen en su funcionamiento.

Mediante el desarrollo teórico se abordó el diseño de una memoria RAM de 16x8 utilizando
el lenguaje de codificación en VHDL que, no solo implicó la creación de la estructura
lógica de la memoria, sino también la integración de buffers de tres estados para gestionar
eficientemente las salidas y esta etapa permitió visualizar y planificar el funcionamiento del
sistema antes de su implementación física y reproducción en la tarjeta ALTERA DE2
proporcionada. La fase experimental, en resumen, llevó el diseño teórico a la práctica al
implementar la Memoria RAM diseñada en VHDL y la comprobación del funcionamiento
del código en el programa Quartus II y posteriormente la validación de este en la tarjeta
ALTERA DE2. Este paso fue importante para comprobar la funcionalidad del diseño. La
visualización exitosa de la dirección y los datos de salida en los displays de la tarjeta de
desarrollo DE2 validó la efectividad del diseño, demostrando su capacidad para almacenar
y recuperar datos de manera precisa y confiable.

Finalmente, podemos decir que el desarrollo de este proyecto no solo permitió comprender
los principios teóricos detrás de las memorias RAM, sino también aplicar ese conocimiento
en la creación y validación de un sistema funcional. El diseño en VHDL de una memoria
RAM de 16 x 8 con salida con buffers de tres estados es una solución eficiente para el
almacenamiento y acceso a datos en sistemas digitales. Su capacidad de almacenamiento, el
control de salida mediante
buffers de tres estados y su integración en sistemas más grandes lo convierten en
una opción eficiente en una amplia gama de aplicaciones.

También podría gustarte