Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Como mejoramos la IR ?
Métodos para mejorar el rechazo a la
frecuencia imagen en receptores
superheterodinos
Métodos para mejorar el
rechazo a la frecuencia imagen
en receptores superheterodinos
Amplificadores
Diseño de Filtros Digitales
Filtros Digitales
IIR FIR
Métodos de diseño
08/11/2013 29
Diseño de Filtros Digitales
Definición de la plantilla de un filtro
08/11/2013 30
Diseñó e implementación de FIR
N 1
y ( n) x ( n) h( n) h( k ) x ( n k )
k 0
N 1
y ( n) x ( n) h( n) h( k ) x ( n k )
k 0
N 1 N 1
n n
Y ( z) H ( z) X ( z) H ( z) h( n) z X ( z) x ( n) z
n 0 n 0
Respuesta en frecuencia
N 1
H (e j T ) H ( z) z e j T h(n)e jn T
n 0
0.5
Phase of the transfer function 4
3.5
Amplitude of the transfer function
[H,f]=freqz(b,a,256,1);
3
Modulo=abs(Hf);
0
2.5
-0.5
-1
1.5
Fase=angle(Hf);
-1.5
1
-2
0.5
-2.5
0.05 0.1 0.15 0.2 0.3 0.35 0.4 0.45 0
0 0.25 0.5 0 0.05 0.1 0.15 0.2
0.25
0.3 0.35 0.4 0.45
0.5
Frequency, FS=1 Frequency, FS=1
Ejemplo de un filtro FIR
Plot(f,Modulo);
Plot(f,Fase);
1
Phase of the transfer function 4
Amplitude of the transfer function
3.5
0.5
3
0
2.5
-0.5
-1
1.5
-1.5
1
-2
0.5
-2.5
0.05 0.1 0.15 0.2 0.3 0.35 0.4 0.45 0
0 0.25 0.5 0 0.05 0.1 0.15 0.2
0.25
0.3 0.35 0.4 0.45
0.5
Frequency, FS=1 Frequency, FS=1
Ejemplo de un filtro FIR
X=cos( 2 * pi * f1)+cos(2 * pi *f 2)
Y=filter(b,a.x); plot(X); plot(Y);
3
Input x 6
Output y
2 4
1 2
0 0
-1 -2
-2 -4
-3 -6
0 20 40 60 80 100 0 20 40 60 80 100
Time Time
Diseñó e implementación de FIR
( )
h( n) h( N 1 n)
h( n) h( N 1 n) N 1
T
N 1 2
T
2
2
Respuesta impulsiva
h(n)
h(n)
N=7
N=7
n
n
N N 1 N 1T
bk 2h k T ak 2h k T a0 h
2 2 2
MATLAB
Filter Design & Analysis Tool
Respuesta en frecuencia
ideal
cuantizada
Métodos de diseño
Transformando filtros analógicos en digitales
Método de la respuesta invariante al impulso
Matched Z
Métodos de integración numérica
Backward
Forward
Bilineal
Métodos de optimización numérica
Newton
Minimax
08/11/2013 47
Diseño de Filtros Digitales
Método de la Transformación Bilineal
2 C T
C tg
T 2
II – Realizar la transformacion
Bilineal
H D ( s) H A ( s) s 2z 1
Tz 1
D=10000
ASICs
Aplication Specific
Integrated Circuits
DSP
Digital signal
Processor
FPGA
Field Programable
Gate Array
REP #(NTAPS-1)
DSP
Digital signal
Processor
FPGA
Field Programable
Gate Array
Dispositivos Programables- Funciones
Lógicas Básicas
Dispositivos Programables- PLD
FPGA Evolución y Revolución
CMOS Alternativas de diseño
Slice S3
CLB, Slice S2
Switch
IOB, Switch
Matrix
DCM Matrix Slice S1
• Fast, predictable
BRAM
• 8 LUTs
• 128b distributed RAM
Block RAM
• Wide input functions (32:1)
• 18KBit True Dual Port Multipliers • Support for slices based
• Up to 3 Mbits / device • 18b x 18b multiplier multipliers
• 200+ MHz pipelined
Virtex-II Platform FPGA (2)
16 Global Clocks
• Eight clocks to any quadrant
• Switch glitch-free between clocks
16 Clocks DCM
DCI
• Zero delay clock
• Precision phase shift
• Frequency synthesis
• Duty cycle correction
• On-chip termination • Clock multiply and divide
• Guaranteed signal integrity
• Eliminates 100s of resistors
Virtex-II Memory Hierarchy
Distributed RAM High-Performance
External Memory Interfaces
16x1 16x1
DDR
16x1 16x1
SDRAM
16x1 16x1
16x1 16x1
16k x 1
8k x 2 ZBT®
4k x 4 SRAM
2k x 9
1k x 18
512 x 36
QDR
True-Dual Port™ SRAM
Synchronous Block RAM
Virtex-II CLB
Q
Multiplier Unit
Embedded 18-bit x 18-bit multiplier
Quantity:
Virtex-II : up to 168 18 Bit
2V40 : 4 36 Bit
2V8000 : 168
18 Bit
Virtex-II Pro : up to 556
2VP2 : 12
2VP125 : 556
2s complement signed operation Signed Multiply Performance
4- to 18-bit operands Virtex-II
Combinational & pipelined options 18 x 18 245 MHz
Operates with block RAM and fabric Virtex-II Pro
to implement MAC function 18x18 300 MHz
Pipelined multiplier with registered
Preliminary inputs
V1.60 Speeds and outputs
File
Virtex-II Family
Virtex-II
Part Number
XC2V
40
XC2V
80
XC2V
250
XC2V
500
XC2V
1000
XC2V
1500
XC2V
2000
XC2V
3000
XC2V
4000
XC2V
6000
XC2V
8000
LUTs + FFs 512 1,024 3,072 6,144 10,240 15,360 21,504 28,672 46,080 67,584 93,184
BRAM (kb) 72 144 432 576 720 864 1,008 1,728 2,160 2,592 3,024
Multipliers 4 8 24 32 40 48 56 96 120 144 168
DCM Units 4 4 8 8 8 8 8 12 12 12 12
Package Available SelectIO
CS144 88 92 92
FG256 88 120 172 172 172
FG456 200 264 324
FG676 392 456 484
FF896 432 528 624
FF1152 720 824 824 824
FF1517 912 1,104 1,108
BG575 328 392 408
BG728 456 516
BG957 624 684 684 684 684
Virtex-II Pro versus Virtex-II
Lower cost
Up to 24 RocketIO™ More block RAMs and
embedded multi-gigabit multiplier blocks
transceivers 556 embedded multipliers
Up to four PowerPC 556 Block RAMs
More Memory Smaller technology
10 MBits in block RAM 0.13 µm Nine-Layer Copper
1,738 KBits in Distributed Process with 90 nm high-
RAM speed transistors
More I/O pins per package
(up to 1704)
Virtex-II Pro Family
Virtex-II Pro 2VP2 2VP4 2VP7 2VP20 2VP30 2VP40 2VP50 2VP70 2VP100 2VP125
Logic Cells 3,168 6,768 11,088 20,880 30,816 43,632 53,136 74,448 99,216 125,136
PPC405 0 1 1 2 2 2 2 2 2 4
MGT3.125Gb 4 4 8 8 8 12* 16* 20 20* 24*
BRAM (kb) 216 504 792 1,584 2,448 3,456 4,176 5,904 7,992 10,008
Multipliers 12 28 44 88 136 192 232 328 444 556
DCM Units 4 4 4 8 8 8 8 8 12 12
Package MGT Available SelectIO
FG256 4 140 140
Data In Data In
Reg Reg0 Reg1 Reg2 Reg255
C0 C1 C2 .... C255
MAC unit
256 Loops needed to process samples All 256 MAC operations in 1 clock cycle
256 Tap FIR Filter Example
Multiply Accumulate
Multiple Engines
Parallel processing
maximizes data throughput
Data In
Support any level of Reg0 Reg1 Reg2 Reg255
parallelism
Optimal performance/cost C0 C1 C2
.... C255
tradeoff
256 Tap FIR Filter
256 multiply and All 256 MAC
accumulate (MAC) operations in one Data Out
operations per data sample clock cycle
One output every clock
cycle
Flexible architecture
Distributed DSP resources
(LUT, registers, multipliers,
& memory)
FPGAs are Ideal for:
Multi-channel DSP designs
20MHz ch1 80MHz
LPF Samples
Samples
LPF ch2
LPF
LPF ch3
Multi Channel
ch4 Filter
LPF
A
Q = (A x B) + (C x D) + (E x F) + (G x H) B
× +
C
can be implemented in parallel
D
× + +
Q
E +
F
× +
G
H
× +
× +
+
× + +
× + DQ
+
+ DQ
+
× + × + × +
× +
25
Channel Fixed Processor Clock Rate = Max Sample Rate
Density 20 Number of operations per sample
or
Sample 15
Rate
10
No. of
2 46 8 16 24 32 40 48 56 64 72 80 88 96 104 coefficients
Algorithmic Complexity
HDL : Hardware Description Languages
-VHDL
-VERILOG
VHDL
08/31/13 148
Port Declaration
Mode:
in: La señal es una entrada de la entidad. Solo se puede LEER
dentro de la arquitectura.
Behavior !!!
COSA
Data_in Data_out
Asignaciones Condicionales
Asignaciones con Select
Esta sentencia concurrente se ejecuta si ocurre algún evento en alguna de las señales o en
alguna de las condiciones. Si dos expresiones son validas a la vez se ejecuta la asignación
correspondiente a la primera de ellas.
Las expresiones son evaluadas en el orden de aparición. Prioridad!!!
Esta sentencia concurrente se ejecuta si ocurre algún evento en alguna de las señales
o en la expresión entre el with y el select. Deben aparecer TODOS los valores posibles.
Las expresiones que aparecen después del when deben ser mutualmente exclusivas.
Nótese que las sentencias NO son evaluadas en orden de aparición.
Y<=A and B;
Z<=C or D;
--Declaración de constantes
--Declaración de tipos
--Declaración de variables
BEGIN
--Sentencias secuénciales
Avanza el tiempo
Ciclo de
Ejecuta simulación
procesos sensibles
Δ
Actualiza Señales
08/31/13 162
Procesos Explícitos
Un proceso se comporta como una UNICA sentencia y se ejecuta en
forma CONCURRENTE con los demás procesos.
Dentro del proceso las sentencias se ejecutan en forma SECUENCIAL.
Los procesos son loops infinitos que se detienen solamente frente a
una LISTA DE SENSIBILIDAD o una sentencia WAIT .
Las señales recién se actualizan al FINALIZAR el proceso.
- Lista de Sensibilidad
- Sentencias Wait
08/31/13 163
Procesos Equivalentes???
LIBRARY ieee;
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_1164.all;
ENTITY simp_prc IS
ENTITY simp IS
PORT(a,b : IN STD_LOGIC;
PORT(a, b : IN STD_LOGIC;
y : OUT STD_LOGIC);
y : OUT STD_LOGIC);
END simp_prc;
END simp;
ARCHITECTURE logic OF simp_prc IS
ARCHITECTURE logic OF simp IS
SIGNAL c : STD_LOGIC;
SIGNAL c : STD_LOGIC;
BEGIN
BEGIN
process: PROCESS(a, b)
c <= a and b; BEGIN
y <= c;
c <= a and b;
END logic;
y <= c;
END PROCESS process;
END logic;
08/31/13 164
Inferencia
data
q
gate Transparent Latch
08/31/13 165
Inferencia
08/31/13 166
Synthesize, Implement, Download
Design Verification
HDL Behavioral
Simulation
COREGen
Functional
Synthesis Simulation
Synthesize,
Implement,
Timing and Download
Implementation Simulation the bitstream,
similar to the
original design
Download In-Circuit flow
Verification
Xilinx IP Solutions
DSP Functions Math Functions Memory Functions
Fully
Parameterizable
Xilinx CORE Generator
Xilinx CORE Generator
Xilinx CORE Generator
Mi_filtro.coe
Xilinx CORE Generator
Core Placement
Number of Cores
Device Size
200 MHz
200 MHz
The SysGen Design Flow
Simulink MDL
2. Automatic Code
Generation
Download to FPGA
System Generator Based Design
Flow
MATLAB/Simulink
HDL
System Generator System Verification
ISIM
Hardware Co-simulation
(5) The post-generation
script creates a new
library containing a
parameterized run-time
co-simulation block.