Vous êtes sur la page 1sur 82

toc

1. Flujo de diseo
2. Lenguaje de descripcin Hardware
3. Simulacin con VHDL
4. Estructura de un modelo VHDL
5. Elementos bsicos de VHDL
6. Mquina de estados nitos
7. Otros elementos de VHDL
8. Test-bench de simulacin
9. Introduccin a las FPGAs
toc

toc

1. Flujo de diseo

2. HDL

Qu es HDL?
Lenguaje especcamente creado para el diseo de circuitos:
Nivel de puerta (gate level).
Nivel de comportamiento (behavioural level).

La estructura del lenguaje sugiere el diseo hardware.

Por qu usar HDL?

Poder descubrir problemas en el diseo antes de su


implementacin ]sica.
La complejidad de los sistemas electrnicos crece
exponencialmente, es necesaria una herramienta que trabaje con
el ordenador.
Permite que ms de una persona trabaje en el mismo proyecto.

No es lo mismo un lenguaje hardware que un lenguaje so)ware


toc

2. HDL

VHDL
VHSIC (Gobierno de EE.UU. 1980).
IEEE VHDL87.
www.vhdl.org

Verilog

Desarrollado por CADENCE.


IEEE 1364.
www.eda.org

SystemVerilog

Descripcin hardware y vericacin.


Extensin IEEE 1364
www.systemverilog.org

toc

2. HDL

VHDL
Descripcin de la estructura del circuito

Descomposicin en sub-circuitos
Interconexin de sub-circuitos
Comportamiento
Estructural

Permite la especicacin de la funcionalidad de un circuito


uflizando formas familiares de lenguajes de programacin
Permite la simulacin del circuito antes de su fabricacin
Testear y comparar alternafvas sin necesidad de protofpos
hardware

toc

2. HDL

HDL fene que ser capaz de simular el comporta-

miento real del HW sin que el programador necesite


imponer restricciones.
A
B
C

D
S
A and B
D or C

toc

2. HDL

t = 5ns

t = 10ns

A = 0

A = 1

B = 1

B = 1

C = 0

C = 0

Descripcin 1
D = A and B;
S = D or C;

Descripcin 2
S = D or C;
D = A and B;

Se ob1ene el mismo resultado?

toc

3. Simulacin con VHDL


toc

VHDL realiza la simulacin siguiendo la tcnica de simulacin


por eventos discretos (Discrete Event Time Model).
Permite avanzar el fempo a intervalos variables, en funcin de la
planicacin de ocurrencia de eventos

La simulacin consta de tres fases:


Fase 0: fase de inicializacin donde a las seales se les asignan unos
valores iniciales y se pone el fempo a cero. La asignacin se hace
rellenando una lista de eventos para el instante t = 0.
Fase 1: todas las transiciones planicadas para ese fempo son
ejecutadas
Fase 2: Las seales que se han modicado como consecuencia de las
transiciones planicadas en el instante t se escriben en la lista de
eventos planicndose para el instante t + . Donde es un instante
innitesimal.

3. Simulacin con VHDL

Ejemplo I

C <= B;
B <= A;

Valores iniciales
A=U
B=U
A=0
C=U

A=1

0+ 0+2

B=0
C=0

toc

t(ns)
A
B
C

0
0
U
U

0 +
0
0
U

5+ 5+2

fempo (ns)

B=1 C=1

0 + 2
0
0
0

No hay
ms
cambios

5
1
0
0

5 +
1
1
0

5 + 2
1
1
1

No hay
ms
cambios

3. Simulacin con VHDL

Ejemplo II
Valores iniciales
A=U
B=U
C=U
D=U
S=U

D <= A and B;
S <= D or C;
A=0
B=0
C=0

2
5

D=0
S=0

toc

B=1

A=1
10

10+

10+2

D=1 D=1
S=1

fempo (ns)

3. Simulacin con VHDL

Ejemplo III
Valores iniciales
A=U
B=U
C=U
D=U
S=U

S <= D or C;
D <= A and B;
A=0
B=0
C=0

2
5

D=0
S=0

toc

B=1

A=1
10

10+

10+2

D=1 D=1
S=1

fempo (ns)

4. Estructura de un modelo VHDL


toc

Descripcin de un sistema
digital:

Un sistema digital est


descrito por sus entradas y
sus salidas, donde las salidas
dependen de las entradas

A
B

entity F is
port (A: in bit;
B: in bit;
Y: out bit);
end F;

4. Estructura de un modelo VHDL

Los modelos VHDL estn formado por 2 partes:


en1ty nombre is
generic (lista de parmetros);
port (lista de puertos de entrada y salida);
end nombre;


toc

architecture circuito of nombre is


-- seales
begin
-- programacion
end architecture circuito;

4. Estructura de un modelo VHDL


toc

Los modelos VHDL estn formado por 2 partes:


Enfty
Dene externamente al circuito o subcircuito
Nombre y nmero de puertos, fpos de datos de entrada y salida
Tienes toda la informacin necesaria para conectar tu circuito a
otros circuitos

Architecture
Dene internamente el circuito
Seales internas, funciones, procedimientos, constantes

5. Elementos bsicos de VHDL


toc

entity nombre is
port (lista de puertos de entrada y salida);
end nombre;
lista de puertos de entrada-salida
nombre_puerto: fpo_de_puerto fpo_de_seal;


entradaA: in bit_vector(7 downto 0);

5. Elementos bsicos de VHDL


toc

Mulfplexor 8 a 1:
entity multiplexor is
port (






);
end multiplexor;

5. Elementos bsicos de VHDL


toc

architecture arch_name of entity_name is


-- declaraciones de la arquitectura:
-- tipos
-- seales
-- componentes

begin
-- cdigo de descripcin
-- sentencias concurrentes
-- componentes
process (lista de sensibilidad)
begin
-- cdigo de descripcin
end process;
end arch_name;

5. Elementos bsicos de VHDL

El cdigo VHDL propiamente dicho se escribe dentro

de architecture.
Cada architecture va asociada a una enGty y se indica
en la primera sentencia.
A confnuacin, y antes de begin se denen:

Seales
Tipos
Componentes: otros circuitos ya denidos y compilados de
los cuales conocemos su interfaz en VHDL (su enGty).

Desde begin hasta end escribiremos todas las


sentencias propias de VHDL

No todas pueden uflizarse en cualquier parte del cdigo.

toc

5. Elementos bsicos de VHDL


toc

Dentro de la arquitectura:
Seales:
Representan elementos de memoria o conexiones.
Los puertos de una enfdad.
En la arquitectura antes del BEGIN, lo cual nos permite realizar
conexiones entre diferentes mdulos.
seal <= valor

Variables
Se uflizan como ndices (instrucciones de bucle o modelar
componentes).
Las variables NO representan conexiones o estados de memoria.
variable := valor

5. Elementos bsicos de VHDL


toc

entity F is
port (A, B: in std_logic; Y out std_logic);
end F

architecture circuito of F is
signal D, E: std_logic_vector(1 downto 0);
seales
signal H: std_logic;
begin
()
end architecture circuito;

5. Elementos bsicos de VHDL


toc

architecture circuito of nombre is


-- seales
begin
-- Sentencias concurrentes
-- Procesos
-- Componentes
-- Ecuaciones booleanas
end architecture circuito;

5. Elementos bsicos de VHDL


toc

architecture circuito of nombre is


-- seales
begin
-- sentencias concurrentes
-- Procesos
-- Componentes
-- Ecuaciones booleanas
process (lista de sensibilidad)
begin
-- Sentencias secuenciales
-- Sentencias condicionales
-- Ecuaciones booleanas
end process
end architecture circuito;

EN SIMULACIN
Slo se ejecutan las
sentencias que se
encuentran dentro del
process si alguna de las
seales de la lista de
sensibilidad ha
cambiado de valor

5. Elementos bsicos de VHDL


toc

Sentencias concurrentes (I):


Siempre fuera de los PROCESS.
Aparecen en cualquier punto del programa
(despus del begin de la arquitectura).
Es lgica combinacional pura.
Siempre fenen un ELSE nal o un WHEN OTHERS.

5. Elementos bsicos de VHDL


toc

Sentencias concurrentes WHEN-ELSE (II):


signal_name <= valor_1 when condicin1 else

valor_2 when condicin2 else



...

valor_i when condicini else
OBLIGATORIO

otro_valor;

salida <= 00 when entrada = 0001 else


01 when entrada = 0010 else

10 when entrada = 0100 else
11;

5. Elementos bsicos de VHDL


toc

Sentencias concurrentes WITH-SELECT-WHEN (III):


with identificador select
signal_name <= valor_1 when valor_identificador1,

valor_2 when valor_identificador2,



...

valor_i when valor_identificadori,

otro_valor when others;
OBLIGATORIO

with entrada select


salida <= 00 when 0001,
01 when 0010,

10 when 0100,
11 when others;

5. Elementos bsicos de VHDL


toc

Disear la architecture de un mulfplexor 8 a 1


con las sentencia WITH-SELECT-WHEN:

5. Elementos bsicos de VHDL


toc

Procesos: sentencias concurrentes vitaminadas


process (lista de sensibilidad)
begin
-- Sentencias secuenciales
-- Sentencias condicionales
-- Ecuaciones booleanas
end process

Slo se ejecutan las sentencias que se encuentran


dentro del proceso si alguna de las seales de la lista
de sensibilidad ha cambiado de valor.
Cdigo secuencial.

5. Elementos bsicos de VHDL


toc

Simulacin de un proceso (I)


Valores iniciales
A=U
B=U
A=0
C=U

A=1

0+

B=0

t (ns)
A
B
C

0
0
U
U

process (A)
begin
B <= A;
C <= B;
end process;

5+

fempo (ns)

B=1
C=0

0 +
0
0
U

No hay ms
cambios

5
1
0
U

5 +
1
1
0

No hay ms
cambios

5. Elementos bsicos de VHDL


toc

Simulacin de un proceso (II)


Valores iniciales
A=U
B=U
A=0
C=U

A=1

0+

B=0

t (ns)
A
B
C

0
0

process (A)
begin
C <= B;
B <= A;
end process;

5+

fempo (ns)

B=1
C=0

0 +
0

No hay ms
cambios

5
1

5 +
1

No hay ms
cambios

5. Elementos bsicos de VHDL


toc

Simulacin de un proceso (III)


Valores iniciales
A=U
B=U
A=0
C=U
0+
0

B=0
C=0

A=1
5

process (A)
begin
d := A;
e := d;
C <= d;
B <= e;
end process;

5+

B=1
C=1

fempo (ns)

5. Elementos bsicos de VHDL


toc

Sentencias condicionales (I)


VHDL permite uflizar otro fpo de sentencias
condicionales ms parecidas a los lenguajes de
programacin usados
Se uflizan siempre dentro de una estructura
process
Como veremos ms adelante, sentencias
condicionales incompletamente descritas dan
lugar a HW secuencial

5. Elementos bsicos de VHDL


toc

Sentencias condicionales (II):


if cond_l then
-- statements
elsif cond-n then
-- statements
else
-- statements
end if;

if a = b then
c <= a or b;
elsif a<b then
c <= b;
else
c <= 0000;
end if;

5. Elementos bsicos de VHDL


toc

Todas las sentencias condicionales van dentro de un process


por qu?
Todos los PROCESS fenen lista de sensibilidad
process (a, b)
begin
if a = b then
c <= a or b;
elsif a<b then
c <= b;
else
c <= 0000;
end if;
end process;

t = 5 ns

t = 10 ns

t = 15 ns

a <= 0010

a <= 0010

a <= 0010

b <= 0010

b <= 0110

b <= 0001



Segn avance el curso se observarn las consecuencias malignas de la uflizacin de los process

5. Elementos bsicos de VHDL


toc

Todas las sentencias condicionales van dentro de un process


por qu?
Todos los PROCESS fenen lista de sensibilidad
process (a, b)
begin
if a = b then
c <= a or b;
elsif a<b then
c <= b;
end if;
end process;

t = 5 ns

t = 10 ns

t = 15 ns

a <= 0010

a <= 0010

a <= 0010

b <= 0010

b <= 0110

b <= 0001



Segn avance el curso se observarn las consecuencias malignas de la uflizacin de los process

5. Elementos bsicos de VHDL


toc

Todas las sentencias condicionales van dentro de un process


por qu?
Todos los PROCESS fenen lista de sensibilidad
process (a)
begin
if a = b then
c <= a or b;
elsif a<b then
c <= b;
else
c <= 0000;
end if;
end process;

t = 5 ns

t = 10 ns

t = 15 ns

a <= 0010

a <= 0010

a <= 0010

b <= 0010

b <= 0110

b <= 0001



Segn avance el curso se observarn las consecuencias malignas de la uflizacin de los process

5. Elementos bsicos de VHDL


toc

Disear la architecture de un mulfplexor 8 a 1


con las sentencia IF-THEN-ELSE:

5. Elementos bsicos de VHDL


toc

Sentencias condicionales (III):


case expression is
when choice_l => ... -- statements;
when choice_n => ... -- statements;
when others => ... -- statements;
end case;

case RGB is
when 111 => r <= 0;
when 100 => r <= 1;
when 110 => r <= 1;
when others => r <= 0;
end case;

5. Elementos bsicos de VHDL


toc

Bucles
[label:] loop
sequence-of-statements
-- use exit statement to get out
end loop [label];
[label:] for var in range loop
sequence-of-statements
end loop [label];

[label:] while cond loop


sequence-of-statements
end loop [label];

5. Elementos bsicos de VHDL


toc

Wait

[label:] wait [sensifve clause] [condifon clause];


Se usa en procesos, procedimientos y funciones.


Tres fpos:
wait for <fmeout clause, fme delay>
wait unfl <condifon>
wait on <sensifve clause, event>

Ejemplos:

wait for 10 ns;


wait unfl clk=1;
wait on in1;

5. Elementos bsicos de VHDL


toc

Atributos
S'DELAYED(t) is the signal value of S at fme now - t .
S'STABLE is true if no event is occurring on signal S.
S'STABLE(t) is true if no even has occurred on signal S for t units of
fme.
S'QUIET is true if signal S is quiet. (no event this simulafon cycle)
S'QUIET(t) is true if signal S has been quiet for t units of fme.
S'TRANSACTION is a bit signal, the inverse of previous value each cycle
S is acfve.
S'EVENT is true if signal S has had an event this simulafon cycle.
S'ACTIVE is true if signal S is acfve during current simulafon cycle.
S'LAST_EVENT is the fme since the last event on signal S.
S'LAST_ACTIVE is the fme since signal S was last acfve.
S'LAST_VALUE is the previous value of signal S.

5. Elementos bsicos de VHDL


toc

Disear la architecture de un mulfplexor 8 a 1


con las sentencia CASE:

5. Elementos bsicos de VHDL


toc

Sentencias secuenciales:

Deben aparecer
SIEMPRE dentro de un
process (clk, )

signalevent
signallast_event
signallast_value

if clkevent and clk = 1;

5. Elementos bsicos de VHDL


toc

Biestables, registros

clkevent and clk=1 anco de subida


clkevent and clk=0 anco de bajada

Biestable D disparado por anco:


process (clk, d)
begin
if clkevent and clk = 1 then
q<=d;
end if;
end process;

5. Elementos bsicos de VHDL

Biestable D con reset sncrono:



process (clk)
begin

if clkevent and clk = 1 then


if reset = 1 then



Q<=0;


else



Q<=D;


end if;

end if;
end process;


toc

5. Elementos bsicos de VHDL


toc

Biestable D con reset asncrono

5. Elementos bsicos de VHDL

Tipos de datos
Tipos enteros y reales
INTEGER
NATURAL
REAL

Tipos ]sicos
TIME
RESISTENCIA

Tipos enumerados: conjunto de valores posibles.


toc

5. Elementos bsicos de VHDL


toc

Tipos de datos
Tipos enumerados
BIT: {0, 1}
BOOLEAN : {TRUE, FALSE}
CHARACTER : {ascii}
STD_LOGIC : {U, X, 0, 1, Z, W, L, H, -}

5. Elementos bsicos de VHDL


toc

Tipos de datos
Pueden denirse fpos adicionales:
Enumerados
Sub-fpos: subconjunto de fpos

nuevo_fpo ::= type idenfcador is denicin_fpo;

5. Elementos bsicos de VHDL

type_name

BIT {'0','1'} STD_LOGIC


BIT_VECTOR (range) STD_LOGIC_VECTOR (range)
BOOLEAN {TRUE,FALSE}
CHARACTER {ascii}
STRING {ascii}
INTEGER [range]
NATURAL [range]
REAL [range]

range
n_min TO n_max n_max DOWNTO n_min

toc

5. Elementos bsicos de VHDL


toc

Operadores bsicos:
abs
*, /, mod, rem
+ , -
&
and, or, nand, nor



y<=(x1 and x2) or d(0);
y(1) <= x1 and not x2;

y: bit_vector(1 downto 0);
y <= x1&x2;

6. Mquinas de estados nitos

Todo circuito secuencial se divide en un circuito


combinacional que implementa la salida del circuito y la
transicin al siguiente estado y en unos elementos de
almacenamiento.
Entradas

Moore
Mealy
toc


Lgica Combinacional

Registros
Flip-op

Salidas

6. Mquinas de estados nitos

architecture beh of FSM is


internal signal declarations;
begin
sncrono: process ( clock, reset)
begin
vhdl indicando los flip-flops
end process sncrono;

comb: process ( sensitivity list)
begin
vhdl indicando la lgica combinacional
end process comb;

end beh;

toc

6. Mquinas de estados nitos


toc


E=1


E=0

S1
O = 0

E=1

E=0

S2
O = 0

E=1

E=0

S3
O = 0

E=0

E=1

S4
O = 1

toc

library IEEE;
use IEEE.std_logic_1164.all;
en1ty FSM is
port(reset, E, clk: in bit; O: out bit);
end FSM;
architecture ARCH of FSM is
type ESTADOS is (S1, S2, S3,S4);
signal ESTADO, SIG_ESTADO: ESTADOS;

begin

SINCRONO: process(clk,reset)
begin
if reset ='1' then

ESTADO<=S1;
elsif clk'event and clk='1' then

ESTADO<= SIG_ESTADO;
end if;
end process SINCRONO;







end ARCH;

COMB: process(ESTADO,E)
begin
case ESTADO is
when S1 =>

O <= '0';

if (E='0') then SIG_ESTADO<=S2;

else SIG_ESTADO<=S1;

end if;
when S2 =>

O <= '0';

if (E='0') then SIG_ESTADO<=S3;

else SIG_ESTADO<=S1;

end if;
when S3 =>

O <= '0';

if (E='0') then SIG_ESTADO<=S3;

else SIG_ESTADO<=S4;

end if;
when S4 =>

O <= '1';

if (E='0') then SIG_ESTADO<=S2;

else SIG_ESTADO<=S1;

end if;
end case;
end process COMB;

6. Mquinas de estados nitos


toc

Cmo se hara un contador mdulo 4

7. Otros elementos
toc

Descripcin estructural
architecture arch_name of entity_name is
component component_name
generic ();
port ();
end component;
signal declarations;
begin
component_i: component_name
generic map (parameter_value)
port map (io_name)
end arch_name;

7. Otros elementos
toc

Ejemplo

architecture structure of F is
component G
port (Ag, Bg: in bit; Yg: out bit);
end component;
component H
port (Ah, Bh: in bit; Yh: out bit);
end component;
component I
port (Ai, Bi: in bit;Yi: out bit);
end component;
signal YA, YB, Yout: bit;
begin
mod_G: G port map (A, B, YA);
mod_H: H port map (A, B, YB);
mod_I : I port map (YA; YB; Yi);
Y<=Yout;
end structure;

mod_G

Ag

G
Bg

Yg

mod_H
Ah
H Yh
Bh

YA
YB

mod_I
Ai
Bi

Yi

Yout

7. Otros elementos
toc

Ejemplo
architecture struct of f is
component g
port (ag, bg: in bit; yg: out bit);
end component;
A
component h
port (ah, bh: in bit; yh: out bit);
end component;
component i
port (ai, bi: in bit;yi: out bit);
end component;
B
signal ya, yb, yout: bit;
begin
mod_g: g port map (a, b, ya);
mod_h: h port map (a, b, yb);
mod_i : i port map (ya, yb, yout);
salida: y<=yout;
end architecture struct;

mod_G
Ag

Yg
G
Bg
mod_H
Ah
H Yh
Bh

YA
YB

mod_I
Ai
Bi

Yi

Yout

7. Otros elementos

GENERATE: Las secuencias de generacin de componentes


permiten crear una o ms copias de un conjunto de
interconexiones, lo cual facilita el diseo de circuitos
mediante descripciones estructurales.

for indice in rango generate


-- instrucciones concurrentes
end generate;

toc

component comp
port( x: in bit; y: out bit);
end comp

signal a, b: bit_vector(0 to 7)

gen: for i in 0 to 7 generate


u: comp port map (a(i),b(i));
end generate gen;

7. Otros elementos

Realizar un biestable con reset sncrono

Uflizar el biestable y la instruccin for-

generate para crear un registro de 8 bits

toc

8. Test-bench de simulacin

Para conocer si nuestro diseo funciona

correctamente tendremos que introducir unos


esmulos a las entradas y comprobar que las salidas
obtenidas son las esperadas
A
B
Test-bench que
reproduce los esmulos

toc

entity test-bench
end test-bench;

Diseo a vericar
entity F is
port (A, )
end F;

Salida grca de simulacin


ofrecida por la herramienta

8. Test-bench de simulacin
toc

Estructura bsica
entity F is
port (A, B: in bit; Y out bit); Diseo a vericar
end F;

i) Se crea una enfdad de simulacin


entity test-bench
sin puertos de entrada ni de salida
end test-bench;

ii) Se aade como component la enGty
architecture behaviour of test_bench
del diseo a vericar
component F is
port (A, B: in bit; Y out bit);
end component F;
iii) Se denen tantas seales como puertos
signal A, B, Y: bit;
de la enGty del diseo a vericar
begin

8. Test-bench de simulacin
toc

Estructura bsica

begin
uut: F port map(

A => A,

B => B,

Y => Y);


iv) Se instancia el component


igualando las seales internas a las
entradas
v) Se crea el process de simulacin.
NO fene lista de sensibilidad

tb : process
begin
vi) Se denen los valores iniciales de las

A<=0;
entradas

B<=0;

wait for 100 ns;

B<= 1;
vi) Se denen los

wait for 100 ns; -- instante 200 ns
valores de las entradas

A<=1;
en los siguientes

wait for 100 ns; -- instante 300 ns


instantes de fempo

wait; -- espera para siempre

end process tb;
end;

8. Test-bench de simulacin
toc

A
B
t

100 ns 200 ns 300 ns 400 ns 500 ns 600 ns 700 ns 800 ns

tb : process

begin

A<=0;

B<=0;

wait for 100 ns;

B<= 1;

wait for 100 ns; -- instante 200 ns

A<=1;

wait for 200 ns; -- instante 400 ns

A<=0;

B<=0;

wait for 100 ns; -- instante 500 ns

A<=1;

wait for 200 ns; -- instante 700 ns

B<=1;

wait for 100 ns; -- instante 800 ns

wait;

end process tb;

8. Test-bench de simulacin
toc

Como implementar una entrada peridica: clk


clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;

Como este process no acaba con un wait (sin for),


se repefr indenidamente

9. Introduccin a las FPGAs


toc

Una FPGA es un hardware de protofpado


automfco

Inicialmente serva para lo mismo que un


entrenador, con la diferencia de que el circuito se
implementaba automfcamente
Debido a su gran capacidad de procesamiento,
versaflidad y a las herramientas de diseo
disponibles, actualmente existen circuitos
comerciales que llevan FPGAs incorporadas

9. Introduccin a las FPGAs


toc

Componentes bsicos de una FPGA


Celdas de entrada salida
Celdas lgicas programables (CLBs)
Celdas de interconexin programables

Componentes que pueden encontrarse en


algunas FPGAs:

Memorias
Mulfplicadores
Micro-controladores

9. Introduccin a las FPGAs


toc

CLB

Celda de interconexin

Celda I/O

9. Introduccin a las FPGAs

Las estructuras de

interconexionado son
muy costosas

Implementacin de un Banco
de registros sobre FPGA

toc

9. Introduccin a las FPGAs

Celda bsica recongurable (CLB):


Look Up Tables (LUTs):
Son memorias ROM que almacenan 1x16 bits
Pueden implementar cualquier funcin lgica de 4 entradas

Biestables
Se uflizan en el caso de que la celda deba implementar HW
secuencial
Se puede congurar si son disparados por anco o por nivel

Mulfplexores
Para interconectar las entradas con los mdulos o los
mdulos entre si se uflizan mulfplexores

toc

9. Introduccin a las FPGAs

LUTs como conjunto universal


Una memoria ROM puede implementa cualquier
funcin lgica
1

a b c d | salida
0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 0 1 1 1
0 1 0 0 0

1 1 1 1 1

a
b
c
d

0
0
1
0

1
salida

toc

9. Introduccin a las FPGAs

LUTs como conjunto universal


Una memoria ROM puede implementa cualquier
funcin lgica
0
Puerta AND de 2 entradas
0
a
b
0
0

0
1
X
X
X

x

toc

salida

toc

9. Introduccin a las FPGAs

Xilinx

9. Introduccin a las FPGAs

Xilinx leads one of the fastest growing segments of the


semiconductor industry - programmable logic devices.
Xilinx develops, manufactures, and markets a broad line of
advanced integrated circuits, soWware design tools and
intellectual property.
This last year, Xilinx decisively separated itself from our
compeGGon. For the rst Gme in our history, we secured
over 50% of the PLD market share and are bigger than all
other public PLD companies combined.
PARA MS INFORMACIN...

hZp://www.xilinx.com/company/press/grounder.htm
hZp://www.xilinx.com/company/about/overview.html

toc

9. Introduccin a las FPGAs


toc

Arquitecturas de Xilinx
Spartan
Spartan III
Spartan VI
Virtex
Virtex II
Virtex IV
Virtex V
Virtex VI

9. Introduccin a las FPGAs

Caracters1cas Generales:
Arquitecturas de grano no
Aunque en Virtex II y IV empieza a aparecer un diseo
heterogneo

Celda Bsica (CLB)


3 LUTS RAM ROM
2 biestables (ip-op o latch)
Mulfplexores y lgica de interconexin

Reconguracin no dinmica
toc

toc

9. Introduccin a las FPGAs

toc

9. Introduccin a las FPGAs

9. Introduccin a las FPGAs

Esquema interno de una CLB

toc

9. Introduccin a las FPGAs


toc

Memoria interna de la FPGA

9. Introduccin a las FPGAs


toc

Toda la complejidad, puede haber ms de un

milln de celdas lgicas, es gesfonada por las


herramientas de sntesis
Estas herramientas se encargan de elegir las
celdas que se van a uflizar, su interconexin y de
dar los valores a las LUTs
Todo se hace automfcamente
Se parte de una descripcin en HDL

Vous aimerez peut-être aussi