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).