Click here to load reader
Upload
miguel-angel-pena
View
136
Download
0
Embed Size (px)
DESCRIPTION
practica realizada en la clase de vhdl (programacion ) unidad 3.REALIZADO CON EN Kit basys2
Citation preview
SEP DGEST SNEST
INSTITUTO TECNOLÓGICO DE MATAMOROS
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
Diseño Digital con VHDL
Equipo:
Alumno(s): Núm. de control:
Mario Arturo Cruz Colunga 11260077
Miguel Angel Fierros Peña 11260081
Hermenegildo Martínez de la Cruz 11260095
Jorge Alejandro Reyes Torres 11260108
H. MATAMOROS, TAM. 1 de Noviembre del 2013
Practica 9
Objetivo:
Utilizando la entidad de una memoria ROM, Realizar la implementación de un decodificador de 3 a 8 donde las direcciones sean definidas por 3 SWs deslizables del basys 2 y la salida sea mostrada con los LEDs.
Desarrollar una memoria ROM que simule un decodificador de BCD a 7 segmentos. Utilizar el Basys2 para la implementación.
Teroria:
La memoria de solo lectura, conocida también como ROM (acrónimo en inglés de read-only memory), es un
medio de almacenamiento utilizado en ordenadores y dispositivos electrónicos, que permite sólo la lectura de la
información y no su escritura, independientemente de la presencia o no de una fuente de energía.
Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil
Material:LaptopKit spartan3eSoftware aldec HDL, xilinx ISE, adept.Procedimiento:
Se crea nuevo proyecto en aldec HDL
Código del decodifidor 3 a 8Library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity rom is
port (datos: out std_logic_vector (7 downto 0);bus_dir: std_logic_vector(2 downto 0));
end rom; architecture programa of rom issignal dato: std_logic_vector( 7 downto 0);type memoria is array (0 to 7) of std_logic_vector(7 downto 0);constant mem_rom : memoria := ( "00000001",
"00000010", "00000100", "00001000", "00010000",
"00100000", "01000000", "10000000");
beginprocess (bus_dir)begin
dato <= mem_rom (conv_integer (bus_dir));end process ; datos<=dato;end programa;
código bcd a 7 segmentoslibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity bcd is
port (a_to_g: out std_logic_vector (6 downto 0);bus_dir: std_logic_vector(3 downto 0));
end bcd; architecture programa of bcd issignal dato: std_logic_vector( 6 downto 0);type memoria is array (0 to 9) of std_logic_vector(6 downto 0);constant mem_rom : memoria := ("1000000",
"1111001", "0100100", "0110000", "0011001",
"0010010", "0000010", "1111000", "0000000", "0010000");
beginprocess (bus_dir)begin
if bus_dir > "1001" thendato <= "1111111";
elsedato <= mem_rom (conv_integer (bus_dir));end if;
end process ; a_to_g<=dato;end programa;
Observaciones y conclusiones: Los programas realizaron el funcionamiento correctamente de acuerdo a lo previsto, aunque hubieron algunos errores al comienzo porque se equivocaron en el nombre de la librería arith.