Вы находитесь на странице: 1из 130

Diseo de Hardware con VHDL

Ferney Amaya Fernndez


ferney.amaya@upb.edu.co
Universidad Pontificia Bolivariana
Medelln - Colombia

Agenda
Sesin
Lectura
Tema
1
Introduccin al
-Procesamiento Digital de Seales
diseo con FPGAs -Arquitectura de FPGAs
-VHDL
-Flujo de diseo empleando FPGAs
-Tarjeta Spartan 3
2
Herramientas
-Prctica 1: Flujo de diseo en FPGAs
bsicas de diseo y Asignacin de pines y restricciones de tiempo
flujo de diseo.
-Tcnicas de sntesis
Gua de
-Core-Generator
laboratorio.
-Prctica 2, 3: Unidad MAC y manejo bsico de
I/O
3
Procesamiento
-Empleo de bloques de memoria, inferencia de
digital de seales memoria.
en FPGAs. Gua de -Prctica 4: Generador de secuencias.
laboratorio.
-Procesamiento de seales
-Prctica 5: Generador de tonos FPGA
-Filtrado FPGA
4

Herramientas
complementarias.
Gua de
laboratorio.
Herramientas
complementarias.
Gua de
laboratorio.

-Prctica 6: Filtrado FPGAs


-ChipScope Pro
-Prctica 7: ChipScope Pro
-PicoBlaze
-Prctica: ChipScope Pro
-System Generator
-Prctica: System Generator

Objetivos
Introducir los temas bsicos
del curso.

Adquirir conocimientos en
las herramientas de diseo
y el flujo de diseo en
FPGAs.

Conocer tcnicas de
procesamiento digital de
seales para la generacin
de soluciones empleando
FPGAs.
Conocer herramientas
complementarias para el
diseo en FPGAs.
Conocer herramientas
complementarias para el
diseo
en FPGAs.
Ferney
Amaya
2

Evaluacion
Proyecto
60 puntos
Actividades y laboratorios 40 puntos
Laboratorios 7 prcticas
28 puntos
Ejercicios diarios 6 ejercicios 12 puntos

Ferney Amaya

Agenda







Conceptos bsicos
Procesamiento Digital de Seales
Arquitectura de FPGAs
VHDL
Flujo de diseo empleando FPGAs
Tarjeta Spartan 3

Sistema DSP en tiempo real


Acondicionamiento
analgico

A/D

Procesamiento
Digital

D/A

Adecuacin

Procesamiento: convolucin, correlacin, modulacin,


transformacin.
Dispositivos para el procesamiento digital: PC,
microprocesadores, microcontroladores, DSPs (Digital
Signal Processors), ASICs (Application Specific
Integrated Circuit), FPGAs (Field Programmable Gate
Array).
5

Seal analgica y digital


Acondicionamiento
analgico

A/D

Procesamiento
Digital

D/A

Adecuacin

seal analgica
seal muestreada,
seal cuantizada,
seal digitalizada
+5
V
Time
5

Comparacin analgico - digital


Caracterstica
Efectos

Analgico
Temperatura, humedad,
tiempo, ruido

Sensibilidad al ruido

Digital
Redondeo, truncamiento,

alta

baja

elevado

Bajo / medio

confiabilidad

media

alta

Calibracin

manual

digital

Actualizacin

Por hardware

Por software

Consumo de
potencia

Elevado

Bajo

50 60 dB

Mayor a 100 dB

Costo / tamao

SNR

DSP
Digital Signal Processing
Digital Signal Processor

Dispositivos Procesamiento
GPP, General Purpose Processor
(microprocesadores)
DSP, Digital Signal Processor
FPGA, Field Programmable Gate Array
ASIC, Application Specific Integrated Circuit
Cada uno con unas caractersticas propias para
determinadas aplicaciones.
El mejor dispositivo depende de la aplicacin.

Grupo de bits

Bit
: un dgito binario
Nibble
: 4 bits
Byte
: 8 bits
Word
: grupo de 8, 16, 32, o 64 bits
LSB - Least Significant Bit
MSB - Most Significant Bit

Ejemplos
1010
0010 1011
1010 1010 1011
Cuntos smbolos se pueden representar con r bits?

2r = N, rango de representacin: desde el 0 hasta el 2r - 19

Binario Decimal Entero


Decimal a binario:
Como pasar el (13)10 a binario?

13 2 = 6

LSB

62=3

32=1

12=0

1 MSB
(13)10 = (1 1 0 1)2
10

Binario Decimal Entero


Binario a decimal:

n 1

n 1

+ ... A3 r + A2 r + A1 r

A r

Como pasar el 1 1 0 1 a decimal

1x23 + 1x22 + 0x21 + 1x20 = 10


8

(1 1 0 1)2 = (13)10

11

Binario Decimal Fraccional Punto Fijo


Como pasar el 0.35 a binario?
0.35 x 2 = 0.70

0 MSB

0.70 x 2 = 1.40

0.40 x 2 = 0.80

0.80 x 2 = 1.60

0.60 x 2 = 1.20

1 LSB
(0.35)10 = (0.01011)2

12

Binario Decimal Fraccional Punto Fijo


Como pasar el 0.01011 a decimal
0.

-1

-2

-3

-4

-5

0x2-1

1x2-2

0x2-3

1x2-4

1x2-5

= 0x2-1 + 1x2-2 + 0x2-3 + 1x2-4 + 1x2-5


= 0 + 0.25 + 0 + 0.0625 + 0.03125
= 0.34375
Error de cuantizacin: 0.0062

13

Binario Octal - Hexadecimal


Octal: base 8
Dgitos = 0,1,2,3,4,5,6,7
Hexadecimal: base 16
Dgitos = 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Facilidad de conversin entre las diferentes bases:
HEXA

1 0 1 0 1 0 1 0 0 0
OCTAL

0
14

Representacin de nmeros negativos


MSB es el bit de signo:
0: positivo
1: negativo
Los nmeros positivos tienen la misma
representacin en la mayora de sistemas
Para los nmeros negativos hay 3 esquemas:
Magnitud y signo
Complemento a uno (1)
Complemento a dos (2)
15

Negativos Magnitud y signo


MSB bit de signo, requiere un bit adicional

-7
-6
-5
-4
-3

1111
1110

+0
0000

1101

+1
+2
0001
0010
0011

1100

0100

1011

-2

1010
1001

-1

+3

0101

1000

-0

0110
0111

+7

+6

+4
+5

Dos representaciones del 0


La suma y resta no es simple:
Circuitos separados
Identificar signo y comparar
magnitud
Rango de representacin con r
bits:

0 (2r-1 1)
16

Negativos Complemento a uno


MSB bit de signo, requiere un bit adicional
El negativo es el 1

-0
-1
-2
-3
-4

1111
1110

+0
0000

1101

+1
+2
0001
0010
0011

1100

0100

1011

-5

1010
1001

-6

+3

0101

1000

-7

0110
0111

Dos representaciones del 0


La suma y resta no es simple:
La resta es suma y 1
Rango de representacin r bits:

+4
+5

0 (2r-1 1)

+6

+7
17

Negativos Complemento a uno


MSB bit de signo, requiere un bit adicional
Rango de representacin: 0 (2r-1 1)
Dos representaciones del 0
-0
-1
-2
-3
-4

1111
1110

+0
0000

1101

+1
+2
0001
0010
0011

1100

0100

1011

-5

1010
1001

-6

+3

0101

1000

-7

0110
0111

+7

+6

+4
+5

Ejemplo 1:
(+1) 0001
(+2) 0010
0011 (3) No overflow
Ejemplo 2:
(+4) 0100
(+5) 0101
1001 overflow

18

Negativos Complemento a uno


MSB bit de signo, requiere un bit adicional
Rango de representacin: 0 (2r-1 1)
Dos representaciones del 0
-0
-1
-2
-3
-4

1111
1110

+0
0000

1101

+1
+2
0001
0010
0011

1100

0100

1011

-5

1010
1001

-6

+3

0101

1000

-7

0110
0111

+7

+6

+4
+5

Ejemplo 3:
(-1) 1110
(-2) 1101
1 1011 1100 (-3)
Ejemplo 4:
(-4) 1011
(-5) 1010
1 0101 overflow

19

Negativos Complemento a uno


MSB bit de signo, requiere un bit adicional
Rango de representacin: 0 (2r-1 1)
Dos representaciones del 0
-0
-1
-2
-3
-4

1111
1110

+0
0000

1101

+1
+2
0001
0010
0011

1100

0100

1011

-5

1010
1001

-6

+3

0101

1000

-7

0110
0111

+7

+6

+4
+5

Ejemplo 5:
(-3) 1100
(+4) 0100
1 0000 0001 (+1)
Ejemplo 6:
(-4) 1011
(+3) 0011
1110 (-1)

20

Negativos Complemento a dos


MSB bit de signo
Solo una representacin del 0
Rango de representacin:

-2r-1 (2r-1 1)
-1
-2
-3
-4
-5

1111
1110

+0
0000

1101

+1
+2
0001
0010
0011

1100

0100

1011

-6

1010
1001

-7

+3

0101

1000

-8

0110
0111

+7

+6

+4
+5

Conversin de N (negativo) a 2:
Mtodo 1: 2 = N + 1
Mtodo 2: 2 = 2r - N
Ejemplo 4 bits:
(+5) : 0 1 0 1
(-5) : 1 0 1 1
21

Negativos Complemento a dos


MSB bit de signo
Solo una representacin del 0
Rango de representacin: -2r-1 (2r-1 1)

-1
-2
-3
-4
-5

1111
1110

+0
0000

1101

+1
+2
0001
0010
0011

1100

0100

1011

-6

1010
1001

-7

+3

0101

1000

-8

0110
0111

+7

+6

+4
+5

Ejemplo 1:
(+1) 0001
(+2) 0010
0011 (3) No overflow
Ejemplo 2:
(+4) 0100
(+5) 0101
1001 overflow

22

Negativos Complemento a dos


MSB bit de signo
Solo una representacin del 0
Rango de representacin: -2r-1 (2r-1 1)

-1
-2
-3

1111
1110

+0
0000

1101

-4
-5

+1
+2
0001
0010
0011

1100

0100

1011

-6

1010
1001

-7

+3

0101

1000

-8

0110
0111

+7

+6

+4
+5

Ejemplo 3:
(-1) 1111
(-2) 1110
1 1101 (-3) ignorar carry
Ejemplo 4:
(-4) 1100
(-5) 1011
1 0111 overflow

23

Negativos Complemento a dos


MSB bit de signo
Solo una representacin del 0
Rango de representacin: -2r-1 (2r-1 1)

-1
-2
-3

1111
1110

+0
0000

1101

-4
-5

+1
+2
0001
0010
0011

1100

0100

1011

-6

1010
1001

-7

+3

0101

1000

-8

0110
0111

+7

+6

+4
+5

Ejemplo 5:
(-3) 1101
(+4) 0100
1 0001 (+1) ignorar carry
Ejemplo 6:
(-4) 1100
(+3) 0011
1111 (-1)
24

Negativos Complemento a dos


Ejercicio:
Pasar a 2 en el formato 6.4 los siguientes valores:
+0.5
-0.5
+1.0
-1.0
+0.35, Error de cuantizacin?

Ferney Amaya

25

Ejercicio
Definir el formato del siguiente valor en binario
1

0 0 1 1 1 0 0 1 0 1 0
El valor es: -917 / 32 = -28.65625
Qu formato se requiere para representar:
a)
Max: +0.9, Min: -1, 12 bits
b)
Max: +1, Min: -1, 12 bits
c)
Max: 0.8, Min: 0.2, 10 bits
d)
Max: 278, Min: -138, 11 bits
operacin
FIX_12_9 + FIX_8_3
FIX_8_7 x FIX_8_6

1 (2)  917

FIX_12_11
FIX_12_10
UFIX_10_10
FIX_11_0

Salida full precision

Parte entera 3bits + 5bits => 6 bits => FIX_15_9


FIX_16_13

Punto fijo
Matlab y Simulink usan el formato double: punto flotante
64-bits
En procesamiento digital de seales generalmente se
emplea el formato en punto fijo
DOUBLE
6

-2
.... 1

5
2 2
1 1

2
1

-1

-2

-3

-4

-5

-6

-7

-8

-9

OVERFLOW
- Wrap
- Saturate
- Flag Error

-10 -11 -12 -13

2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
....
1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 1
QUANTIZATION

-1

-2

-3

-4

-5

-6

-7

-8

-9

- Truncate
- Round

-2 2 2 2 2 2 2 2 2 2 2 2
1 0 1 1 0 1 1 1 1 0 1 0

FIX_12_9
27

Overflow
Ocurre cuando un valor queda fuera del rango de
representacin.
Hay varias opciones:
Saturate: al mximo positivo o negativo
Wrap; descarta los bits que sobran
Flag as error: genera un error durante la simulacin

Full Precision output

- Satura (3.9375),
mximo valor

FIX_7_4

- Wrap (-2.3125)

FIX_7_4

(13.6875)

28

Restricciones de tiempo
De entrada:
Setup time: tsetup
Hold time: thold
Aperture time:
ta = tsetup + thold

CLK

D
tsetup thold
ta

De salida:
Contamination delay: tccq
Propagation delay: tpcq

C LK
Q
tccq
tp cq

29

Restricciones de tiempo
El mnimo Tc depende del retardo entre los
elementos del circuito
CLK

CLK
Q1

CL

D2

R1

R2
Tc

C LK
Q1
D2
tpcq

tp d

t setup

Tc tpcq + tpd + tsetup

Restricciones de tiempo - Ejemplo


Para el circuito, hallar la frecuencia de reloj
CLK

CLK
A

tpcq = 50 ps

tsetup = 60 ps

C
D

X'

thold = 70 ps

Y'

tpd

tpd = 3*35 ps = 105 ps


Tc tpcq + tpd + tsetup
Tc (50 + 105 + 60) ps = 215 ps
fc 1/Tc = 4.65 GHz

= 35 ps (por compuerta)

Clock skew
El reloj no llega a todos los registros al tiempo
Skew: diferencia entre dos flancos de reloj que cumplen el
peor caso
delay

CLK

CLK1

CLK2
Q1

R1

C
L

Tc tpcq + tpd + tsetup + tskew

D2
R2

t skew

CLK1
CLK2
CLK

32

Agenda







Conceptos bsicos
Procesamiento Digital de Seales
Arquitectura de FPGAs
VHDL
Flujo de diseo empleando FPGAs
Tarjeta Atlys

33

Seales discretas bsicas


Impulso unitario: (delta de Dirac)
1, n = 0
[n] =
0, otro valor

Seno y coseno discretas

f0
x[n] = sen 2 n
fs

x[n] = sen(2 n / N mpp )


34

Principales momentos estadsticos


Valor DC o promedio en el tiempo

1
x =
N

N 1

i =0

Valor cuadrtico medio

1
X [x ] =
N
2

N 1

2
i

i =0

Varianza:

1
2
=
N

N 1

(x )

i =0
35

Correlacin cruzada
Para dos secuencias x(n), y(n):
N 1

R xy =

x(n) y (n)

Depende del nmero de datos y del


desfase

n=0

R xy

1
=
N

N 1

x(n) y (n)

Depende del desfase

n=0

1
R xy ( j ) =
N

N 1

x(n) y (n +

j)

n=0

Normalizada

xy ( j ) =

R xy ( j )

1
2
2
x
(
n
)
y
(
n
)

N n = 0
n=0

N 1

N 1

1/ 2

Matlab:
>>[xc,xi] = xcorr(x1,x2);
>>stem(xi,xc)
36

Aplicaciones de la Correlacin
Receptores en comunicaciones digitales: estudiar
el uso de la correlacin para implementar un
demodulador BPSK con los siguientes parmetros:
Fs = 64 kHz; % Frecuencia de muestreo
Fc = 2 kHz; % Frecuencia de portadora
Fb = 1 kHz; % Frecuencia de bits

37

Convolucin
La convolucin discreta se aplica a secuencias causales LTI.

x(n)

h(n)

y(n)

x(n): secuencia de entrada


h(n): respuesta del sistema al impulso
y(n): secuencia de salida
La convolucin discreta:

y[ n ] =

k =0

k =0

x[ n k ]h[ k ] = x[ k ]h[ n k ]
38

Convolucin discreta (1)


Ejemplo: Sistema con hk= {1, 2, 1, 0}, hallar la salida para la

entrada x(n) = {3, 4 , 5, 6, 7, 8}:


y[ n ] =
x[ n k ] h[ k ]

x(2)
5

k =0

x(1) x(0)
4

suma

x(n-k)
hk
x(n-k)*hk

0
y(0)
?

?
39

Convolucin discreta (2)


Ejemplo: Sistema con hk= {1, 2, 1, 0}, hallar la salida para la
entrada x(n) = {3, 4 , 5, 6, 7, 8}:
x(3)
6

x(2) x(1)
5

suma

x(n-k)
hk
x(n-k)*hk

3
y(0)
3

?
40

Convolucin discreta (3)


Ejemplo: Sistema con hk= {1, 2, 1, 0}, hallar la salida para la
entrada x(n) = {3, 4 , 5, 6, 7, 8}:
x(4)
7

x(3) x(2)
6

suma

x(n-k)
hk
x(n-k)*hk

10
y(1)

y(0)

10

?
41

Convolucin discreta (4)


Ejemplo: Sistema con hk= {1, 2, 1, 0}, hallar la salida para la
entrada x(n) = {3, 4 , 5, 6, 7, 8}:
x(5)
8

x(4) x(3)
7

suma

x(n-k)
hk
x(n-k)*hk

16
y(2)

y(1) y(0)

16

10

3
42

Ecuacin en Diferencias - ED
En general:

x(n)

ak , bk

y(n)

k =0

k =1

y(n) = bk x(n k ) ak y(n k )


En algunos casos:

x(n)

hk=bk

y(n)

y (n) =

b
k =0

x(n k )
43

Transformada Z

X (z) =

x(n )z

n =

z: variable
compleja

Propiedades de Z:
Linealidad: ax1(n) + bx2(n) => aX1(z) + bX2(z)
Desplazamiento; x(n -m) => z-mX(z)
Ejemplo: Hallar la transformada z de:
y(n) = 0.2x(n) + 0.1x(n-1) 0.5y(n-1) 0.8y(n-2)

DFT Transformada Discreta de Fourier


La DTF tiene periodo N
La frecuencia angular discreta o se trabaja en el
rango (periodo 2):
- o
La frecuencia discreta fo se calcula como:
fo =o /(2)
La frecuencia discreta fo tiene el rango:
-0.5 fo 0.5
fS
f ' =
N
45

Ejemplo DTF
N 1

Si: x[n] = [ 0 1 5 3 3 2 1 0];

X (k ) =

x ( n ) e j 2 kn / N

n=0

En el tiempo
x[0] = 0
x[1] = 1
x[2] = 5
x[3] = 3
x[4] = 3
x[5] = 2
x[6] = 1
x[7] = 0

DTF
X[0] = 15
X[1] = -5.83 5.41j
X[2] = -3.00
X[3] = -0.17 + 2.59j
X[4] = 3.00
X[5] = -0.17 - 2.59j
X[6] = -3
X[7] = -5.83 5.41j

Cmo hallar la magnitud y la fase?


46

Filtros Digitales Ideales


Rango de frecuencia: -
Pasa-altas

Pasa-bajas

-
-0.5fc

0.5fc

-
-0.5fc

Pasa-banda

0.5fc

-
-0.5fc

0.5fc

La ganancia es 1

47

Filtros FIR IIR


Los filtros FIR pueden tener respuesta en fase
lineal. Importante en transmisin de datos,
imgenes. Los IIR tienen respuesta en fase no
lineal especialmente cerca de los bordes.
Los FIR siempre son estables. La estabilidad de los
IIR no est garantizada.
FIR requiere mas coeficientes, entonces mayor
memoria, tiempo de procesamiento que los filtros
IIR: recursos computacionales.
Filtros anlogos pueden transformarse a IIR
logrando especificaciones similares. Esto no es
posible con FIR.
48

Pasos Especificacin de
Requerimientos
p: desviacin banda de paso
s: desviacin banda de rechazo
fp: frecuencia en el borde de banda pasante
fs: frecuencia en el borde de banda rechazo

49

Filtros analgicos
Butterworth
butter()

Chebyshev
cheby1()

Elptico
ellip()

tipo I

Chebishev
cheby2()

tipo II

50

Filtros analgicos
Bessel

51

Ejercicios
Disear un filtro FIR pasa-banda con fs=1000Hz y
frecuencias de corte desde 200 a 300 Hz. Emplee la funcin
fir1().
Disee un filtro IIR pasabanda con las caractersticas
anteriores, emplee las funciones:
Butterworth (butter)
Chebycheb (cheby1): ripple de 0.5dB
Elptico (ellip): banda de rechazo menor a 30dB.

52

Mltiples tasas de procesamiento


Cuando se tienen seales a diferentes tasas de muestreo:
Hacer conversin D/A y A/D a la nueva tasa (distorsin introducida
por los conversores)
Hacer conversin en el dominio digital

fx

Multirate

fy

fx: frecuencia de muestreo de entrada


fy: frecuencia de muestreo de salida
D, I son enteros primos entre si.

fy

I
=
fx D

Diezmado e interpolacin

fx

fx

Pasa-bajas

Pasa-bajas

fx

LPF

fx
fy =
D

fy

f y = If x

fy

fy

Ejercicios de Diezmado
Una seal de audio debe procesarse inicialmente
a una frecuencia de muestreo de 48 kHz y luego
debe procesarse a 8 kHz, dibujar el diagrama de
bloques requerido.

Agenda







Conceptos bsicos
Procesamiento Digital de Seales
Implementacin en FPGAs
VHDL
Flujo de diseo empleando FPGAs
Tarjeta Atlys

56

Dispositivos Programables - DSP


Evolucin
En 1982 TI introduce el primer DSP comercial
(TMS32010) para aplicaciones en
Telecomunicaciones
y[n] = x[n]a0 + x[n-1]a1 + x[n-2]a3
En 1996 TI introduce el primer DSP con
tecnologa VLIW (Very Large Instruction Word),
Familia TMS320C62XX, con 8 unidades de
ejecucin independientes.
Berkeley Design Technology, Inc.

57

Comparacin FPGA - DSP


Stratix High Performance
Stratix III
65-nm, competidor Virtex-5 de Xilinx
384 multiplicadores de 18x18 a 550 MHz (211
GMACS)

http://www.altera.com/products/devices/stratix3/

58

Filtro FIR en un DSP


Seal en el tiempo x(t)
x(1)

T
x(2)

x(n)

x(3)

y(3) = x(3)C0 + x(2)C1 + x(1)C2


Para implementar un filtro FIR de
256 Taps

256 operaciones (MAC) por


periodo de muestreo
El proceso secuecial reduce el
periodo de muestreo

coeficientes

x(3)
x(2)
x(1)

C0
C1
C2

Reg1

Reg2

multiplicador

MAC

+
Registro
59

Filtros Digitales Implementacin (1)


y(n) = 0.2 x(n) + 0.1 x(n-1) -0.3 x(n-2)
2 Data
Memory
blocks

x(n)

coeficients

x(5) = 1
x(4) = 3
x(3) = 4

h0 = 0.2
h1 = 0.1
h2 = -0.3

Register 1

Register 2
multiplicator

MAC
ALU
Acumulator
60

Filtros Digitales Implementacin (2)


y(n) = 0.2 x(n) + 0.1 x(n-1) -0.3 x(n-2)

1
Instruction 1
Acc <- 0
Load R1+,R2+

x(n)

coeficients

x(5) = 1
x(4) = 3
x(3) = 4

h0 = 0.2
h1 = 0.1
h2 = -0.3

1R1

0.2
R2
multiplicator

1 cicle

0
ALU
Acc
0
61

Filtros Digitales Implementacin (3)


y(n) = 0.2 x(n) + 0.1 x(n-1) -0.3 x(n-2)

2
Instruction 2
MAC
Load R1+,R2+

x(n)

coeficients

x(5) = 1
x(4) = 3
x(3) = 4

h0 = 0.2
h1 = 0.1
h2 = -0.3

31R1

0.2
0.1
R2
multiplicator

2 cicles

0.2

0
ALU
Acc
0.2
62

Filtros Digitales Implementacin (4)


y(n) = 0.2 x(n) + 0.1 x(n-1) -0.3 x(n-2)

3
Instruction 3
MAC
Load R1+,R2+

x(n)

coeficients

x(5) = 1
x(4) = 3
x(3) = 4

h0 = 0.2
h1 = 0.1
h2 = -0.3

34R1

0.1
-0.3
R2
multiplicator

3 cicles

0.3

0.2
ALU
Acc
0.5
63

Filtros Digitales Implementacin (5)


y(n) = 0.2 x(n) + 0.1 x(n-1) -0.3 x(n-2)

4
Instruction 4
MAC

x(n)

coeficients

x(5) = 1
x(4) = 3
x(3) = 4

h0 = 0.2
h1 = 0.1
h2 = -0.3

4R1

-0.3
R2
multiplicator

4 cicles

-1.2

0.5
ALU
Acc
-0.7
64

Como implementar un oscilador digital?


Seal en el dominio del tiempo:
sen(2nfo/fs) = sen(2n/N)
Hay varios mtodos:
Look-up-table
Transformada z
CORDIC
Series de Taylor

sen(2n/N)
N = 10

Look-up-table, LUT
Consiste en acumular incrementos de fase para
emplearlos como direccin de una ROM.
ROM completa: la ROM almacena los 360de las
seales seno y coseno. Emplea mucha memoria y
pocos elementos lgicos.
ROM pequea: almacena solo una porcin de los
valores de las seales seno y coseno. Los dems
valores son derivados.

66

NCO, numerical controller oscillator


NCO (Numerical Controller Oscillator) basado en LUTs

direccin
q ROM dir dato
di

acumulador

seal coseno

LUT:ROM

Nspp: Muestras por periodo


sin (2n/Nspp)
cos (2n/Nspp)
donde:
d = floor(2n/ Nspsy)
67

Transformadas Z del seno y el coseno


a0 + a1 z 1
1 b1 z 1 b2 z 2

sin(nT),
cos(nT)

Ecuacin en diferencias de la seal seno y coseno:


y(n) = a0 x(n) + a1 x(n-1) + b1 y(n-1) + b2 y(n-2)

a0
a1
b1
b2

coseno
1
-cos(0T)
2cos(0T)
-1

seno
0
sen(0T)
2cos(0T)
-1

Algoritmo CORDIC
Empleado cuando no se dispone de suficiente memoria para
implementar una tabla.
Algoritmo iterativo que emplea las ecuaciones CORDIC:
xi+1 = xi yi.2-I
yi+1 = yi xi.2-I
zi+1 = zi tan-1 (2-i)
Se emplea un sumador/restador, desplazamiento de bits y la
tangente se almacena en una tabla (10-20 posiciones de
memoria)

69

Ejercicio
Un codec de audio emplea una frecuencia de
muestreo de 48 kHz.
Realizar el diseo de un NCO que permita generar
una seal a 20 y a 10 kHz.

Ferney Amaya

70

Estructura bsica de un FPGA

recursos de
interconexin

bloque lgico
configurable

bloque
entrada/salida (I/O)

Berkeley Design Technology http://www.BDTI.com

71

FPGAs para DSP?


Razn 1: Alta carga computacional de FPGAs
Diseo de un filtro de 256 coeficientes
FPGA

DSP Convencional
Data In

Data In
Reg
C0

Reg1

Reg0
C1

Reg2
C2

Reg255

.... C255

MAC unit
Data Out

256 ciclos por muestra


Xilinx: FPGA DSP

Data Out

256 operaciones MAC en 1 ciclo de reloj


72

FPGAs para DSP?


Razn 2: Alta flexibilidad
Paralelo

Semi-Paralelo

Serial

+
+

+
+

+
+

DQ

+
+

+
DQ

Velocidad

Optimizado para?

Costo

Los FPGAs permiten compromisos Area(costo)/desempeo


Xilinx: FPGA DSP

73

FPGAs para diseo DSP multicanal


LPF

ch1

LPF

ch2

LPF

ch3

LPF

ch4

80MHz
Samples
LPF
Multi Channel
Filter

FPGAs para diseo DSP multicanal


Varios canales con baja tasa de muestreo pueden ser
multiplexados (TDM)

Xilinx: FPGA DSP

The XtremeDSP Slice Advantage


Without XtremeDSP Slice, Parallel Adder Tree Consumes Logic Resources
Parallel Adder Tree Implementation

C4

C
5

C0
X

C6

C7

32 TAP filter
implementation will
consume 1,461 logic cells.
FPGA Introduction 75

+
Data Out

Reg

C3

Reg

Reg

C2

Reg

C0
X

Reg

C
1

Reg

Reg

C0

Reg

Reg

Data
In

C30

C31

+
Variable
Latency

The XtremeDSP Slice Advantage


With XtremeDSP Slice, Parallel Adder Tree Consumes Zero Logic Resources

Parallel Adder Cascade Implementation

Reg

C30

C31

Reg

Reg

Reg

C7

Reg

Reg

Reg

C6

Reg

Reg

C
5

Reg

Reg

C4

Reg

Reg

C3

Reg

Reg

Reg

Reg

Reg

Reg

C2

Reg

Reg

Reg

Reg

C
1

Reg

Reg

C0

Reg

Reg

Data In

+
Data Out

32 TAP filter implementation implemented entirely with


XtremeDSP Slices
FPGA Introduction 76

Agenda
FPGAs
Virtex II
Spartan 3
Virtex 4 y 5
VHDL
Herramientas de Xilinx

77

Virtex-II :Arquitectura
SelectRAM

Multiplicadores
dedicados

Bloques I/O

Recursos
Interconexin

Configurable
Logic Blocks
(CLBs)
Clock Management (DCMs,
BUFGMUXes)

Todos los FPGAs de Xilinx contienen


Slices (agrupados en CLBs): Contiene la lgica combinatoria y secuencial
IOBs: Interface entre el FPGA y el mundo externo
Recursos de interconexin
Otros recursos: Memoria, Multiplicadores, Global clock buffers

Virtex II: Slices, CLBs


Cada CLB (Configurable Logic
Block) tiene 4 Slices
Enrutamiento local:
realimentacin y conexin
entre slices en el mismo CLB
y con CLBs vecinos
La matriz de conmutacin
proporciona acceso a los
recursos de interconexin
general

COUT

COUT

BUFT
BUF T
Slice S3

Slice S2
Switch
Matrix

SHIFT

Slice S1

Slice S0

CIN

Xilinx: FPGA DSP

Local Routing

CIN

Slice
Cada CLB tiene 4 Slices
Cada Slice contiene:
2 LUTs (Look-up tables) de 4
entradas
16 bits de RAM distribuida
SelectRAM
16 bits de registros de
desplazamiento
2 Registros: flop flop, latch
Lgica dedicaca:
Multiplexores (MUXF5, MUXF6,
MUXF7, MUXF8): unen y
realimentan slices
Carry chain (cin, cout)
MULT_AND: permite 1 MAC de
1 bit en una LUT (antes 2)

Xilinx: FPGA DSP

RAM16

SRL16
MUXFx
LUT
G

Register
CY
MUXF5

Register
CY
LUT
F
Arithmetic Logic

Slice
Each slice has four
outputs:
Two registered outputs,
two non-registered outputs
Two BUFTs associated
with each CLB, accessible
by all 16 CLB outputs

Carry logic runs


vertically,
up only

Simplified Slice Structure


Slice 0
LUT

Carry

PRE
D
Q
CE
CLR

LUT

Carry

D PRE
Q
CE
CLR

Two independent
carry chains per CLB
BUFT
Xilinx: FPGA DSP

T=1; Y=Z
T=0; Y=X

LUT
Boolean logic is stored in Look-Up Tables (LUTs)

Also called Function Generators (FGs)


Capacity is limited by the number of
inputs, not by the complexity
Delay through the LUT is constant

A B C D Z
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 1
0 1 0 0 1
0 1 0 1 1

Combinatorial Logic

A
B
C
D

. .
Z

1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
1 1 1 1 1

Xilinx: FPGA DSP

Multiplexer Logic

F6

Slice S0

F5

Slice S1

F8

MUXF6 combines slices


S2 and S3

MUXF7 combines the two


MUXF6 outputs

F5

F7

Slice S2

F5

Slice S3

MUXF8 combines the two


MUXF7 outputs (from the
CLB above or below)

F5

CLB

F6

Dedicated MUXes provided to connect slices and LUTs

MUXF6 combines slices S0 and S1


MUXF5 combines LUTs in each slice

Dedicated Logic
Multiplexer Logic
Connect Slices and LUTs

Carry Chains
Speed up arithmetic operations

Multiplier AND gate


Speed up LUT-based multiplication

Shift Register LUT


LUT-based shift register

Embedded Multiplier
18x18 Multiplier
Basic Architecture 84

Bloques de Multiplicadores dedicados Virtex II


Saves from having to use LUTs to implement multiplications and increases performance

Multiplicadores de 18x18 para operaciones en


complemento a dos
La Virtex-II hasta 168, Virtex-II Pro hasta 556
Optimizados para operaciones MAC
Localizados cerca de los bloques dedicados de RAM
Data_A
(18 bits)

18 x 18
Multiplier
Data_B
(18 bits)

Xilinx: FPGA DSP

Output
(36 bits)

Resumen
Caractersticas de un Slice
LUTs (2 por slice, 8 por CLB)
Registros (2 por slice, 8 por CLB)
Multiplexores dedicados (MUXF5, MUXF6, MUXF7,
MUXF8)
Lgica de acarreo
Compuertas MULT_AND

Los LUT pueden ser configurados como


Lgica combinatoria
Shift register (SRL16CE)
Memoria distribuida

Block RAM
Embedded blocks of RAM arranged in columns
Up to 3.5 Mb of RAM in 18-kb blocks
Synchronous read and write

True dual-port memory


Each port has synchronous read and
write capability
Different clocks for each port

Supports initial values


Synchronous reset on output latches
Supports parity bits
One parity bit per eight data bits

Situated next to embedded multiplier


for fast multiply-accumulate operations

18-kb block SelectRAM memory


DIA
DIPA
ADDRA
WEA
ENA
SSRA
CLKA

DOA
DOPA

DIB
DIPB
ADDRB
WEB
ENB
SSRB
CLKB

DOB
DOPB

Virtex II: DCM, DCI


DCM

DCI

DCM (Digital Control Manager)


Eliminacin de clock-skew
Sntesis de frecuencia (x2,
divisin)
Desplazamiento de fase
(90,180,270)
DCI (Digitally Controlled
Impedance)
Evita colocar R para acoplar
impedancias
Ajusta la impedancia de salida
para emparejarla con RREF.

Agenda
FPGAs
Virtex II
Spartan 3
Virtex 4 y 5
VHDL
Herramientas de Xilinx

89

SLICEM and SLICEL


Cada CLB de la
Spartan-3 tiene 4
slices, similar a la
Virtex-II
Los slices son
agrupados en pares
SLICEM (Memory) a
la izquierda
LUTs que pueen ser
configurados como
memoria o SRL16

SLICEL (Logic) a la
derecha
LUT que solo puede
ser usado como lgica.
Xilinx: FPGA DSP

Left-Hand SLICEM Right-Hand SLICEL


COUT

COUT

Slice X1Y1

Slice X1Y0
Switch
Matrix

SHIFTIN

Slice X0Y1

Fast Connects

Slice X0Y0

SHIFTOUT

CIN

CIN

Spartan-3A DSP
Incorporates the primary features from earlier
Virtex family DSP48 blocks
The DSP48A block supports full MAC support
with a pre-adder stage, multiplier, and
add/accumulate state
Dedicated DSP block offer the lowest
cost/MAC in a FPGA

FPGA Introduction 91

Agenda
FPGAs
Virtex II
Spartan 3
Virtex 4 y 5
VHDL
Herramientas de Xilinx

92

Virtex-4
RocketIO
Multi-Gigabit
Transceivers

Smart RAM
New block RAM/FIFO

622 Mbps10.3 Gbps

Xesium Clocking
Technology

Advanced CLBs

500 MHz

200K Logic Cells

Tri-Mode
Ethernet MAC
XtremeDSP
Technology Slices

10/100/1000 Mbps

256 18x18 GMACs

PowerPC 405
with APU Interface
450 MHz, 680 DMIPS

1 Gbps SelectIO
ChipSync Source synch,
XCITE Active Termination

Virtex 5 Vs Virtex 4
Feature/Capability

Virtex-5 Family

Virtex-4 Family

Virtex-5 Advantages

Process technology

65nm, 1.0V, VCC

90nm, 1.2V, VCC

Higher density, performance,


lower power and cost

Distributed RAM

256 bits per CLB

64 bits per CLB

More memory

Shift registers (SRL)

128 bit in one CLB

64 bit in one CLB

Deeper pipelines

Clock Management

550 MHz

500 MHz

Higher speed

SelectIO technology

1.25 Gbps differential,


800 Mbps single-ended
Up to 1,200 pins per
FPGA

1 Gbps differential,
600 Mbps singleended
Up to 960 pins per
FPGA

Higher bandwidth
More multi-standard
interfaces

DSP Blocks

25 x 18-bit MAC, 550MHz

18 x 18-bit MAC,
500MHz

Higher performance
Up to 352 GMACS

Built-in 10/100/1000
Ethernet MAC

Built-in 10/100/1000
Ethernet MAC

LXT, SXT Platforms


Ethernet Media Access
Controller

Agenda
FPGAs
VHDL
Herramientas de Xilinx

95

Usos de un HDL
Especificacin
HDL

Especificar el Sistema

Diseo

ASIC, FPGA, PLD

Implementacin

Tarjetas, chips

Herramienta para especificar el sistema


Herramienta de diseo
Facilidad de reutilizacin de cdigo
Portabilidad, independencia tecnolgica

Herramienta de simulacin
Permite integrar componentes de diferentes fabricantes en la simulacin

VHDL

HDL de alto nivel


Estandarizado por IEEE
Creado por iniciativa del DoD de USA
Actualizado en 1993
VHDL para sntesis solo comprende un subconjunto de
VHDL

Generalidades
Los objetos deben ser definidos antes de ser usados.
No diferencia entre maysculas y minsculas
Comentarios con - Identificadores

Deben comenzar con una letra del alfabeto

Solo pueden contener letras del alfabeto, nmeros o el


carcter underscore (_)

Caracteres - Strings
Caracteres: se encierran en comillas simples:
1, o,
bit_strings: primero debe se indicarse la base:
(B, O, X) y luego se especifica el nmero.
Pueden incluirse underscores:
B101_110_100
B11, O3, X3, son diferentes???

Objetos en VHDL
Constante: objeto que mantiene siempre su valor:
CONSTANT conval: integer := 15;

Variable: objetos temporales sin analoga con el


hardware. Solo pueden ser declaradas en
estructuras secuenciales (process)
VARIABLE varval: integer := 15;

Signal: representa uno o varios cables, se


analizan al final del ciclo de simulacin.
SIGNAL sigval: integer := 15;

Operadores VHDL
Lgicos:
AND, OR, NAND, NOR, XOR, XNOR, NOT.
Relacionales con resultado booleano:
=,/=,<,<=,>,>=
Desplazamiento:
SLL, SRL, SLA, SRA, ROL, ROR
Suma y resta para enteros: + Multiplicacin y divisin para enteros y reales:
*,/, MOD, REM
Miscelaneos:
exponenciacin (**) y valor absoluto ABS

E/S
E/S corresponden a seales fsicas. Modo de
operacin:
in: puede ser leda pero no escrita
out: puede ser modificada pero no leda
inout: pueden ser ledas y modificadas

101

Estructuras de VHDL
Entity: define la vista externa de un modelo I/O y
parmetros)
Architecture: define una posible funcionalidad de un
modelo

102

Ejemplo simple en VHDL - Concurrencia


Entidad
ENTITYpvhdl IS
Entrada
PORT (
in1 : in std_logic_vector(4 downto 0);
out1 : out std_logic_vector(4 downto 0));
END pvhdl;

Salida
Arquitectura
in1
10101

out1

-- descripcin Arquitectura
ARCHITECTURE structural OF pvhdl IS
BEGIN
OUT1 <= IN1 AND B10_101;
END structural;

Ejemplo simple en VHDL - Concurrencia


Entidad
ENTITYpvhdl IS
PORT (
s1,s2 : in std_logic_vector(4 downto 0);
s3: out std_logic_vector(4 downto 0));
END pvhdl;

Arquitectura
s1
s2

s3
st

ARCHITECTURE structural OF pvhdl IS


SIGNAL st : std_logic_vector(4 downto 0);
BEGIN
st <= NOT s2;
s3 <= s1 AND st;
END structural;

Atributos
Atributos predefinidos para seales en VHDL, por ejemplo para
la seal S:
SEVENT: devuelve TRUE si S ha cambiado

105

Proceso
Los procesos son concurrentes con otros procesos, internamente son
secuenciales.
Requiere de algn medio de activacin (lista de sensibilidad)

Lista de sensibilidad
PROCESS (reloj, reset) BEGIN
IF relojEVENT AND reloj = 1
Sentencias
secuenciales
END IF;
END PROCESS;

Concurrente y secuencial
Concurrentes
WHENELSE
sal <= i0 WHEN sel = 00
i1 WHEN sel = 01

ELSE in;
WITHSELECT

Secuenciales
IF..THENELSE
IF sel = 00 THEN
sal <= i0;
ELSEIF sel = 01 THEN
sal <= i1;
ELSE sal <= i2; END IF
CASE (inside a process)

WITH sel SELECT


sal <= i0 WHEN 00;
i1 WHEN 01;
i2 WHEN 10;
i3 WHEN OTHERS;

CASE sel IS
WHEN B00 => sal <= i0;
WHEN B01 => sal <= i1;
WHEN B10 => sal <= i2;
WHEN B11 => sal <= i3;
WHEN OTHERS => sal <= 0;
END CASE;

Asignacin variables

Asignacin variables

PROCESS

107

Especificacin de multiplexores - Concurrencia


sel
sal <= bus0 WHEN sel = 0
ELSE bus1;

bus0

0
sal

bus1

sel
WITH sel SELECT
sal <= i0 WHEN 00;
i1 WHEN 01;
i2 WHEN 10;
i3 WHEN
OTHERS;

i0
i1
i2
i3

00
01
10
11

sal

CASE - Secuencial
CASE es mas conveniente que IF:
No implica prioridad
Deben definirse todos los casos evitando inferencia de memoria
ENTITY mux4 IS PORT (
i0,i1,i2,i3 : IN BIT; sel : IN BIT_VECTOR (1 DOWNTO 0); mou : OUT BIT);
END mux4;
ARCHITECTURE logic OF mux4 IS BEGIN
PROCESS (sel) BEGIN

CASE sel IS
WHEN B00 => mou <= i0;
WHEN B01 => mou <= i1;
WHEN B10 => mou <= i2;
WHEN B11 => mou <= i3;
WHEN OTHERS => mou <= 0;
END CASE;
END PROCESS;
END logic;

sel
i0
i1
i2
i3

00
01
10
11

mou

109

Especificacin de Flip flops


ARCHITECTURE pvhdl OF pent IS
BEGIN
--Flip-flop D, flanco subida
PROCESS (reloj) BEGIN
IF relojEVENT AND reloj = 1
THEN q <= d;
END IF;
END PROCESS;
--Flip-flop Toggle, flanco subida
PROCESS (reloj) BEGIN
IF relojEVENT AND reloj = 1
THEN q <= NOT q;
END IF;
END PROCESS;
END pvhdl;

Seal reloj:
relojEVENT

relojEVENT AND reloj = 1


Especifica la deteccin del
flanco de subida

Instanciar componentes
ENTITY pvhdl
s1

ENTITY ins
s3

s2
ENTITYpvhdl IS
PORT (
s1,s2 : in std_logic_vector(4 downto 0);
s3: out std_logic_vector(4 downto 0));
END pvhdl;
ARCHITECTURE structural OF pvhdl IS
BEGIN
s3 <= s1 AND (NOT s2);
END structural;

i1
i2

ENTITY
pvhdl

o1

ARCHITECTURE str OF ins IS


COMPONENT pvhdl
PORT (
s1,s2 : in std_logic_vector(4 downto 0);
s3: out std_logic_vector(4 downto 0));
END COMPONENT;
BEGIN
S1 : pvhdl
PORT MAP (
s1 => i1, s2 => i2, s3 => o1);
END ins;

Arquitectura
ARCHITECTURE <identificador> OF <entidad> IS
Declaracin de seales locales
Declaracin de constantes locales
Declaracin de componentes
BEGIN
Instanciacin de componentes
Asignaciones concurrentes a seales
Procesos
END ARCHITECTURE <identificador>;

112

Seales
Comunican procesos concurrentes y son creadas por: entity
(al definir ports), architecture (al definir seales internas)
Ejemplos:
SIGNAL temp : STD_LOGIC_VECTOR (7 DOWNTO 0);
temp <= 1010_1010; -- temp <= xAA
temp(7) <= 1;
temp(7 downto 4) <= 1010;
temp(others => 1);
temp(7 => 0, 4 => 0, others => 1 );

113

TO y DOWNTO
ENTITY simp IS
PORT (
s_to : IN BIT_VECTOR (0 TO 2);
s_do: IN BIT_VECTOR (2 DOWNTO 0));
END simp;
ARCHITECTURE logic OF simp IS
BEGIN
s_do(2), s_so(1), s_do(0) = 1,1,0
s_do <= B110;
s_to(0), s_to(1), s_to(2) = 1,1,0
s_to <= B110;
END logic;
TO y DOWN indican cual bit est a la izquierda y cual a la
derecha.

Mquinas de estado Finito - FSM


Deben seguirse los siguientes pasos:
Definir los estados usando tipo por enumeracin:
TYPE tipo_estado IS (est1,est2,est3)
Definir dos seales tipo_estado que almacenan el
estado actual y el futuro.
Usar un PROCESS activado por el estado actual
con un CASE. Usar IF para definir el estado futuro
en funcin de las entradas.
MORE: Salida dentro del CASE en cada estado.
MEALY: Salida dentro del CASE en cada estado
luego de evaluar la entrada.
115

Mquina de
estado
ENTITY maquina IS
PORT(clk, insig : IN STD_LOGIC;
sal
: OUT STD_LOGIC);
END ENTITY maquina;

ARCHITECTURE ma OF maquina IS
TYPE ESTADO IS (s1,s2) ;
SIGNAL est_actual, est_siguiente: ESTADO;
BEGIN
PROCESS (clk, est_actual)
BEGIN
CASE est_actual IS
WHEN s0 => sal <= 0;
est_siguiente <= s1;
WHEN s1 => sal <= 1;
IF insig = 1 THEN
est_siguiente <= s0;
ELSE est_siguiente <= s1;
END IF;
END CASE;
END IF;
END PROCESS;
PROCESS
BEGIN
wait until clkevent and clk = 1;
est_actual <= est_siguiente;
END PROCESS;
END ARCHITECTURE ma;
116

Agenda
FPGAs
VHDL
Herramientas de Xilinx
ISE
Core Generator

117

Flujo de diseo FPGAs


El flujo de diseo para
FPGAs consiste
en 3 pasos:
1. Especificacin del
diseo (Design
entry)
2. Implementacin
del diseo
3. Verificacin del
diseo

Especificacin
del diseo

Verificacin
diseo
Simulacin
funcional

Sntesis del
diseo
Implementacin
Mapping
Placement
Routing
Generacin
bitstream
Descarga del
bitstream

Anlisis
temporal
esttico
BA

Simulacin
temporal

Verificacin
en circuito

Flujo de diseo FPGAs


Esquemtico o HDL
Solo para HDL

Del diseo a la
descripcin fsica
Archivo .BIT
Puede ser a travs de JTAG
o cable XChecker a los
pines de programacin del
FPGA

Especificacin
del diseo

Verificacin
Simulacin
funcional

Sntesis del
diseo
Implementacin
Mapping
Placement
Routing
Generacin
bitstream
Descarga del
bitstream

Anlisis
temporal
esttico
BA

Simulacin
temporal

Verificacin
en circuito

Implementacin del diseo


Hay varias salidas de la implementacin
Reportes
Timing simulation netlists
Floorplan files

La implementation incluye varias fases:


Translate: multiples archivos de diseo en un nico
netlist
Map: del netlist (gates) a componentes fsicos (slices,
IOBs)
Place & Route: coloca y conecta los componentes en
el chip. Extrae reportes de tiempos

Agenda
FPGAs
VHDL
Herramientas de Xilinx
ISE
Core Generator

121

ISE Project Navigator


Fuentes
ISE (Integrated Synthesis
Environment)
ISE incluye las siguientes
herramientas:

XST Synthesis
CORE Generator
Architecture Wizard
ECS schematic editor
StateCAD state diagram
editor
HDL Bencher waveform
editor (for testbench
creation).

Procesos

Sources: Synthesis/Implementation
Archivo fuente en VHDL

Sntesis
Translate, Map, Place&Route
Generar .BIT

Agenda
FPGAs
VHDL
Herramientas de Xilinx
ISE
Core Generator

125

Flujo de diseo Core Generator


Flujo HDL

Flujo CoreGen

HDL

Behavioral
Simulation

Synthesis

Functional
Simulation

HDL
COREGen

Synthesis

Behavioral
Simulation

Functional
Simulation

Implementation

Timing
Simulation

Implementation

Timing
Simulation

Download

In-Circuit
Verification

Download

In-Circuit
Verification

Qu son los Cores?


Core: funcin prediseada (IP, Intellectual Property).
Ahorran tiempo de diseo: Creados por expertos,
funcionalidad garantizada

CORE Generator usa dos tipos de Cores


LogiCORE solutions
Muchos son pre-placed: tiempo predecible
Tpicamente parametrizables
Muchos son no-licenciados (distribuidos con Xilinx)

AllianceCORE solutions
Tpicamente no parametrizables
Soportados por partners de Xilinx

Empleando CORE Generator


Desde Project Navigator:
Project New Source
Seleccionar:
IP (CoreGen &
Architecture Wizard)
Entrar un nombre:
nombre_archivo
Click Next y luego
seleccione type of core

Empleando CORE Generator

Core Overview: versin y descripcin

Parameters:
parametrizar
el core

Web Links:
acceso a
pginas Web
relacionadas
Contact: informacin del
vendedor

Data sheet

Diseo de Hardware con VHDL

Ferney Amaya Fernndez


ferney.amaya@upb.edu.co
Universidad Pontificia Bolivariana
Medelln - Colombia130