SEP

DGEST
INSTITUTO

TECNOLÓGICO

DE

SNEST
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-onlymemory), 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:
Laptop
Kit spartan3e
Software aldec HDL, xilinx ISE, adept.
Procedimiento:
Se crea nuevo proyecto en aldec HDL
Código del decodifidor 3 a 8
Library ieee;
use ieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entityromis
port (datos: outstd_logic_vector (7 downto 0);
bus_dir: std_logic_vector(2 downto 0)
);
endrom;
architecture programa of romis
signal dato: std_logic_vector( 7 downto 0);
type memoria isarray (0 to 7) of std_logic_vector(7 downto 0);
constantmem_rom : memoria := ( "00000001",
"00000010",
"00000100",
"00001000",
"00010000",
"00100000",
"01000000",
"10000000");
begin
process (bus_dir)
begin
dato<= mem_rom (conv_integer (bus_dir));
endprocess ;
datos<=dato;
end programa;
códigobcd a 7 segmentos
libraryieee;
use ieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entitybcdis
port (a_to_g: outstd_logic_vector (6 downto 0);
bus_dir: std_logic_vector(3 downto 0)
);
endbcd;
architecture programa of bcdis
signal dato: std_logic_vector( 6 downto 0);
type memoria isarray (0 to 9) of std_logic_vector(6 downto 0);
constantmem_rom : memoria := ("1000000",
"1111001",
"0100100",
"0110000",
"0011001",
"0010010",
"0000010",
"1111000",
"0000000",
"0010000");
begin
process (bus_dir)
begin
ifbus_dir> "1001" then
dato<= "1111111";
else
dato<= mem_rom (conv_integer (bus_dir));
endif;
endprocess ;
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.

Reporte vhd11

  • 1.
    SEP DGEST INSTITUTO TECNOLÓGICO DE SNEST MATAMOROS DEPARTAMENTO DE INGENIERÍAELÉ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
  • 2.
    Practica 9 Objetivo: Utilizando laentidad 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-onlymemory), 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: Laptop Kit spartan3e Software aldec HDL, xilinx ISE, adept. Procedimiento: Se crea nuevo proyecto en aldec HDL
  • 3.
    Código del decodifidor3 a 8 Library ieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; useieee.std_logic_arith.all; entityromis port (datos: outstd_logic_vector (7 downto 0); bus_dir: std_logic_vector(2 downto 0) ); endrom; architecture programa of romis signal dato: std_logic_vector( 7 downto 0); type memoria isarray (0 to 7) of std_logic_vector(7 downto 0); constantmem_rom : memoria := ( "00000001", "00000010", "00000100", "00001000", "00010000", "00100000", "01000000", "10000000"); begin process (bus_dir) begin dato<= mem_rom (conv_integer (bus_dir)); endprocess ; datos<=dato; end programa; códigobcd a 7 segmentos libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; useieee.std_logic_arith.all; entitybcdis port (a_to_g: outstd_logic_vector (6 downto 0); bus_dir: std_logic_vector(3 downto 0) ); endbcd; architecture programa of bcdis signal dato: std_logic_vector( 6 downto 0); type memoria isarray (0 to 9) of std_logic_vector(6 downto 0); constantmem_rom : memoria := ("1000000", "1111001", "0100100", "0110000", "0011001",
  • 4.
    "0010010", "0000010", "1111000", "0000000", "0010000"); begin process (bus_dir) begin ifbus_dir> "1001"then dato<= "1111111"; else dato<= mem_rom (conv_integer (bus_dir)); endif; endprocess ; 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.