Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OBJETIVO
El alumno utilizará el software Quartus II para programar una tarjeta de desarrollo PLD
FPGA con diseños de circuitos lógicos secuenciales.
MARCO TEÓRICO
P7 – Pág.1
MATERIAL Y HERRAMIENTAS A UTILIZAR EQUIPO A EMPLEAR
CANTIDAD DESCRIPCIÓN CANTIDAD DESCRIPCIÓN
DESARROLLO
P7 – Pág.2
1. Diseñe con VHDL que un FPGA Cyclone IV Serie EP4CE6E22C8N funcione
como un contador modulo 16 𝑎𝑠𝑐/des#.
a) Una vez que concluya y no existan errores, pegue aquí la captura de pantalla de
la ventana Flow Summary.
P7 – Pág.3
c) Pegue aquí el código fuente del diseño.
--
-- FILE ; CYCLONE\CONT_MOD16.vhd
--
-------------------------------------------------------------------------------------
-- Codigo VHDL para un FPGA Cyclone IV Series EP4CE6E22C8
-- EPCS16N memoria de configuracion no volatil.
-------------------------------------------------------------------------------------
--
-- Description : Contador MOD 16 asc/descripcion
-----------
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_arith.all;
USE ieee.std_logic_unsigned.all;
P7 – Pág.4
ENTITY pr7 IS
PORT ( Clock, ascendente: IN STD_LOGIC ;
Q : BUFFER
INTEGER RANGE 0 TO 15 :=0 ) ;
END pr7;
a) Una vez que concluya y no existan errores, pegue aquí la captura de pantalla de
la ventana Flow Summary.
P7 – Pág.5
b) Pegue aquí la captura de pantalla del Simulation Waveform Editor donde se
muestre el resultado de la simulación.
P7 – Pág.6
c) Pegue aquí el código fuente del diseño.
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity pr7 is
port (clk : in std_logic;
reset : in std_logic;
count : out std_logic_vector(3 downto 0)
);
end pr7;
begin
P7 – Pág.7
process (clk, reset) is
begin
if reset = '1' then
cnt <= "0000";
elsif (clk'event and clk='1') then
cnt <= cnt + 1;
end if;
end process;
end arquitec;
a) Una vez que concluya y no existan errores, pegue aquí la captura de pantalla de
la ventana Flow Summary.
P7 – Pág.8
b) Pegue aquí la captura de pantalla del Simulation Waveform Editor donde se
muestre el resultado de la simulación.
P7 – Pág.9
c) Pegue aquí el código fuente del diseño.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY pr7_2 IS
PORT ( clock : IN STD_LOGIC;
q : BUFFER INTEGER
RANGE 0 TO 15 );
END pr7_2;
P7 – Pág.10
SIGNAL estado: estados;
BEGIN
PROCESS (clock)
BEGIN
IF rising_edge(clock) THEN
CASE estado IS
WHEN cero =>
q<= 0;
q<= 1;
q<= 2;
q<= 3;
q<= 4;
q<= 5;
P7 – Pág.11
estado <= siete;
WHEN seis =>
q<= 6;
q<= 7;
q<= 8;
q<= 9;
q<= 10;
q<= 11;
q<= 12;
P7 – Pág.12
WHEN trece =>
q<= 13;
q<= 14;
q<= 15;
a) Una vez que concluya y no existan errores, pegue aquí la captura de pantalla de
la ventana Flow Summary.
P7 – Pág.13
b) Pegue aquí la captura de pantalla del Simulation Waveform Editor donde se
muestre el resultado de la simulación.
P7 – Pág.14
c) Pegue aquí el código fuente del diseño.
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY pr7_3 IS
PORT ( clock : IN STD_LOGIC ;
display : BUFFER INTEGER RANGE 0 TO 255 );
END pr7_3 ;
P7 – Pág.15
-- Numero a mostrar 4. ; display = 25
-- Numero a mostrar 5. ; display = 18
-- Numero a mostrar 6. ; display = 2
-- Numero a mostrar 7. ; display = 120
-- Numero a mostrar 8. ; display = 0
-- Numero a mostrar 9. ; display = 16
BEGIN
PROCESS (clock)
BEGIN
CASE estado IS
WHEN cero =>
display<= 64;
estado <= uno;
WHEN uno =>
display<= 121;
estado <= dos;
WHEN dos =>
display<= 36;
estado <= tres;
WHEN tres =>
display<= 48;
estado <= cuatro;
WHEN cuatro =>
display<= 25;
estado <= cinco;
WHEN cinco =>
display<= 18;
estado <= seis;
P7 – Pág.16
WHEN seis =>
display<= 2;
estado <= siete;
WHEN siete =>
display<= 120;
estado <= ocho;
WHEN ocho =>
display<= 0;
estado <= nueve;
WHEN nueve =>
display<= 16;
estado <= cero;
END CASE;
END IF;
END PROCESS;
END Behavior;
P7 – Pág.17