• Nenhum resultado encontrado

Dos aspectos tratados neste capítulo interessa salientar que o método tradicional de cálculo por aproximações polinomiais é faseado e compreende três etapas: redução do argumento, cálculo do polinómio no intervalo reduzido e reconstrução do argumento. Embora as etapas de redução e reconstrução pretendam diminuir a complexidade de cálculo possibilitando o uso de polinómios de grau baixo para aproximar uma função no intervalo reduzido, para valores de precisão baixos e/ou intervalos pequenos, pode não ser necessária a execução destas etapas que por si só constituem uma sobrecarga de cálculo. Nestes termos, é necessário portanto avaliar quais serão os impactos a nível de área e tempo de cálculo resultantes da implementação do cálculo de funções elementares em hardware. Este assunto constitui o teor central dos capítulos seguintes.

Capítulo 3

Implementação

No capítulo anterior foram apresentados e detalhados vários aspectos relativos ao processo de cálculo de funções elementares através de aproximações polinomiais. Foram destacadas as im- plicações resultantes do aumento do grau do polinómio bem como do intervalo de aproximação. Interessa agora obter métricas que permitam avaliar o impacto da implementação em hardware e definir metodologias que permitam optimizar essas implementações. Neste capítulo são apresen- tados os detalhes de implementação, nomeadamente uma descrição do fluxo de implementação, algumas considerações numéricas e uma visão da arquitectura da implementação.

A partir daqui e até ao final deste trabalho consideram-se as notações CRA (Com Redução do Argumento) referindo-se ao método de cálculo tradicional, constituído pelas três fases, e SRA (Sem Redução do Argumento) para o método que se propõem, que consiste em abdicar das etapas de redução e reconstrução do argumento. Considere-se também a partir deste ponto que quando se refere a redução do argumento, isso pressupõe por omissão a respectiva reconstrução.

3.1

Visão global

A implementação do processo de cálculo de funções elementares em hardware requer o con- hecimento prévio dos polinómios aproximantes que garantem a precisão necessária no intervalo a aproximar. Como já foi referido no capítulo anterior, o polinómio aproximante no intervalo nor- malizado é extraído recorrendo à aplicação Maple. Foram implementados programas em Matlab com o objectivo de avaliar o cálculo pelo método CRA. Pretende-se determinar, através do resul- tado do erro de aproximação cometido, se o polinómio extraído do Maple cumpria o requisito de precisão imposto, pois como já foi abordado, existe um erro associado à fase de reconstrução do argumento, e assim sendo não basta garantir que é cumprido o erro de aproximação do polinómio. Caso a precisão não seja satisfeita, o processo é repetido com um polinómio de grau superior. Se for necessário segmentar intervalos, as secções eram extraídas também do Maple e passadas para o Matlab para avaliar os resultados. Para a implementação SRA, o polinómio aproximante foi

20 Implementação

extraído directamente do Maple, sem necessidade de recorrer ao Matlab, uma vez que este pro- grama permite calcular polinómios com a precisão requerida que é o suficiente para este método na medida em que consiste apenas no cálculo do polinómio no intervalo completo de aproximação. Para validar as técnicas de cálculo das funções elementares apresentadas, CRA e SRA, foram implementados modelos sintetizáveis em Verilog. Estes modelos foram especificados segundo uma descrição comportamental. Posteriormente, foi feita a simulação funcional através de test- benches para garantir que os módulos cumpriam os objectivos de cálculo para os quais foram projectados. Os modelos foram devidamente validados e procedeu-se à síntese, recorrendo à ferra- menta XST integrada no ambiente ISE da Xilinx. Os resultados da síntese relativos à área ocupada e latência de cálculo das várias implementações foram reportados. Por último, as implementações obtidas foram ensaiadas numa FPGA. O método de ensaio consistiu em integrar os módulos deste projecto num outro, que possibilitou a comunicação com a FPGA via porta série. Utilizou-se depois uma aplicação em software que permitiu escrever nas portas de entrada da FPGA os val- ores dos argumentos x da função f (x) a calcular e ler nas saídas os resultados das aproximações polinomiais realizados segundo o os métodos CRA e SRA.

A figura3.1ilustra todo este processo de avaliação e cálculo desde a extracção do polinómio aproximante até à implementação do método CRA e SRA na FPGA tal como foi descrito antes.

Interessa salientar no diagrama de implementação que, embora para a extracção do polinómio através do Maple um dos requisitos deve ser a precisão de cálculo e não o grau do polinómio, uma vez que o grau do polinómio é dependente da precisão desejada, o método de cálculo usado por este programa para extrair um polinómio depende do grau escolhido e só depois devolve o erro. Desta forma o procedimento de extracção do polinómio com a precisão desejada consistiu no seu cálculo com dependência no grau e analisando o erro obtido, o processo repetiu-se até se atingir essa mesma precisão.

Pode ver-se que o fluxo de projecto segue dois caminhos. O fluxo exterior diz respeito ao cálculo pelo método SRA e o fluxo interior descreve o cálculo pelo método CRA.

O retorno do Matlab para o Maple, assinalado na figura com “*”, refere-se à repetição do processo para um polinómio de grau mais elevado caso não seja cumprida a precisão de cálculo conferida pelo grau usado numa iteração..

Documentos relacionados