Sie sind auf Seite 1von 25

Paso 5 - Componente Prctico - Sesin 1

(Parte infividual)

Presentado por:
Francisco Javier Chvez Flrez
Cdigo: 1080262056

Grupo 243004_33

Curso ELECTRONICA DIGITAL


Tutor:
Mario Ricardo Arbulu

Universidad Nacional Abierta y a Distancia UNAD


Escuela de Ciencias Bsicas, Tecnologa e Ingeniera -ECBTI
Noviembre 2017
Actividades:

Realizar el diseo a nivel de diagrama de bloques y la implementacin en VHDL de los


siguientes circuitos digitales.

Ejercicios a resolver.

1. Disee un contador ascendente mdulo N, donde N corresponde a los dos ltimos


dgitos de su Cdula de Ciudadana. (Si es mayor que 31 se usan 8 bit) El diseo debe
incluir:

a. Un diagrama de bloques.

Numero de cedula: (1080262056)


Dos ltimos dgitos: 56
Como 2 1 es el maximo de cuenta, donde n es igual al numero de bit, para este caso:
(Si es mayor que 31 y menor que 63, para lo cual se usan 8 bit), Podemos usar 2 1 =
26 1 = 2*2*2*2*2*2= 64
-pero para este ejemplo emplearemos 2 1 = 28 1 = 2*2*2*2*2*2*2*2= 256

b. Un pantallazo con la descripcin en VHDL


Scrip en software vivado: Resumen de la descripcion en vhdl

----------------------------------------------------------------------------------
-- Company: UNAD
-- Engineer: FRANCISCO CHAVEZ FLOREZ
-- Create Date: 12.11.2017 16:34:29
----------------------------------------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use IEEE.std_logic_unsigned.all;
entity ContadorAsN is
Port ( clk : in STD_LOGIC;
reset : in STD_LOGIC;
salida : out STD_LOGIC_VECTOR (7 downto 0));
end ContadorAsN;

architecture Behavioral of ContadorAsN is

signal D, Q : STD_LOGIC_VECTOR (7 downto 0);

begin

process (clk)
begin
if clk'event and clk='1' then
if reset='1' then
Q <= "00000000";
else
Q <= D;
end if;
end if;
end process;
D <= Q+1;
salida <= Q;

end Behavioral;
c. Un pantallazo con la simulacin, en el cual se evidencie el correcto funcionamiento
del diseo.

Scrip en software vivado: Resumen Simulacion

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity SIMUcontador is
-- Port ( );
end SIMUcontador;

architecture Behavioral of SIMUcontador is --seccion1

component ContadorAsN
port(
clk : in std_logic;
reset : in std_logic;
salida : in std_logic_vector(7 downto 0);
);
end component;
-- Seales de las entradas
signal clk : std_logic := '0';
signal reset : std_logic := '0';

-- Seales de salidas
signal salida : std_logic_vector(7 downto 0);

-- Constante de tiempo para la simulacion


constant PERIOD : time := 10 ns;

begin --seccion2

process
begin
clk <= '0';
wait for PERIOD/2;
clk <= '1';
wait for PERIOD/2;
end process;

UO: ContadorAsN
Port map (
clk => clk,
reset => reset1,
salida => salida
);

process
begin
--- Estmulos de la simulacin

wait for 100 ns;

reset <= '1';


wait for 100 ns;

reset <= '0';


wait for 100 ns;

wait;
end process;

end Behavioral;
2. Disee un contador descendente mdulo M, donde M es su edad. El diseo debe
incluir:
a. Un diagrama de bloques.
M= Edad: 25
Como 2 1 es el maximo de cuenta, donde n es igual al numero de bit, para este caso:
(Si es mayor que 15 y menor que 31, para lo cual se usan 5 bit)
2 1 = 25 1 = 2*2*2*2*2= 32

b. Un pantallazo con la descripcin en VHDL


Scrip en software vivado: Resumen de la descripcion en vhdl

----------------------------------------------------------------------------------
-- Company: UNAD
-- Engineer: FRANCISCO GHAVEZ
-- Create Date: 12.11.2017 09:05:16
----------------------------------------------------------------------------------
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use IEEE.std_logic_unsigned.all;

entity CONTADOR is
Port (
CLK : in STD_LOGIC;
RESET : in STD_LOGIC;
SALIDA : out STD_LOGIC_VECTOR (5 downto 0)
);
end CONTADOR;
architecture Behavioral of CONTADOR is

--- aqui creamos las dos seales Q y D que son del mismo tamao que la salida de 4 bits
signal D, Q : STD_LOGIC_VECTOR (5 downto 0);

begin

process (clk)
begin
if clk'event and clk='1' then
if reset='1' then
Q <= "000000";
else
Q <= D;
end if;
end if;
end process;
D <= "000000" when Q= 25 else
Q-1;
salida <= Q;

end Behavioral;
c. Un pantallazo con la simulacin, en el cual se evidencie el correcto funcionamiento
del diseo.

Scrip en software vivado: Resumen Simulacion


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity CONTADORedad is
-- Port ( );
end CONTADORedad;

architecture Behavioral of CONTADORedad is --seccion1


component CONTADOR
port(clk : in std_logic;
reset : in std_logic;
salida : in std_logic_vector(5 downto 0);
);
end component;
-- Seales de las entradas
signal clk : std_logic := '0';
signal reset : std_logic := '0';
-- Seales de salidas
signal salida : std_logic_vector(5 downto 0);
-- Constante de tiempo para la simulacion
constant PERIOD : time := 10 ns;

begin --seccion2
process
begin
clk <= '0';
wait for PERIOD/2;
clk <= '1';
wait for PERIOD/2;
end process;

UO: CONTADOR
Port map (
clk => clk,
reset => reset1,
salida => salida
);
process
begin
--- Estmulos de la simulacin
wait for 100 ns;
reset <= '1';
wait for 100 ns;
reset <= '0';
wait for 100 ns;
wait;
end process;
end Behavioral;
3. Disee un contador ascendente/descendente mdulo M, donde M es su edad. El
diseo debe incluir:
a. Un diagrama de bloques.
M= Edad: 25
Como 2 1 es el maximo de cuenta, donde n es igual al numero de bit, para este caso:
(Si es mayor que 15 y menor que 31, para lo cual se usan 5 bit)
2 1 = 25 1 = 2*2*2*2*2= 32

b. Un pantallazo con la descripcin en VHDL

Scrip en software vivado: Resumen de la descripcion en vhdl

----------------------------------------------------------------------------------
-- Company: UNAD
-- Engineer: FRANCISCO JAVIER CHAVEZ FLOREZ
-- Create Date: 12.11.2017 19:29:10
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.std_logic_unsigned.all;
entity contadorASCydesc is
Port ( reset : in STD_LOGIC;
clk : in STD_LOGIC;
sentido : in STD_LOGIC := '0';
salida : out STD_LOGIC_VECTOR (5 downto 0));
end contadorASCydesc;
architecture Behavioral of contadorASCydesc is
signal counter : STD_LOGIC_VECTOR (5 downto 0) := "000000";
signal count : integer;
signal clk1 : STD_LOGIC;
constant max_count: integer := 25;
begin
process (clk1, clk)
begin
if rising_edge(clk) then
count <= count + 1;
if count = max_count then
clk1 <= not clk1;
count <= 0;
end if;
end if;
end process;
process(reset,clk)
begin
if reset='1' then
counter <= "0000";
elsif clk1'event and clk1 = '1' then
if sentido = '1' then
counter <= counter + 1;
else
counter <= counter - 1;
end if;
salida <= counter;
end if;
end process;

end Behavioral;
c. Un pantallazo con la simulacin, en el cual se evidencie el correcto funcionamiento
del diseo.

Scrip en software vivado: Resumen Simulacion

ibrary IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity simASCydesc is
-- Port ( );
end simASCydesc;
architecture Behavioral of simASCydesc is --seccion1
Port ( reset : in STD_LOGIC;
clk : in STD_LOGIC;
sentido : in STD_LOGIC := '0';
salida : out STD_LOGIC_VECTOR (5 downto 0));
end component;
-- Seales de las entradas
signal clk : std_logic := '0';
signal reset : std_logic := '0';
-- Seales de salidas
signal salida : std_logic_vector(5 downto 0);
-- Constante de tiempo para la simulacion
constant PERIOD : time := 10 ns;
begin --seccion2
process
begin
clk <= '0';
wait for PERIOD/2;
clk <= '1';
wait for PERIOD/2;
end process;
UO: CONTADOR
Port map (
clk => clk,
reset => reset1,
salida => salida
);
process
begin
--- Estmulos de la simulacin
wait for 100 ns;
reset <= '1';
wait for 100 ns;
reset <= '0';
wait for 100 ns;
wait;
end process;
end Behavioral;
IMPORTANTE: Todas las implementaciones en VHDL se deben hacer utilizando el software Vivado.
La implementacin se debe evidenciar en el informe con el pantallazo de la descripcin de VHDL y
con el pantallazo del RTL. El Pantallazo debe seguir la indicaciones dadas en el video de la
actividad de reconocimiento, de lo contrario el aporte no se considerar vlido.

El archivo se deber entregar en formato pdf con el nombre: Paso5_Nombre_Apellido.


La estructura del informe colaborativo debe ser la siguiente:

o Portada con los datos del estudiante.


o Contenido del informe:
Diagramas de bloques con los diseos.
Pantallazos de las implementaciones en VHDL.
Simulacin de cada uno de los componentes
Referencias bibliograficas

Sitios web:
1. Muoz, J. (2012). Introduccin a los Sistemas Digitales: Un enfoque usando
Lenguajes de Descripcin de Hardware. (Captulos 7, 9 y 10, pp. 135-149,177-208).
Madrid. Recuperado de https://openlibra.com/es/book/introduccion-a-los-sistemas-
digitales
2. Fajardo, C. (2016, diciembre 13), Contadores Digitales. [Archivo de video].
Recuperado de https://youtu.be/erxuOIX9Lmo

3. Fajardo, C. (2017, julio 12), Diseo de un contador ascendente en VHDL. [Archivo


de video]. Recuperado de https://youtu.be/4SlLC3VoJSM (Archivo de simulacin -
Con seal CLK)
4. Fajardo, C. (2016, noviembre 4), Diseo de un contador ascendente/descendente
(Diagrama de Bloques). [Archivo de video]. Recuperado
de https://youtu.be/Uw3stcZUKcA
5. Fajardo, C. (2013, febrero 23), Circuitos Secuenciales: Process, IF, CASE. [Archivo
de video]. Recuperado de https://youtu.be/U3tXM5NTSrs
6. Fajardo, C. (2012, diciembre 21), Diseo de Registros y Contadores [Archivo de
video]. Recuperado de https://youtu.be/vTmBuR-JgvM
7. OVI Unidad 3:
8. En este video se hace el diseo de una memoria en VHDL. El video busca orientar
al estudiante en el diseo de memorias para ser utilizadas dentro de un diseo de
hardware.
9. Fajardo, C. (2013, agosto 13), Diseo de memorias en VHDL. [Archivo de video].
Recuperado de https://youtu.be/kNKgrOYxC_o

Otros sitios web

10. http://centros.edu.xunta.es/iesmanuelchamosolamas/electricidade/fotos/contadore
s.htm
11. http://hflorezf-es.blogspot.com.co/2011/10/contadores-sincronos.html

12. Video Contador binario ascendente


RincnIngenieril . Publicado el 10 dic. 2016
13. Video Diseo de un contador ascendente en VHDL
Carlos Augusto Fajardo Ariza .Publicado el 17 jul. 2017

Das könnte Ihnen auch gefallen