Desenvolvimento de uma FFT utilizando ponto flutuante para FPGA - Umbelino Alves Rolim, Arthur (2009)
Devido à grande demanda da comunidade científica para o aumento da precisão em cálculos científicos, com redução no tempo de processamento e na potência dissipada pelos algoritmos em sua execução, estudos têm demonstrado que dispositivos especiais, como FPGAs (Field Programmable Gate Arrays), que trabalham, em geral, como co-processadores, podem em muito ajudar nesta linha de pesquisa. Muito já foi implementado e testado, porém a limitação de se trabalhar com números inteiros, que possuem um intervalo reduzido de representação numérica, imposta pela arquitetura nativa dos FPGA, incentivaram os pesquisadores a procurarem alternativas de como aumentar a precisão na plataforma. Esta pesquisa voltou-se para o estudo e a adaptação do padrão aritmético IEEE 754, largamente utilizado em computadores comuns e DSPs, ambos com grande capacidade de representação numérica, para FPGAs. Desta forma, uma adaptação mais natural dos algoritmos já existentes, que precisam ser acelerados, seria possível com os novos recursos na nova plataforma. Esta flexibilidade oferecida pelo novo ambiente de desenvolvimento concebeu muitas alternativas de viabilidade do projeto, gerando assim, uma grande quantidade de Ip-cores (uma biblioteca de cores) que realizam a mesma tarefa, entretanto de maneiras diferentes. Este trabalho tem como objetivo principal desenvolver o algoritmo da transformada rápida de Fourier (FFT) em hardware, para FPGAs. Este software Ip-core, bastante utilizado em aplicação científicas, particularmente em processamento digital de sinais, foi desenvolvido utilizando operações aritméticas números de ponto flutuante, padrão IEEE 754, com uma boa adaptabilidade. No Ip-core desenvolvido todas as operações aritméticas complexas, que o algoritmo demanda, foram encapsuladas para futuras melhoras sejam facilmente implementadas. Isto permite que, caso algum novo core aritmético, com melhor qualidade, venha a ser desenvolvido, o mesmo poderá facilmente substituir um core existente