25
Transformada Rápida de Fourier para FPGA Aluno: Arthur Umbelino Alves Rolim([email protected]) Orientador: Manoel Eusébio de Lima([email protected])

Transformada Rápida de Fourier para FPGA

  • Upload
    kyoko

  • View
    26

  • Download
    0

Embed Size (px)

DESCRIPTION

Transformada Rápida de Fourier para FPGA. Aluno: Arthur Umbelino Alves Rolim([email protected]) Orientador: Manoel Eusébio de Lima([email protected]). Roteiro. FFT FloPoCo Trabalho realizado Test Bench Complex Adder Complex Multiplier Butterfly Butterfly (1,0) Butterfly (0,-1) FFT8 - PowerPoint PPT Presentation

Citation preview

Page 1: Transformada Rápida de Fourier para FPGA

Transformada Rápida de Fourierpara FPGA

Aluno: Arthur Umbelino Alves Rolim([email protected])

Orientador: Manoel Eusébio de Lima([email protected])

Page 2: Transformada Rápida de Fourier para FPGA

Roteiro

• FFT• FloPoCo• Trabalho realizado

– Test Bench– Complex Adder– Complex Multiplier– Butterfly– Butterfly (1,0)– Butterfly (0,-1)– FFT8

• Trabalho a ser realizado

Page 3: Transformada Rápida de Fourier para FPGA

Fast Fourier Transform(FFT)

• Maneira mais eficiente de calcular um DFT com complexidade O(nlogn )

• Domínio do Tempo -> Domínio da Freqüência• Uma família de algoritmos

– Cooley-Tukey– Prime-factor– Bruun's– Rader's– Bluestein's

Page 4: Transformada Rápida de Fourier para FPGA

Fast Fourier Transform(FFT)

• Extensivamente utilizada em várias aplicações de DSP– Análise de espectro– Convolução de alta-velocidade (filtro linear)– Detecção e estimativa de sinais– Identificação de sistemas– Compressão de áudio– Síntese de modelo espectral de som

Page 5: Transformada Rápida de Fourier para FPGA

FFT

Page 6: Transformada Rápida de Fourier para FPGA

Radix-2 FFT

• Diagrama Borboleta

)( inLOWinUPwoutLOW

inLOWinUPoutUP

inLOWwinUPoutLOW

inLOWwinUPoutUP

DIF(Decimation in Frequency)

DIT(Decimation in Time)

Page 7: Transformada Rápida de Fourier para FPGA

FloPoCo (Floating-Point Cores)

• Gerador de cores aritméticos em VHDL com opções de:– Frequência– Fabricante do FPGA( Altera ou Xilinx )– Pipeline– Uso ou não de blocos DSP

• Padrão IEEE e LNS (logarithm number system)• Implementa todas as operações(+,*,/,sqr)• Parametrizada( tamanho de expoente e mantissa

variáveis )• Tratamento de exceções(+∞,-∞,NaN)

Page 8: Transformada Rápida de Fourier para FPGA

Trabalho realizado

• Implementação dos algoritmos de DFT e FFT em C++

• Construção do modelo de referência em SystemC

• Testes na biblioteca FloPoCo• Construção dos blocos básicos da FFT no FPGA• Geração de test benchs• Construção da FFT

Page 9: Transformada Rápida de Fourier para FPGA

Test bench

Entrada

Modelo deReferência

C++

Simulador HDL

Saída

Saída

Comparador

Relatório

Page 10: Transformada Rápida de Fourier para FPGA

idbcazz

dicz

biaz

)()(21

2

1

+

+

a

c

b

d

real

imag

Complex Adder

Page 11: Transformada Rápida de Fourier para FPGA

Relatório de Síntese Complex Adder

Logic Utilization Used Available

Utilization

Number of Slice Registers 1008 28800 3%

Number of Slice LUTs 1314 28800 4%

•32 bits

•64 bits

Frequência

303.538MHz

Frequência

304.095MHz

Logic Utilization Used

Available

Utilization

Number of Slice Registers 2098

28800 7%

Number of Slice LUTs 2702

28800 9%

Page 12: Transformada Rápida de Fourier para FPGA

Complex Multiplier

ibcadbdaczz

dicz

biaz

)()(21

2

1

x

x

+

+x

x

a

c

b

d

a

d

b

c

real

imag

Page 13: Transformada Rápida de Fourier para FPGA

Relatório de Síntese Complex Multiplier

•32 bits

•64 bits

Frequência

173.136MHz

Frequência

125.653MHz

Logic Utilization Used Available

Utilization

Number of Slice Registers 1256 28800 4%

Number of Slice LUTs 2252 28800 7%

Number of DSP48Es 16 48 33%

Logic Utilization Used Available

Utilization

Number of Slice Registers 3202 28800 11%

Number of Slice LUTs 6854 28800 23%

Number of DSP48Es 36 48 75%

Page 14: Transformada Rápida de Fourier para FPGA

)('

'

LOWUPLOW

LOWUPUP

zzwz

zzz

ComplexAdder

ComplexMult

ComplexAdder

UPz

LOWz

w

UPz'

LOWz'

ButterFly

Page 15: Transformada Rápida de Fourier para FPGA

Relatório de Síntese Butterfly

•32 bits

•64 bits

Frequência

173.136MHz

Frequência

125.653MHz

Logic Utilization Used

Available

Utilization

Number of Slice Registers 3648

28800 12%

Number of Slice LUTs 4952

28800 17%

Number of DSP48Es 16 48 33%

Logic Utilization Used Available

Utilization

Number of Slice Registers 8159 28800 28%

Number of Slice LUTs 12652

28800 43%

Number of DSP48Es 36 48 75%

Page 16: Transformada Rápida de Fourier para FPGA

)()('

01

'

LOWUPLOWUPLOW

LOWUPUP

zzzzwz

iw

zzz

ComplexAdder

ComplexAdder

UPz

LOWz

UPz'

LOWz'

ButterFly (1,0)

Page 17: Transformada Rápida de Fourier para FPGA

Relatório de Síntese Butterfly (1,0)

•32 bits

•64 bits

Frequência

303.538MHz

Frequência

304.095MHz

Logic Utilization Used

Available

Utilization

Number of Slice Registers 2392

28800 8%

Number of Slice LUTs 2832

28800 9%

Logic Utilization Used

Available

Utilization

Number of Slice Registers 4957

28800 17%

Number of Slice LUTs 5836

28800 20%

Page 18: Transformada Rápida de Fourier para FPGA

)()(

)()('

10

'

aibbiai

zzizzwz

iw

zzz

LOWUPLOWUPLOW

LOWUPUP

ButterFly (0,-1)

ComplexAdder

ComplexAdder

UPz

LOWz

UPz'

LOWz'Change

Page 19: Transformada Rápida de Fourier para FPGA

Relatório de Síntese Butterfly (0,-1)

•32 bits

•64 bits

Frequência

303.538MHz

Frequência

304.095MHz

Logic Utilization Used

Available

Utilization

Number of Slice Registers 2392

28800 8%

Number of Slice LUTs 2832

28800 9%

Logic Utilization Used

Available

Utilization

Number of Slice Registers 4957

28800 17%

Number of Slice LUTs 5837

28800 20%

Page 20: Transformada Rápida de Fourier para FPGA

FFT8

Page 21: Transformada Rápida de Fourier para FPGA

Relatório de Síntese FFT8 32 bits

•Normal

•Otimizado

Frequência

162.633MHz

Frequência

172.662MHz

Logic Utilization Used Available

Utilization

Number of Slice Registers 43336 28800 150%

Number of Slice LUTs 59771 28800 207%

Number of DSP48Es 48 48 100%

Logic Utilization Used Available

Utilization

Number of Slice Registers 30718 28800 106%

Number of Slice LUTs 36653 28800 127%

Number of DSP48Es 32 48 66%

Page 22: Transformada Rápida de Fourier para FPGA

Relatório de Síntese FFT8 64 bits

•Normal

•Otimizado

Frequência

126.276MHz

Frequência

172.662MHz

Logic Utilization Used Available Utilization

Number of Slice Registers 91014 28800 316%

Number of Slice LUTs 141447 28800 491%

Number of DSP48Es 48 48 100%

Logic Utilization Used Available

Utilization

Number of Slice Registers 65474 28800 227%

Number of Slice LUTs 89650 28800 311%

Number of DSP48Es 48 48 100%

Page 23: Transformada Rápida de Fourier para FPGA

Quantidade de Blocos Aritméticos

Op. de ponto flutuante

FFT-2 FFT-4 FFT-8

Somadores 6 24 72

Multiplicadores 4 12 48

Somadores Ot. 4 16 52

Multiplicadores Ot.

0 0 8

Page 24: Transformada Rápida de Fourier para FPGA

Trabalho a ser realizado

• Finalizar implementação de um case para validação

• Finalizar escrita da dissertação

Page 25: Transformada Rápida de Fourier para FPGA

Dúvidas