implementação de um algoritmo customizado para o cálculo

23
Implementação de um algoritmo customizado para o cálculo de FFT usando o NIOS (ALTERA) Sandro Binsfeld Ferreira Projeto de CMP237

Upload: others

Post on 20-Mar-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Implementação de um algoritmo customizado para o cálculo de FFT

usando o NIOS (ALTERA)

Sandro Binsfeld Ferreira

Projeto de CMP237

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Roteiro

� Motivação

� Etapas realizadas

� Resultados

� Conclusões

� Referências

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Roteiro

� Motivação

� Etapas realizadas

� Resultados

� Conclusões

� Referências

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Motivação

� uso da FFT em OFDM

� Aplicação em Comunicações� ADSL

� WI-FI

� WIMAX

� Análise de Espectros

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Motivação – uso da FFT em OFDM

FDM

OFDM

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Motivação – uso da FFT em OFDM

Transmissor

Receptor

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Roteiro

� Motivação

� Etapas realizadas

� Resultados

� Conclusões

� Referências

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Etapas realizadas

� Estudo do algoritmo DIF Radix 2

� Implementação da FFT em “C”

� Instrução Butterfly (VHDL)

� Quartus II, NIOS II IDE e Modelsim

� Implementação da FFT com instrução Butterfly

� Comparação das implementações

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Algoritmo da FFT – DIF Radix 2

butterfly

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Em C++......

x=xo[0][I+J];xi=xo[1][I+J];y=xo[0][I+J+T];yi=xo[1][I+J+T];w=w1[0][P*I];wi=w1[1][P*I];

//calculo do butterflyx1=x+y;x1i=xi+yi;x2=x-y;x2i=xi-yi;y1=x2*w-x2i*wi;y1i=x2i*w+x2*wi;y1=y1 >> 12;y1i = y1i >> 12;

printf(".");IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,I);

//resposta da butterflyxo[0][I+J]=x1;xo[1][I+J]=x1i;xo[0][I+J+T]=y1;xo[1][I+J+T]=y1i;

.....

Cálculo do butterfly

Em VHDL

y1=x2*w-x2i*wi;

y1i=x2i*w+x2*wi;

y1=y1 >> 12;

y1i = y1i >> 12;

...

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Desenvolvimento com o NIOS

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

CPU e Custom Instruction

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Stratix I

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Roteiro

� Motivação

� Etapas realizadas

� Resultados

� Conclusões

� Referências

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Resultados

ponto fixo vs ponto flutuante

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Fitter Summary

Quartus II Version 6.0 Build 6.0 Build

Revision Name standard custom

Top - level Entity Name standard custom

Family Stratix Stratix

Device EP1S10F780C6 EP 1 S 10 F 780 C 6

Timing Models Final Final

Total logic elements 4,013 / 10,570 ( 38 % ) 322 / 10,570 ( 3 % )

Total pins 179 / 427 ( 42 % ) 96 / 427 ( 2 2 % )

Total virtual pins 0 0

Total memory bits 571,136 / 920,448 ( 62 % ) 0

DSP block 9 - bit elements 8 / 48 ( 17 % ) 8 / 48 ( 17 % )

Total PLLs 1 / 6 ( 17 % ) 0 / 6 ( 0 % )

Total DLLs 0 / 2 ( 0 % ) 0 / 2 ( 0 % )

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Resultados (apenas em C)

=148,6 us

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Resultados (custom)

=19,6 us

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Resultados (apenas C)

=40 us

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Roteiro

� Motivação

� Etapas realizadas

� Resultados

� Conclusões

� Referências

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Conclusões

� O ambiente de desenvolvimento do NIOS éuma ferramenta útil para o estudo de algoritmos eficazes de processamento de sinais.

� A implementação da instrução customizada não teve grande influência na velocidade do processamento da FFT.

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Roteiro

� Motivação

� Etapas realizadas

� Resultados

� Conclusões

� Referências

CMP 237 - Implementação de um algoritmo customizado para o

cálculo de FFT

Referências

� VLSI for OFDM - Weste, N. Skellern, D. J.

Communications Magazine, IEEE. Oct. 1998.� A PLAIN MAN’S GUIDE TO THE FFT – Kraniauskas,

P. Signal Processing Magazine, IEEE. Apr. 1994.

� Design of Custom Instruction Set for FFT Using Fpga-based Nios Processors – SUNKARA, D. L. M. S. Thesis - Florida State University College of Engineering – 2004.

� Tutoriais diversos do Quartus II, NIOS IDE e Modelsim