Subido por JUAN PEER CARDOZA SIU

docdownloader.com-pdf-paso5-francisco-chavez-florez-dd 23219444044d53ddd4d6e386fafdf48e

Anuncio
Paso 5 - Componente Práctico - Sesión 1
(Parte infividual)
Presentado por:
Francisco Javier Chávez Flórez
Código: 1080262056
Grupo 243004_33
Curso ELECTRONICA DIGITAL
Tutor:
Mario Ricardo Arbulu
Universidad Nacional Abierta y a Distancia UNAD
Escuela de Ciencias Básicas, Tecnología e Ingeniería -ECBTI
Noviembre 2017
Actividades:
Realizar el diseño a nivel de diagrama de bloques y la implementación en VHDL de los
siguientes circuitos digitales.
Ejercicios a resolver .
1.
Diseñe un contador ascendente módulo N , donde N corresponde a los dos últimos
dígitos de su Cédula de Ciudadanía. (Si es mayor que 31 se usan 8 bit) El diseño debe
incluir:
a.
Un diagrama de bloques.
Numero de cedula: (10802620 56
56))
Dos últimos dígitos: 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 =
6
= 2*2*2*2*2*2
2*2*2*2*2*2=
= 64
-pero para este ejemplo emplearemos
2 −1
b.
2

−1
= 28 − 1 = 2*2*2*2*2*2*2*2
2*2*2*2*2*2*2*2=
= 256
Un pantallazo con la descripción 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 simulación, en el cual se evidencie el correcto funcionamiento
del diseño.
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
component ContadorAsN
port(
clk : in std_logic;
reset : in std_logic;
salida : in std_logic_vector(7 downto 0);
);
end component;
--seccion1
-- Señales de las entradas
signal clk : std_logic := '0';
signal reset : std_logic := '0';
-- Señales de salidas
signal salida : std_logic_vector(7 downto 0);
-- Constante de tiempo para la simulacion
constant PERIOD : time := 10 ns;
begin
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
--- Estímulos de la simulación
wait for 100 ns;
reset <= '1';
wait for 100 ns;
reset <= '0';
wait for 100 ns;
wait;
end process;
end Behavioral;
--seccion2
2.
Diseñe un contador descendente módulo M , donde M es su edad. El diseño 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
b.
−1
=
5
2 −1
= 2*2*2*2*2= 32
Un pantallazo con la descripción 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 señales Q y D que son del mismo tamaño 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 simulación, en el cual se evidencie el correcto funcionamiento
del diseño.
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
component CONTADOR
port(clk : in std_logic;
reset : in std_logic;
salida : in std_logic_vector(5 downto 0);
);
end component;
-- Señales de las entradas
signal clk : std_logic := '0';
signal reset : std_logic := '0';
-- Señales de salidas
signal salida : std_logic_vector(5 downto 0);
-- Constante de tiempo para la simulacion
constant PERIOD : time := 10 ns;
begin
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
--- Estímulos de la simulación
wait for 100 ns;
reset <= '1';
wait for 100 ns;
reset <= '0';
wait for 100 ns;
wait;
end process;
end Behavioral;
--seccion1
--seccion2
3.
Diseñe un contador ascendente/descendente módulo M , donde M es su edad. El
diseño 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
b.
−1
=
5
2 −1
= 2*2*2*2*2= 32
Un pantallazo con la descripción 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 simulación, en el cual se evidencie el correcto funcionamiento
del diseño.
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
Port ( reset : in STD_LOGIC;
clk : in STD_LOGIC;
sentido : in STD_LOGIC := '0';
salida : out STD_LOGIC_VECTOR (5 downto 0));
end component;
-- Señales de las entradas
signal clk : std_logic := '0';
signal reset : std_logic := '0';
-- Señales de salidas
signal salida : std_logic_vector(5 downto 0);
-- Constante de tiempo para la simulacion
constant PERIOD : time := 10 ns;
--seccion1
begin
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
--- Estímulos de la simulación
wait for 100 ns;
reset <= '1';
wait for 100 ns;
reset <= '0';
wait for 100 ns;
wait;
end process;
end Behavioral;
--seccion2
IMPORTANTE: Todas las implementaciones en VHDL se deben hacer utilizando el soft ware Vivado.
La implementación se debe evidenciar en el informe con el pantallazo de la descripción 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á válido.
El archivo se deberá entregar en formato pdf con el nombre: Paso5_Nombre_Apellido.
La estructura del informe colaborativo debe ser la siguiente:
o
o
Portada con los datos del estudiante.
Contenido del informe:
Diagramas de bloques con los diseños.
Pantallazos de las implementaciones en VHDL.
Simulación de cada uno de los componentes



Referencias bibliograficas
Sitios web:
1. Muñoz, J. (2012). Introducción a los Sistemas Digitales: Un enfoque usando
Lenguajes de Descripción de Hardware. (Capítulos 7, 9 y 10, pp. 135-149,177-208).
Madrid. Recuperado de https://openlibra.com/es/book/introduccion-a-los-sistemasdigitales
2. Fajardo, C. (2016, diciembre 13), Contadores Digitales. [Archivo de video].
Recuperado
de https://youtu.be/erxuOIX9Lmo
3. Fajardo, C. (2017, julio 12), Diseño de un contador ascendente en VHDL. [Archivo
de video]. Recuperado de https://youtu.be/4SlLC3VoJSM (Archivo de simulación Con señal CLK)
4. Fajardo, C. (2016, noviembre 4), Diseño 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), Diseño 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 diseño de una memoria en VHDL. El video busca orientar
al estudiante en el diseño de memorias para ser utilizadas dentro de un diseño de
hardware.
9. Fajardo, C. (2013, agosto 13), Diseño 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
RincónIngenieril . Publicado el 10 dic. 2016
13. Video Diseño de un contador ascendente en VHDL
Carlos Augusto Fajardo Ariza .Publicado el 17 jul. 2017
Descargar