Computers">
Curso de Fpga
Curso de Fpga
Curso de Fpga
MAQUINAS ELÉCTRICAS
PROF:
HERNÁNDEZ RODRÍGUEZ RODOLFO GUADALUPE
Curso de FPGA.
POR:
Marco teórico.
Una FPGA (del inglés Field Programmable Gate Array) es un dispositivo
semiconductor que contiene bloques de lógica cuya interconexión y funcionalidad
se puede programar. La lógica programable puede reproducir desde funciones tan
sencillas como las llevadas a cabo por una puerta lógica o un sistema
combinacional hasta complejos sistemas en un chip (w:en:System-on-a-chip).
Las FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son más
lentas, tienen un mayor consumo de potencia y no pueden abarcar sistemas tan
complejos como ellos. A pesar de esto, las FPGAs tienen las ventajas de ser
reprogramables (lo que añade una enorme flexibilidad al flujo de diseño), sus
costes de desarrollo y adquisición son mucho menores para pequeñas cantidades
de dispositivos y el tiempo de desarrollo es también menor.
Ciertos fabricantes cuentan con FPGAs que sólo se pueden programar una vez,
por lo que sus ventajas e inconvenientes se encuentran a medio camino entre los
ASICs y las FPGAs reprogramables.
Las FPGAs fueron inventadas en el año 1984 por Ross Freeman y Bernard
Vonderschmitt, co-fundadores de Xilinx, y surgen como una evolución de los
CPLDs.
Tanto los CPLDs como las FPGAs contienen un gran número de elementos
lógicos programables. Si medimos la densidad de los elementos lógicos
programables en puertas lógicas equivalentes (número de puertas NAND
equivalentes que podríamos programar en un dispositivo) podríamos decir que en
un CPLD hallaríamos del orden de decenas de miles de puertas lógicas
equivalentes y en una FPGA del orden de cientos de miles hasta millones de ellas.
El primer fabricante de estos dispositivos fue Xilinx [2] y los dispositivos de Xilinx
se mantienen como uno de los más populares en compañías y grupos de
investigación. Otros vendedores en este mercado son Atmel, Altera, AMD y
Motorola.
Tarjeta que utilizamos para la práctica.
Desarrollo:
Pues aquí empezamos con un programa que a continuación les mostrare para que
ustedes puedan copearlos, y entender el código.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity dec_bin_7seg is
Port ( a : in STD_LOGIC;
b : in STD_LOGIC;
c : in STD_LOGIC;
d : in STD_LOGIC;
segms : out STD_LOGIC_VECTOR (6 downto 0);
anodos : out std_logic_vector(3 downto 0);
end dec_bin_7seg ;
begin
process (a,b,c,d,d_h)
variable entrada : std_logic_vector (3 downto 0);
begin
entrada:= d & c & b & a;
case entrada is
when "0000"=> segms <= "0000001";
when "0001"=> segms <= "1001111";
when "0010"=> segms <= "0010010";
when "0011"=> segms <= "0000110";
when "0100"=> segms <= "1001100";
when "0101"=> segms <= "0100100";
when "0110"=> segms <= "0100000";
when "0111"=> segms <= "0001111";
when "1000"=> segms <= "0000000";
when "1001"=> segms <= "0000100";
when "1010"=> segms <= "0001000";
when "1011"=> segms <= "1100000";
when "1100"=> segms <= "0110001";
when "1101"=> segms <= "1000010";
when "1110"=> segms <= "0110000";
when "1111"=> segms <= "0111000";
when others=> segms <= "1111111";
end case;
end process;
anodos <= "1110"; --sólo enciende un display (el de la izquierda);
end Behavioral;
Pues aquí uno le pone el nombre que deseas para guardar tu archivo.
Después le damos next y nos mostrara otra para asi seleccionar nuestra tarjeta la
marca y su numeración.
Después le damos next ya cuando checamos que todo este bien y pues nos
aparece otra ventana que es:
Y aquí le damos en Next, y nos aparece otra donde vamos a buscar nuestro
archivo como se muestra aquí:
Y pues aquí le damos en Add Source y buscamos nuestro archivo que deseamos
aplicar para nuestro programa.
Y pues aquí nos muestra lo que buscamos y seleccionamos:
Y pues nos da otra ventana para que verifiquemos si esta bien lo que
programamos y nuestra tarjeta.
Y eso es un poco de lo que hicimos por que hicimos muchos y pues es un buen
ejemplo para empezar a conocer el programa y la tarjeta.