TRABAJO PRÁCTICO N° 3 – Viernes 15 de Abril

Anuncio
Carreras: Ingeniería Electrónica e Ing. Biomédica
Asignatura: Diseño Lógico I
Año 2016 – Página 1 de 2
TRABAJO PRÁCTICO N° 3 – Viernes 15 de Abril
Declaraciones Secuenciales y Genéricos. Componentes
OBJETIVOS:



Manejo de proyectos jerárquicos.
Instanciación de componentes.
Manejo de Archivos en un proyecto jerárquico.
Nota: En todos los problemas, verifique la funcionalidad con un “test bench” ejecutando su simulación
funcional y simulación post-place & route (gate-level simulation). Realizar el RTL Viewer antes de
Programar la placa Altera FPGA Board EP2C8Q208.
3.1 -- Realice un divisor de frecuencias parametrizable (con Genéricos) que tenga como entrada un clock de
50MHz y como salida una señal de frecuencia dependiente del parámetro con el 50% de ciclo de trabajo.
Emplee de guía el template Full Designs/Arithmetic/Counters/Binary Counter para realizar un componente
de cuenta máxima parametrizable
3.2 -- Implemente un sistema que permita visualizar 1, 2, 3 o 4 displays 7 segmentos de la placa Altera FPGA
Board EP2C8Q208. La elección de la cantidad de displays a visualizar se hará mediante un genérico de tipo
entero. Utilice el componente del módulo de conversor BCD-7 Segmentos del primer trabajo.
La entidad debe ser especificada de la siguiente manera:
entity displays is
generic (num_display: integer:=4);
port
(
clk: in std_logic;
bcd3,bcd2,bcd0,bcd1
: in std_logic_vector(3 downto 0);
display: out std_logic_vector (0 to num_display-1);
segm
: out std_logic_vector(6 downto 0)
);
end displays;
Donde:
num_display es el número de displays a visualizar
clk es el reloj que sincroniza una estructura case que permite alternar secuencialmente entre cada display
bcd0 a bcd3 son las entradas BCD de los números que se desean visualizar en cada display
display es la salida de selección de los displays a visualizar
segm es la salida de 7 segmentos de un conversor de BCD a 7segmentos
3.3 -- Realice un diseño lógico que teniendo como entrada 50MHz obtenga como salida las siguientes
frecuencias: 0.1Hz, 0.5Hz, 1Hz, 2Hz y 5Hz dependiendo de una selección de tres llaves. Para ello emplee
el componente del problema 3.1.
Como selector de frecuencia de salida use las llaves SW [ ]. Para cada combinación de las llaves, una sola
frecuencia deberá excitar el LEDR[0] de la placa. Utilice el componente del problema 3.2 para mostrar en
los displays 7 segmentos la frecuencia seleccionada por la llave respectiva (no hace falta usar el punto; por
ejemplo para 0.5 muestre 05).
3.4 -- Realizar la descripción en VHDL de un contador tipo LFSR de 4 bits. Un LFSR es un registro de
desplazamiento de realimentación lineal que se usa para generar una secuencia binaria pseudo aleatoria
con mínimos recursos físicos. El esquema lógico se muestra en la figura y su valor inicial corresponde a la
palabra binaria “1000” llamada “semilla”. Se pretende que la semilla sea un parámetro (genérico) del
contador LFSR.
Carreras: Ingeniería Electrónica e Ing. Biomédica
Asignatura: Diseño Lógico I
Año 2016 – Página 2 de 2
library ieee;
use ieee.std_logic_1164.all;
entity lfsr is
generic (
ancho
: integer:=4;
semilla: std_logic_vector (3 downto 0):="1000");
port
(
clk,reset : in std_logic;
lfsr
: out std_logic_vector (ancho-1 downto 0));
end lfsr;
architecture alfsr of lfsr is
signal in_serial : std_logic;
signal lfsr_i
: std_logic_vector (ancho-1 downto 0);
Begin
in_serial<= lfsr_i(1) xor lfsr_i(0);
process (clk,reset)
begin
if reset='1' then
lfsr_i <= semilla;
elsif rising_edge(clk) then
lfsr_i<=in_serial & lfsr_i(lfsr'high downto lfsr'low +1);
end if;
end process;
lfsr<=lfsr_i;
end alfsr;
3.5 -- Implemente un Top Level con todos los componentes previamente diseñados: El proyecto será el
contador LFSR de la Parte 3.4. Para el reloj utilice la salida del divisor de frecuencias realizado en la Parte
3.3. Utilice el visualizador en displays de la Parte 3.2 para visualizar el pseudocódigo.
Asigne los pines I/O respectivos. Compruebe la correcta asignación de la señales de entrada/salida con los
respectivos I/O pads del FPGA revisando el reporte de entradas y salidas (Inputs and Outputs reports).
Descargar