ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Práctica 05: Introducción al lenguaje VHDL


Enviado por   •  10 de Abril de 2019  •  Tareas  •  2.217 Palabras (9 Páginas)  •  93 Visitas

Página 1 de 9

Práctica 05: Introducción al lenguaje VHDL

Alex Hermann, 1067728

Objetivos:

Aprender cómo funciona un FPGA, su utilización y el lenguaje VHDL el cual es utilizado en los FPGA.

Procedimiento:

Primero se inició conectando el FPGA provisto a nuestra PC. Ahí, con el programa de Vivado cargamos un código dado por el profesor que representaba un contador con LEDs que mostraba a diferentes frecuencias. Para realizar el contador, utilizamos el mismo para reducir la frecuencia del FPGA debido a que éste trabaja a unos 100 MHz, la cual es una frecuencia tan rápida que el cambio no podría ser observado por la vista humana. Es por esto que se utilizó un divisor de frecuencia para llevar la frecuencia del FPGA a un medio de la original; es decir, 50 MHz.

Resultados:

[pic 1][pic 2]

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity contador is

    Port ( clock : in STD_LOGIC; --asumiendo reloj = 100MHz

           reset : in STD_LOGIC;

           cuenta : out STD_LOGIC);

end contador;

architecture Behavioral of contador is

signal reset_neg : std_logic;

constant bits_de_conteo_adicional : integer := 20;

signal registro_interno : std_logic_vector( (bits_de_conteo_adicional + 7) downto 0);

begin

   reset_neg <= not reset;

   proceso_contador : process (clock)

   begin

      if rising_edge (clock) then

         if reset_neg = '0' then --reset sincrono del contador.

            registro_interno <= "0000000000000000000000";

         else

            registro_interno <= registro_interno + '1';

         end if;

      end if;

   end process;

   

   cuenta <= registro_interno( (bits_de_conteo_adicional + 7) downto bits_de_conteo_adicional);

   

end Behavioral;[pic 3]

[pic 4]

        

Análisis:

Gracias al código suministrado se puede observar que VHDL es un lenguaje de programación que trabaja de forma paralela. Esto se debe a que se estan programando circuitos, los cuales siempre trabajan en paralelo. En caso de que se desee realizar una operación dependiente del suceso de otra, se utilizan las declaraciones de proceso.

Práctica 06: Programación en FPGAs

Por:

Alex Hermann, 1067728.

.

Asignación 6.1:

Objetivos:

Diseñar un circuito sencillo que maneja 4 displays de 7 segmentos de manera multiplexada,

mostrando los datos introducidos en los interruptores de entrada.

Procedimiento:

Se inició haciendo un multiplexor de tres selectores. Esto significa que, para poder presentar 4 dígitos

distintos en cada display, debe multiplexarse constantemente la salida (lo suficientemente rápido

para que se vean como que todos están encendidos al mismo tiempo, pero no tan rápido que

comiencen a distorsionarse los valores mostrados). Este se encargaría de encender el display seleccionado por los interruptores. Luego, se creó un decodificador que recibiera cuatro entradas, las cuales eran ofrecidas por otros cuatro interruptores. Este decodificador se encargaba de producir en el display el número seleccionado en BCD.

Para reducir la frecuencia a la deseada, se utilizaba esta formula

[pic 5]

Donde la frecuencia de la FPGA Digilent Nexys4 DDR Board era de 100MHz.

[pic 6]

     library IEEE;

     use IEEE.STD_LOGIC_1164.all;

     ENTITY mux IS

        PORT(a      : IN std_logic_vector(3 DOWNTO 0);

             b      : IN std_logic_vector(3 DOWNTO 0);

             c      : IN std_logic_vector(3 DOWNTO 0);

             sel    : IN std_logic_vector(1 DOWNTO 0);

             salida : OUT std_logic_vector(3 DOWNTO 0));

     END mux;

     ARCHITECTURE synth OF mux IS

     BEGIN

       PROCESS (sel, a, b, c) IS

       BEGIN

         CASE sel IS

           WHEN "00" => salida <= (others => '0');

           WHEN "01" => salida <= a;

...

Descargar como (para miembros actualizados)  txt (10.8 Kb)   pdf (1.2 Mb)   docx (1.5 Mb)  
Leer 8 páginas más »
Disponible sólo en Clubensayos.com