5

Click here to load reader

Reporte vhd11

Embed Size (px)

DESCRIPTION

practica realizada en la clase de vhdl (programacion ) unidad 3.REALIZADO CON EN Kit basys2

Citation preview

Page 1: Reporte vhd11

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

Page 2: Reporte vhd11

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

Page 3: Reporte vhd11

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

Page 4: Reporte vhd11

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