ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Práctica Memorias


Enviado por   •  26 de Noviembre de 2013  •  2.139 Palabras (9 Páginas)  •  376 Visitas

Página 1 de 9

UPIITA – IPN

Materia: Circuitos Lógicos

Reporte 7. “Memorias”

- González Vázquez Eduardo Daniel

- León Juan Javier

- Vargas Alanis Michell Guadalupe

Equipo #6

LEED

Grupo: 2MM4

Resumen

Se analiza el funcionamiento de las memorias RAM y ROM

Abstract

The functionality of the counters, using the different types and configurations that exist, with multiple examples involved from the toy’s area to more industrial applications so we can observed its versatility and potential to be used in almost any area.

Introducción

Memoria RAM

RAM proviene de ("Random Access Memory") ó memoria de lectura aleatoria: es un dispositivo electrónico que se encarga de almacenar datos e instrucciones de manera temporal, de ahí el término de memoria de tipo volátil ya que pierde los datos almacenados una vez apagado el equipo; pero a cambio tiene una muy alta velocidad para realizar la transmisión de la información.

Memoria ROM

La memoria ROM, es un circuito integrado programado con unos datos específicos cuando es fabricado. Los chips de características ROM no solo se usan en ordenadores, sino en muchos otros componentes electrónicos también. Hay varios tipos de ROM.

Tipos de ROM

Hay 5 tipos básicos de ROM, los cuales se pueden identificar como:

ROM

PROM

EPROM

EEPROM

Memoria Flash

Desarrollo

1.- Implementar en FPGA una memoria de acceso aleatorio RAM de 64 bits con un bus de direcciones de 3 bits y un bus de datos de 8 bits, con terminales de control chip select “CS” y modo lectura o escritura “RD/WR”.

Para el desarrollo de esta memoria se utilizará la tarjeta de desarrollo Nexys 3.

El programa en VHDL quedó de la siguiente manera:

--Programa que simula el funcionamiento de una memoria RAM

entity ram is

Port ( cs : in STD_LOGIC;--Entrada de chip select

clk : in STD_LOGIC;--Reloj interno de la nexys

rdwr : in STD_LOGIC;--Entrada de lectura o escritura

ab : in STD_LOGIC_VECTOR (2 downto 0);--Entradas del selector

c : in STD_LOGIC_VECTOR (7 downto 0);--Control para la escritura

db : inout STD_LOGIC_VECTOR (7 downto 0));--Bus de datos

end ram;

architecture Behavioral of ram is

begin

data:process(cs,ab,c,clk)

variable d: STD_LOGIC_VECTOR (7 downto 0):="00000000";--Salida inicializada

variable d1: STD_LOGIC_VECTOR (7 downto 0):="00000001";--Salida de selector 000

variable d2: STD_LOGIC_VECTOR (7 downto 0):="00000011";--Salida de selector 001

variable d3: STD_LOGIC_VECTOR (7 downto 0):="00000111";--Salida de selector 010

variable d4: STD_LOGIC_VECTOR (7 downto 0):="00001111";--Salida de selector 011

variable d5: STD_LOGIC_VECTOR (7 downto 0):="00011111";--Salida de selector 100

variable d6: STD_LOGIC_VECTOR (7 downto 0):="00111111";--Salida de selector 101

variable d7: STD_LOGIC_VECTOR (7 downto 0):="01111111";--Salida de selector 110

variable d8: STD_LOGIC_VECTOR (7 downto 0):="11111111";--Salida de selector 111

variable p: integer range 0 to 100000:=0;--Variable para divisor de frecuencia

begin

if clk'event and clk='1' then

if p=100000 then--Realiza el divisor de frecuencia

p:=0;

if cs='1' then--Se activa la memoria

if rdwr='1' then--Se selecciona modo lectura

if ab="000" then d:=d1;--Se despliega el dato según el selector

elsif ab="001" then d:=d2;

elsif ab="010" then d:=d3;

elsif ab="011" then d:=d4;

elsif ab="100" then d:=d5;

elsif ab="101" then d:=d6;

elsif ab="110" then d:=d7;

elsif ab="111" then d:=d8;

else d:="00000000";

end if;

else--Se selecciona modo escritura

if ab="000" then d1:=c;--Se modifica el dato seleccionado

elsif ab="001" then d2:=c;

elsif ab="010" then d3:=c;

elsif ab="011" then d4:=c;

elsif ab="100" then d5:=c;

elsif ab="101" then d6:=c;

elsif ab="110" then d7:=c;

elsif ab="111" then d8:=c;

end if;

end if;

else d:="ZZZZZZZZ";--Chip select en 0

end if;

else p:=p+1;

end if;

db<=d;

end if;

end process;

end Behavioral;

Asignación de pines:

net "ab(0)" loc="M8";//Switches para el bus de dirección

net "ab(1)" loc="N8";

net "ab(2)" loc="U8";

net "cs" loc="T5";//Switch de chip select

net "rdwr" loc="V8";//Switch modo lectura o escritura

net "db(0)" loc="U16";//Leds para mostrar la información

net "db(1)" loc="V16";

net "db(2)" loc="U15";

net "db(3)" loc="V15";

net "db(4)" loc="M11";

net "db(5)" loc="N11";

net "db(6)" loc="R11";

net "db(7)" loc="T11";

net "c(0)" loc="V9";//Switches para el control

net "c(1)" loc="T9";

net "c(2)" loc="T10";

net "c(3)" loc="C4";

net "c(4)" loc="B8";

net "c(5)" loc="D9";

net "c(6)" loc="C9";

net "c(7)" loc="A8";

net "clk" loc="V10";//Reloj de la Nexys

Los resultados se muestran en las figuras siguientes:

Figura 1.- Se muestran los datos de la memoria

Figura 2.- Se escriben datos en la memoria

2.- Implementar en FPGA, una memoria ROM de 96 bits, distribuidos

...

Descargar como (para miembros actualizados) txt (16 Kb)
Leer 8 páginas más »
Disponible sólo en Clubensayos.com