Está en la página 1de 8

JOSE ALBERTO SANCHEZ RANGEL 211599648

1. Que es una FPGA?


R=Una FPGA (del inglés Field Programmable Gate Array) es un dispositivo
semiconductor que contiene bloques de lógica cuya interconexión y
funcionalidad puede ser configurada 'in situ' mediante un lenguaje de
descripción especializado.

2. Que es un firmware?
R= El firmware es un bloque de instrucciones de máquina para propósitos
específicos, grabado en un chip, normalmente de lectura/escritura (ROM,
EEPROM, flash, etc.), que establece la lógica de más bajo nivel que controla los
circuitos electrónicos de un dispositivo de cualquier tipo.

3. Que es IEEE?
R= IEEE corresponde a las siglas de en español Instituto de Ingenieros
Eléctricos y Electrónicos,

4. Secuencia Diferencial.
R=

5. Que es un PLD?
R= PLD son las siglas de Programmable Logic Design o dispositivos de lógica
programable. Estos circuitos integrados permiten generar dentro del mismo
funciones que no disponemos en los C.I. comerciales (decodificadores,
comparadores, sumadores, etc).

6. -------
7. Que es un diagrama de estado?
R= un diagrama de estados es un diagrama utilizado para identificar cada una
de las rutas o caminos que puede tomar un flujo de información luego de
ejecutarse cada proceso.
Permite identificar bajo qué argumentos se ejecuta cada uno de los procesos y
en qué momento podrían tener una variación.
El diagrama de estados permite visualizar de una forma secuencial la ejecución
de cada uno de los procesos.

8. Salidas Mealy and Moore?


R=
Una máquina de Mealy es una máquina de estados finita, donde las salidas
están
determinadas por el estado actual y la entrada. Esto significa que en el
diagrama de
estados se incluye una señal de salida para cada arista de transición. Por
ejemplo, en la trayectoria de un estado 1 a un estado 2, si la entrada es cero la
salida puede ser uno, y se debe poner sobre la arista la etiqueta “0/1”.
En contraste, la salida de una máquina de estado finito Moore (máquina de
Moore),
depende solo del estado actual y no depende de la entrada actual. Por lo tanto,
los
estados de una máquina de Moore son la unión de los estados de la máquina de
Mealy y el producto cartesiano de estos estados y alfabeto de entrada (posibles
entradas).

Una máquna de Moore se define como una tupla (secuencia finita) de 5{S, Σ, Λ, T, G}
que consiste de:
• Un conjunto finito de estados ( S )
• Un conjunto finito llamado alfabeto de entrada ( Σ )
• Un conjunto finito llamado alfabeto de salida ( Λ )
• Una función de transición (T : S × Σ → S) que dirige a cada estado y a una entrada al
siguiente estado. •
Una función de salida (G : S → Λ) que dirige a cada estado al alfabeto de salida.

El número de estados en una máquina de Moore es mayor o igual al número de


estados a su correspondiente máquina de Mealy.
Una máquina de Mealy es una tupla de 6 (S, S0, Σ, Λ, T, G), que consiste de:
• Un conjunto finito de estados ( S )
• Un estado inicial S0 el cual es un elemento de (S)
• Un conjunto finito llamado alfabeto de entrada ( Σ )
• Un conjunto finito llamado alfabeto de salida ( Λ )
• Una función de transición (T : S × Σ → S)
• Una función de salida (G : S × Σ → Λ)

9. Que es un Latch?
R= s un circuito electrónico biestable asíncrono usado para almacenar información en
sistemas lógicos digitales. Un latch puede almacenar un bit de información, asimismo
los latches se pueden agrupar de tal manera que logren almacenar más de 1 bit,
ANTECEDENTES FPGA

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.

Aparte de las diferencias en densidad entre ambos tipos de dispositivos, la diferencia fundamental
entre las FPGAs y los CPLDs es su arquitectura. La arquitectura de los CPLDs es más rígida y
consiste en una o más sumas de productos programables cuyos resultados van a parar a un
número reducido de biestables síncronos (también denominados flip-flops). La arquitectura de las
FPGAs, por otro lado, se basa en un gran número de pequeños bloques utilizados para reproducir
sencillas operaciones lógicas, que cuentan a su vez con biestables síncronos. La enorme libertad
disponible en la interconexión de dichos bloques confiere a las FPGAs una gran flexibilidad.

Otra diferencia importante entre FPGAs y CPLDs es que en la mayoría de las FPGAs se pueden
encontrar funciones de alto nivel (como sumadores y multiplicadores) embebidas en la propia
matriz de interconexiones, así como bloques de memoria.

Arquitectura general de un FPGA


Un FPGA consiste en arreglos de varios bloques programables (bloques
lógicos) los cuales están interconectados entre sí y con celdas de
entrada/salida mediante canales de conexión verticales y horizontales.
En general, se puede decir que posee una estructura
bastante regular, aunque el bloque lógico y la arquitectura de rutado varía de
un fabricante a otro.

La estructura de un FPGA, comparada con la de una CPLD, es mucho más


regular, y se encuentra más orientada a diseños que manejan mayores
transferencias de datos y registros, en tanto que las CPLD implementan más
efcientemente diseños con una parte combinacional más intensa. La figura 1.21
muestra a primera vista la diferente estructura de ambos dispositivos.

aplicaciones Generales de una FPGA


El rango de aplicaciones de las FPGA es muy amplio, debido a la versatilidad y a la flexibilidad de estos dispositivos;
siendo la principal aplicación de las FPGAs el procesamiento digital de señales (DSP), comunicaciones,
procesado de datos, etc. La elección de una FPGA para aplicaciones de tratamiento de señal se debe a su alta
frecuencia de trabajo, a su capacidad de procesamiento en paralelo, y a su bajo precio en comparación con los
ASICs. En general, la lógica de un CPLD es insuficiente para realizar dicho procesamiento.

En la siguiente gráfica puede apreciarse la distribución de las aplicaciones de las FPGA en


el año 2008.

De esta aplicación se derivan una gran variedad de aplicaciones de las FPGA, citándose algunas de ellas a
continuación:

 Sistemas de visión artificial: en el mundo actual existen cada vez en más número dispositivos que
disponen de un sistema de visión artificial. Ejemplo de esto son las cámaras de videovigilancia, robots, etc.
Muchos de estos dispositivos precisan de un sistema para conocer su posición, reconocer los objetos de su
entorno, reconocer rostros de personas, y poder actuar e interactuar con ellos de la forma adecuada. Esta
característica requiere manejar unos volúmenes de imágenes muy elevados, tratar dichas imágenes para
detectar objetos, reconocer rostros, etc., en la gran mayoría de ocasiones en tiempo real.

 Sistemas de imágenes médicas: cada vez con más frecuencia se están empleando las FPGAs para el
tratamiento de imágenes biomédicas obtenidas mediante procesos de PET, escáner CT, rayos X, imágenes
tridimensionales, etc. Estos sistemas de visión médica cada vez precisan de más resolución y de una
capacidad de procesamiento mayor, incluso muchas necesitan poder desarrollarse en tiempo real, por lo
que las prestaciones que ofrecen las FPGAs de frecuencia y procesamiento en paralelo se adaptan muy
bien a estas necesidades.

 Radio definida por software: de forma tradicional, una radio consistía en una antena, encargada de
recibir y enviar una señal, y un hardware encargado de procesar esa señal, filtrarla, modificar su
frecuencia, etc. Este hardware no podía modificar de forma notable la funcionalidad para la cual había
sido diseñada. En la actualidad gran parte de esta funcionalidad se traslada a un dispositivo electrónico,
que con frecuencia suele ser una FPGA, pudiendo limitarse la parte analógica a una antena y a los
convertidores ADC y DAC.

 La principal ventaja de este tipo de radio es que su funcionalidad viene definida por el diseño del
software, de forma que su modificación o actualización es sencilla y no precisa de la sustitución de
ningún elemento de hardware.

 Codificación y encriptación: la seguridad en el envío de mensajes es fundamental en la vida diaria, por


ejemplo a la hora de enviar un email o de realizar una compra por internet, y lo es más aún en el ámbito
militar, aeronáutico y gubernamental. En este terreno, la encriptación eficiente y segura de mensajes se
convierte en un objetivo prioritario. Las FPGA pueden aportar en este terreno su capacidad de manejar
grandes volúmenes de información y sus bloques optimizados para realizar operaciones aritméticas.

 Radioastronomía: la radioastronomía es la ciencia que se encarga de estudiar los fenómenos que


ocurren en el espacio mediante la captación de la radiación electromagnética procedente de éste. De
forma similar a las aplicaciones anteriores, precisa del procesamiento de una gran cantidad de
información en el que la FPGA puede aportar todo su potencial.

 Reconocimiento de voz: el reconocimiento de la persona que habla es una técnica empleada en


seguridad, sistemas de recuperación de información, etc., y se espera que en el futuro su ámbito de
aplicación aumente. En este contexto, la FPGA resulta muy eficiente a la hora de realizar la comparación
de la voz de una persona con unos patrones previamente almacenados.

 Aeronáutica y defensa: además de las mencionadas previamente, existen multitud de aplicaciones


aeronáuticas y de defensa que emplean FPGA debido a las buenas características que éstas ofrecen.
EJEMPLOS VHDL

SUMADOR SIMPLE CON ACARREO(VHDL)

ieee BIBLIOTECA;
USO ieee.std_logic_1164.AL L;
USO ieee.std_logic_unsigned.A LL;
ENTIDAD sumaca ES
PORT
(A, B: EN std_logic_vector (3 downto 0);
ci: en std_logic
;S: std_logic_vector cabo (3 downto 0);
co: Fuera std_logic);
FIN sumaca;
ARQUITECTURA ENTERA DE sumaca ES
suma de la señal:std_logic_ve ctor (4 downto 0);
EMPEZAR
suma <=('0' & A) + B + ci;S <= SUMA (3 downto 0);
co <= SUMA (4);
FIN ENTERA;

SUMADOR 8BITS CON SIGNO


ieee BIBLIOTECA;
USO ieee.std_logic_1164.AL L;
USO ieee.std_logic_arith.ALL;
sumador8bits entidad es
PUERTO
(A, B: EN sin signo (7 downto 0);
C: EN firmado (7 downto 0);
D: en std_logic_vector (7 downto 0);
S: Fuera sin signo ( 8 downto 0);
T: Fuera firmó (8 downto 0);
T: Fuera firmó (7 downto 0);
v: std_logic_vector cabo (8 downto 0));
sumador8bits
END;
ARQUITECTURA rtl DE sumador8bits ES
COMENZAR
S<= ('0' y A) + ('0' y B);
T<= A + C;
U<= C + FIRMADO (D);
V<= C - UNSIGNED (D);
FIN rtl;

decodificador completo de 3 Entradas (I2, I1, I0) y 8 Salidas(S7, S5, S4, ...,
S0)
IEEE biblioteca;
usoieee.std_logic _1164.all;
ejemplo04 entidad es
puerto
(I: enstd_logic_v ector (3 DOWNTO 0);
S: Fuerastd_logic_v ector (7 DOWNTO 0));
ejemplo04 fin;
arquitectura rtl de ejemplo04 se
comienza
con E seleccione
S <= "00000001" cuando "000",
"00000010" cuando "001",
"00000100" cuando "010",
"00001000 "cuando" 011 ",
" 00010000 "cuando" 100",
" 00100000 "cuando" 101",
" 01000000 "cuando" 110",
" 10000000 "cuando los demás;
rtl fin;
EJEMPLOS VERILOG
CONTADOR 2BITS

module contador(
input clk, //Declaramos la entrada clk
input clr, //Declaramos la entrada clr
output reg [3:0] Q //Declaramos el bus de salida Q.
);

always @(posedge clk or posedge clr)


if(clr)Q<=0; //Si se activa clr el siguiente valor de Q sera 0
else Q<=Q+1; //De lo contrario el siguiente valor de Q sera Q+1.
Endmodule
CONTADOR DE ANILLO

module cont_despN #(
parameter N=4)(
input clk,
input clr,
output reg [N-1:0] Q
);

always @(posedge clk or posedge clr)


if(clr) Q <= 4'b0001; //Si se Activa clr Q sera igual a 4'b0001
else Q <= {Q[N-2:0],Q[N-1]}; //De lo contrario Q sera igual al valor de Q
dezplazado un bit hacia la izquierda.

endmodule

También podría gustarte