Академический Документы
Профессиональный Документы
Культура Документы
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.
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
A/D
Procesamiento
Digital
D/A
Adecuacin
A/D
Procesamiento
Digital
D/A
Adecuacin
seal analgica
seal muestreada,
seal cuantizada,
seal digitalizada
+5
V
Time
5
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?
13 2 = 6
LSB
62=3
32=1
12=0
1 MSB
(13)10 = (1 1 0 1)2
10
n 1
n 1
+ ... A3 r + A2 r + A1 r
A r
(1 1 0 1)2 = (13)10
11
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
-1
-2
-3
-4
-5
0x2-1
1x2-2
0x2-3
1x2-4
1x2-5
13
1 0 1 0 1 0 1 0 0 0
OCTAL
0
14
-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
0 (2r-1 1)
16
-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
+4
+5
0 (2r-1 1)
+6
+7
17
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
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
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
-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
-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
-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
-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
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
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
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
- 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
CLK
A
tpcq = 50 ps
tsetup = 60 ps
C
D
X'
thold = 70 ps
Y'
tpd
= 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
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
f0
x[n] = sen 2 n
fs
1
x =
N
N 1
i =0
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)
n=0
R xy
1
=
N
N 1
x(n) y (n)
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)
y[ n ] =
k =0
k =0
x[ n k ]h[ k ] = x[ k ]h[ n k ]
38
x(2)
5
k =0
x(1) x(0)
4
suma
x(n-k)
hk
x(n-k)*hk
0
y(0)
?
?
39
x(2) x(1)
5
suma
x(n-k)
hk
x(n-k)*hk
3
y(0)
3
?
40
x(3) x(2)
6
suma
x(n-k)
hk
x(n-k)*hk
10
y(1)
y(0)
10
?
41
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
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)
Ejemplo DTF
N 1
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
Pasa-bajas
-
-0.5fc
0.5fc
-
-0.5fc
Pasa-banda
0.5fc
-
-0.5fc
0.5fc
La ganancia es 1
47
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
fx
Multirate
fy
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
57
http://www.altera.com/products/devices/stratix3/
58
T
x(2)
x(n)
x(3)
coeficientes
x(3)
x(2)
x(1)
C0
C1
C2
Reg1
Reg2
multiplicador
MAC
+
Registro
59
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
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
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
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
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
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
direccin
q ROM dir dato
di
acumulador
seal coseno
LUT:ROM
sin(nT),
cos(nT)
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
recursos de
interconexin
bloque lgico
configurable
bloque
entrada/salida (I/O)
71
DSP Convencional
Data In
Data In
Reg
C0
Reg1
Reg0
C1
Reg2
C2
Reg255
.... C255
MAC unit
Data Out
Data Out
Semi-Paralelo
Serial
+
+
+
+
+
+
DQ
+
+
+
DQ
Velocidad
Optimizado para?
Costo
73
ch1
LPF
ch2
LPF
ch3
LPF
ch4
80MHz
Samples
LPF
Multi Channel
Filter
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
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
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)
COUT
COUT
BUFT
BUF T
Slice S3
Slice S2
Switch
Matrix
SHIFT
Slice S1
Slice S0
CIN
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)
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
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)
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
Multiplexer Logic
F6
Slice S0
F5
Slice S1
F8
F5
F7
Slice S2
F5
Slice S3
F5
CLB
F6
Dedicated Logic
Multiplexer Logic
Connect Slices and LUTs
Carry Chains
Speed up arithmetic operations
Embedded Multiplier
18x18 Multiplier
Basic Architecture 84
18 x 18
Multiplier
Data_B
(18 bits)
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
Block RAM
Embedded blocks of RAM arranged in columns
Up to 3.5 Mb of RAM in 18-kb blocks
Synchronous read and write
DOA
DOPA
DIB
DIPB
ADDRB
WEB
ENB
SSRB
CLKB
DOB
DOPB
DCI
Agenda
FPGAs
Virtex II
Spartan 3
Virtex 4 y 5
VHDL
Herramientas de Xilinx
89
SLICEL (Logic) a la
derecha
LUT que solo puede
ser usado como lgica.
Xilinx: FPGA DSP
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
Xesium Clocking
Technology
Advanced CLBs
500 MHz
Tri-Mode
Ethernet MAC
XtremeDSP
Technology Slices
10/100/1000 Mbps
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
Distributed RAM
More memory
Deeper pipelines
Clock Management
550 MHz
500 MHz
Higher speed
SelectIO technology
1 Gbps differential,
600 Mbps singleended
Up to 960 pins per
FPGA
Higher bandwidth
More multi-standard
interfaces
DSP Blocks
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
Agenda
FPGAs
VHDL
Herramientas de Xilinx
95
Usos de un HDL
Especificacin
HDL
Especificar el Sistema
Diseo
Implementacin
Tarjetas, chips
Herramienta de simulacin
Permite integrar componentes de diferentes fabricantes en la simulacin
VHDL
Generalidades
Los objetos deben ser definidos antes de ser usados.
No diferencia entre maysculas y minsculas
Comentarios con - Identificadores
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;
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
Salida
Arquitectura
in1
10101
out1
-- descripcin Arquitectura
ARCHITECTURE structural OF pvhdl IS
BEGIN
OUT1 <= IN1 AND B10_101;
END structural;
Arquitectura
s1
s2
s3
st
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)
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
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
Seal reloj:
relojEVENT
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
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.
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
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
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
Agenda
FPGAs
VHDL
Herramientas de Xilinx
ISE
Core Generator
121
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 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
AllianceCORE solutions
Tpicamente no parametrizables
Soportados por partners de Xilinx
Parameters:
parametrizar
el core
Web Links:
acceso a
pginas Web
relacionadas
Contact: informacin del
vendedor
Data sheet