0% encontró este documento útil (0 votos)
32 vistas

Reporte 7 Segmentos

Este documento presenta el diseño de un programa top level en VHDL que muestra números secuencialmente en un display de 7 segmentos de acuerdo a la entrada de un selector de 2 bits. El programa top level integra un contador y una memoria previamente desarrollados para generar las secuencias numéricas requeridas basadas en el valor del selector.

Cargado por

Arturo Díaz
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas

Reporte 7 Segmentos

Este documento presenta el diseño de un programa top level en VHDL que muestra números secuencialmente en un display de 7 segmentos de acuerdo a la entrada de un selector de 2 bits. El programa top level integra un contador y una memoria previamente desarrollados para generar las secuencias numéricas requeridas basadas en el valor del selector.

Cargado por

Arturo Díaz
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 18

S.E.P. S.E.S. Tec.N.

INSTITUTO TECNOLÓGICO DE TOLUCA

DISEÑO DIGITAL CON VHDL

“SECUENCIA DISPLAY 7 SEGMENTOS”

Catedrático: Torres Reyes Carlos Eduardo

Ingeniería electrónica

P R E S E N T A:

Díaz Plata Arturo de Jesús

17280804

Mejía López Yocelin Ivonne

16281397

Metepec, Estado de México, a 22 de Noviembre de 2020

1
Índice.

Introducción. ............................................................................................................ 3
Material y herramientas. .......................................................................................... 4
Objetivo: .................................................................................................................. 5
Desarrollo. ............................................................................................................... 6
Conclusión............................................................................................................. 17
Bibliografía ............................................................................................................ 18

Índice de figuras.

Figura 1 Diseño de secuencia............................................................................................ 6


Figura 2 Captura del programa “Contador”. ..................................................................... 12
Figura 3 Captura del programa memoria ......................................................................... 12
Figura 4 Captura del programa “Memoria” ....................................................................... 13
Figura 5 Captura del programa “Componentes” ............................................................... 13
Figura 6 Captura del programa “TOP LEVEL” ................................................................. 14
Figura 7 Captura de la simulación.................................................................................... 14
Figura 8 Captura de la simulación con la entrada “00”. .................................................... 14
Figura 9 Captura de la simulación con la entrada “01” ..................................................... 15
Figura 10 Captura de la simulación con la entrada “10” ................................................... 15
Figura 11 Captura de la simulación con la transición entre “10” y “00” ............................. 15
Figura 12 Captura de la simulación con entrada “00” ....................................................... 16
Figura 13 Diagrama proporcionado por el Software “Quartus II” ...................................... 16

2
Introducción.

En el presente reporte escrito se presenta la realización de un programa de alto


nivel o Top Level, el cual integra diversos programas (Contador y Memoria) para
lograr una secuencia de números en un display de 7 segmentos de acuerdo a ciertos
criterios proporcionados por el docente.

El algoritmo que une cada bloque o componente de diseño interconectado a través


de señales o buses internos se denomina Top Level (Alcalá, 2002)

Como se mencionó con anterioridad y utilizando la definición citada en este caso los
bloques que serán conectados son contador y memoria, además de un programa
de componentes

El display de 7 segmentos es un dispositivo electrónico que se utiliza para


representar visualmente números y algunos caracteres. (GeneratePress, 2020)

3
Material y herramientas.

 Software “Quartus II”


 Laptop
 Programas previamente realizados “Contador y Memoria”

4
Objetivo:

Realizar un programa contador y un programa memoria, unirlos en un programa top


level, que mostrará en un display de 7 segmentos el número correspondiente de
acuerdo a la siguiente tabla:

Selector =00 Selector =01 Selector =10


Muestra todos los Muestra sólo los Muestra sólo los
números del 0 al 9 en números pares números primos
secuencia (incluyendo el cero) (incluyendo el cero)
dentro de la secuencia dentro de la secuencia
del 0 al 9 del 0 al 9

5
Desarrollo.

Una vez establecido el objetivo se comenzó por realizar una tabla relacionada con
las secuencias que se habían solicitado, esto en conjunto con la secuencia que tiene
un display de 7 segmentos, dicha tabla y secuencia se realizaron a mano, tal y como
se muestra a continuación:

Figura 1 Diseño de secuencia

Dado que se solicitó un programa top level, lo primero que se realizo fue seleccionar
los programas que se utilizarían, dichos programas ya se habían utilizado con
anterioridad, entre ellos se encuentra un contador, una memoria, un programa para
los componentes utilizados y finalmente el programa top level. El código que
utilizamos fue el siguiente:

Contador

Library ieee;

use ieee.std_logic_1164.all;

6
use ieee.std_logic_unsigned.all;

entity contador0 is

port(

clk, reset: in std_logic;

x1: out std_logic_vector (3 downto 0)

);

end contador0;

architecture uno of contador0 is

signal Q1 : std_logic_vector (3 downto 0);

begin

process(clk, reset)

begin

--Detección de eventos y flancos

if (clk' event and clk= '1') then

if (reset='1' or Q1= "1001") then

--Re inicio del contador

Q1 <="0000";

else

--Incremento del contador

Q1<= Q1+1;

end if;

end if;

x1<= Q1;

7
end process;

end uno;

Memoria

library IEEE;

use IEEE.std_logic_1164.all;

use ieee.numeric_std.all;

entity mem2 is port

Data_out: out std_logic_vector (6 downto 0);--dato de salida

Direccion:in std_logic_vector (3 downto 0);

selec: in std_logic_vector (1 downto 0)

);

end entity;

architecture uno of mem2 is

signal X0 : std_logic_vector (6 downto 0):="1111110";

signal X1 : std_logic_vector (6 downto 0):="0110000";

signal X2 : std_logic_vector (6 downto 0):="1101101";

signal X3 : std_logic_vector (6 downto 0):="1111001";

signal X4 : std_logic_vector (6 downto 0):="0110011";

signal X5 : std_logic_vector (6 downto 0):="1011011";

signal X6 : std_logic_vector (6 downto 0):="0011111";

signal X7 : std_logic_vector (6 downto 0):="1110000";

signal X8 : std_logic_vector (6 downto 0):="1111111";

signal X9 : std_logic_vector (6 downto 0):="1110011";

8
begin

process (Direccion,selec)

begin

if selec = "00" then

case Direccion is

when "0000" => Data_out <= X0;--0

when "0001" => Data_out <= X1;--1

when "0010" => Data_out <= X2;--2

when "0011" => Data_out <= X3;--3

when "0100" => Data_out <= X4;--4

when "0101" => Data_out <= X5;--5

when "0110" => Data_out <= X6;--6

when "0111" => Data_out <= X7;--7

when "1000" => Data_out <= X8;--8

when "1001" => Data_out <= X9;--9

when others => Data_out <= X0;--0

end case;

elsif selec = "01" then

case Direccion is

when "0000" => Data_out <= X0;--0

when "0001" => Data_out <= X2;--2

when "0010" => Data_out <= X4;--4

when "0011" => Data_out <= X6;--6

when "0100" => Data_out <= X8;--8

when others => Data_out <= X0;--0

9
end case;

elsif selec = "10" then

case Direccion is

when "0000" => Data_out <= X0;--0

when "0001" => Data_out <= X1;--1

when "0010" => Data_out <= X2;--2

when "0011" => Data_out <= X3;--3

when "0100" => Data_out <= X5;--5

when "0101" => Data_out <= X7;--7

when others => Data_out <= X0;--0

end case;

end if;

end process;

end architecture;

Componentes

library ieee;

use ieee. std_logic_1164.all;

package componentes is

component contador0 port (

clk, reset: in std_logic;

x1: out std_logic_vector (3 downto 0)

);

end component;

component mem2 port (

Data_out: out std_logic_vector (6 downto 0);--dato de salida

10
Direccion:in std_logic_vector (3 downto 0);

selec: in std_logic_vector (1 downto 0)

);

end component;

end componentes;

Programa TOP LEVEL

library IEEE;

use IEEE.std_logic_1164.all;

use work.componentes.all;

entity integracion is port (

clk, reset: in std_logic;

Data_out: out std_logic_vector (6 downto 0);

selec: in std_logic_vector (1 downto 0)

);

end integracion;

architecture funcion of integracion is

signal x1,Direccion: std_logic_vector (3 downto 0);

begin

u1: contador0 port map (clk=>clk, reset=>reset, x1=>direccion);

u2: mem2 port map (direccion=>direccion, Data_out=>data_out, selec=>selec);

end funcion;

11
Figura 2 Captura del programa “Contador”.

Figura 3 Captura del programa memoria

12
Figura 4 Captura del programa “Memoria”

Figura 5 Captura del programa “Componentes”

13
Figura 6 Captura del programa “TOP LEVEL”

Figura 7 Captura de la simulación.

Figura 8 Captura de la simulación con la entrada “00”.

14
Figura 9 Captura de la simulación con la entrada “01”

Figura 10 Captura de la simulación con la entrada “10”

Figura 11 Captura de la simulación con la transición entre “10” y “00”

15
Figura 12 Captura de la simulación con entrada “00”

Figura 13 Diagrama proporcionado por el Software “Quartus II”

16
Conclusión.

Consideramos que los programas de alto nivel facilitan la elaboración de un código


con mayor exigencia o mayores requerimientos, ya que se pueden usar códigos
hechos con anterioridad que ayuden a cumplir el objetivo del código principal,
además de ahorrar tiempo al escribir el código principal, se facilita al equipo la
ejecución del mismo.

Es por ello que se comprende la importancia de aprender a manejar programas de


este tipo.

17
Bibliografía

Alcalá, M. D. (2002). VHDL: El arte de programar Sistemas Digitales. Estado de


México: Continental.

GeneratePress. (2020). Ingeniería Mecafenix. Obtenido de Ingeniería Mecafenix:


https://www.ingmecafenix.com/electronica/display-de-7-segmentos/

18

También podría gustarte