Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica
Autor(a) principal: | |
---|---|
Data de Publicação: | 2009 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UnB |
Texto Completo: | http://repositorio.unb.br/handle/10482/7767 |
Resumo: | Dissertação (mestrado)—Universidade de Brasília, Faculdade de Tecnologia, Departamento de Engenharia Mecânica, 2009. |
id |
UNB_4ef267fc85adf15cd7571c097d418226 |
---|---|
oai_identifier_str |
oai:repositorio.unb.br:10482/7767 |
network_acronym_str |
UNB |
network_name_str |
Repositório Institucional da UnB |
repository_id_str |
|
spelling |
Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robóticaAritméticaRobóticaDissertação (mestrado)—Universidade de Brasília, Faculdade de Tecnologia, Departamento de Engenharia Mecânica, 2009.Este trabalho descreve a implementação em FPGA de uma biblioteca parametrizável em ponto flutuante abrangendo operadores aritméticos e trigonométricos comumente encontrados em aplicações robóticas (a saber, soma, subtração, divisão, raiz quadrada, seno, cosseno e arco-tangente). A biblioteca é parametrizável pelo tamanho da palavra (expoente e mantissa) para o conjunto de operadores. Esta biblioteca foi usada na implementação hardware da cinemática direta de um robô manipulador de configuração esférica com cinco graus de liberdade. No intuito de gerar automaticamente o código VHDL dos operadores em ponto flutuante para diferentes tamanhos de palavra, definida pelo usuário, uma ferramenta CAD foi desenvolvida em MATLAB. Em este contexto, são usados algoritmos baseados em Goldschmidt e Newton-Raphson para calcular as operações de divisão e raiz quadrada. Um análise entre os parâmetros consumo de recursos, consumo de multiplicadores embebidos do FPGA e aspetos relacionados à latência e precisão, para as duas arquiteturas (Goldschmidt e Newton-Raphson), permite escolher a melhor arquitetura para uma aplicação especifica. Para ambas implementações são obtidas altas vazões (Mresultados/s). A análise mostra uma vantagem da arquitetura Newton-Raphson sobre a arquitetura Goldschmidt. Para o cálculo das funções transcendentais são implementadas duas arquiteturas baseada em CORDIC e expansão em séries de Taylor. Similarmente ao caso da divisão e raiz quadrada, é feito uma análise entre os parâmetros consumo de recursos, consumo de multiplicadores embebidos do FPGA, latência e precisão. A análise mostrou que a arquitetura baseada em expansão em séries de Taylor apresentou um melhor desempenho para o cálculo das funções seno e cosseno. Porém, a arquitetura CORDIC apresenta um melhor desempenho para o cálculo da função arco-tangente. Para validar os circuitos propostos, varias simulações usando MATLAB foram desenvolvidas (os resultados são usados como um estimador estático dos operadores em ponto flutuante). Os resultados do erro quadrático médio (MSE) mostram uma adequada precisão dos operadores implementados. Finalmente, no intuito de validar a funcionalidade do conjunto de operadores, foi desenvolvida uma arquitetura hardware para o cálculo da cinemática direta de um robô manipulador de configuração esférica com cinco graus de liberdade. A arquitetura proposta foi concebida usando uma abordagem de planejamento por restrição de tempo e área. Em este caso, as unidades de ponto flutuante foram usadas, 8 unidades para o cálculo de funções transcendentais (seno e cosseno), e 4 multiplicadores e 2 unidades de soma/subtração para o cálculo de operações aritméticas. Os resultados de síntese mostram que a arquitetura proposta é viável em famílias de FPGAs modernas, nas quais há uma abundancia de elementos lógicos disponíveis. Todos os cálculos foram executados com sucesso e também validados usando os resultados em MATLAB como um estimador estatístico. O tempo de processamento da arquitetura hardware foi comparada com o mesmo modelo cinemático em software, usando um processador hard PowerPC (embebido na FPGA) e uma implementação em MATLAB executada em um processador AMD Atlhon Dual-Core de 2,1GHz. O tempo de cálculo da cinemática direta implementada em hardware é 0,67μs (relógio de 100MHz), considerando a mesma formulação implementada em software usando um processador PowerPC necessita 1,61ms, executada no mesmo dispositivo FPGA e com o mesmo relógio. Adicionalmente, a implementação em MATLAB gasta 0,013ms (relógio de 2.1GHz). _______________________________________________________________________________ ABSTRACTThis work describes an FPGA implementation of a parameterizable floating-point library including arithmetic and trigonometric operators commonly found in robotic applications (namely, addition, subtraction, division, square root, sine, cosine and arctangent). The library is parameterizable by word length (exponent and mantissa) for the set of operators. This library was used in the hardware implementation of a direct kinematics for a robot manipulator with a spherical topology with five degrees of freedom. In order to generate automatically the VHDL code of the floating point operators for different word length representations, which are defined by the designer, a CAD tool were developed in MATLAB. In this context, algorithms based on Goldschmidt and Newton-Raphson has been implemented for calculating both division and square root operators. A tradeoff analysis among the area cost, FPGA embedded multipliers consumption and aspects related to the latency and precision, for both developed architectures (Goldschmidt and Newton- Raphson), allows the choice of the better architecture for a specific application. High throughputs (Mresults/s) are achieved for both implementations. The trade-off analysis shows advantages of the Newton-Raphson over the Goldschmidt architecture. For computing the transcendental functions two architectures based on CORDIC and Taylor series expansion were implemented. Similarly to the case of the division and square root, a tradeoff analysis among the area cost, FPGA embedded multipliers consumption, latency and precision issues has been developed. The trade-off analysis shows that the architecture based on Taylor series expansion presents a better performance for computing sin a cosine functions. However, the CORDIC architecture presents a better performance for computing the arctangent function. For validating the proposed circuits, several simulations were performed using the MATLAB (these results are used as a statistical estimator of the implemented floating point operators). The Mean Square Error (MSE) results have demonstrated the suitability the precision of the implemented operators. Finally, in order to validate the functionality of the set of operators, a hardware architecture for computing the direct kinematics for a robot manipulator with a spherical topology with five degrees of freedom was developed. The proposed architecture was designed using a time and area constrained scheduling approach. In this case, cores in floating poitn were used, 8 cores for computing transcendental functions (sine and cosine), 4 multiplier and 2 addition/subtraction cores for computing the arithmetic operations. Synthesis results show that the proposed architecture is feasible for modern FPGAs families, in which there are plenty of logic elements available. The overall computations were successfully performed and also validated using the MATLAB results as a statistical estimator. The processing time of the hardware architecture was compared with the same kinematics model implemented in software, using both a hard PowerPC processor (embedded in the FPGA) and a MATLAB implementation running in an AMD Atlhon Dual-Core at 2.1GHz processor. The computation time to implement the direct kinematics in hardware is 0.67μs (clock of 100MHz), whereas the same formulation implemented in software using a PowerPC processor needs 1.61ms, running in the same FPGA device and with the same clock. Additionally, the MATLAB implementation spends 0.013ms (clock of 2.1GHz).Faculdade de Tecnologia (FT)Departamento de Engenharia Mecânica (FT ENM)Programa de Pós-Graduação em Ciências MecânicasLlanos Quintero, Carlos HumbertoSánchez Gómez, Diego Felipe2011-05-14T01:20:26Z2011-05-14T01:20:26Z2011-05-142009-12-11info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfSÁNCHEZ GÓMEZ, Diego Felipe. Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica. 2009. vii, 87 f., il. Dissertação(Mestrado em Ciências Mecânicas)—Universida de Brasília, Brasília, 2009.http://repositorio.unb.br/handle/10482/7767info:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UnBinstname:Universidade de Brasília (UnB)instacron:UNB2024-02-08T21:40:58Zoai:repositorio.unb.br:10482/7767Repositório InstitucionalPUBhttps://repositorio.unb.br/oai/requestrepositorio@unb.bropendoar:2024-02-08T21:40:58Repositório Institucional da UnB - Universidade de Brasília (UnB)false |
dc.title.none.fl_str_mv |
Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica |
title |
Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica |
spellingShingle |
Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica Sánchez Gómez, Diego Felipe Aritmética Robótica |
title_short |
Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica |
title_full |
Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica |
title_fullStr |
Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica |
title_full_unstemmed |
Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica |
title_sort |
Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica |
author |
Sánchez Gómez, Diego Felipe |
author_facet |
Sánchez Gómez, Diego Felipe |
author_role |
author |
dc.contributor.none.fl_str_mv |
Llanos Quintero, Carlos Humberto |
dc.contributor.author.fl_str_mv |
Sánchez Gómez, Diego Felipe |
dc.subject.por.fl_str_mv |
Aritmética Robótica |
topic |
Aritmética Robótica |
description |
Dissertação (mestrado)—Universidade de Brasília, Faculdade de Tecnologia, Departamento de Engenharia Mecânica, 2009. |
publishDate |
2009 |
dc.date.none.fl_str_mv |
2009-12-11 2011-05-14T01:20:26Z 2011-05-14T01:20:26Z 2011-05-14 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
SÁNCHEZ GÓMEZ, Diego Felipe. Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica. 2009. vii, 87 f., il. Dissertação(Mestrado em Ciências Mecânicas)—Universida de Brasília, Brasília, 2009. http://repositorio.unb.br/handle/10482/7767 |
identifier_str_mv |
SÁNCHEZ GÓMEZ, Diego Felipe. Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica. 2009. vii, 87 f., il. Dissertação(Mestrado em Ciências Mecânicas)—Universida de Brasília, Brasília, 2009. |
url |
http://repositorio.unb.br/handle/10482/7767 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UnB instname:Universidade de Brasília (UnB) instacron:UNB |
instname_str |
Universidade de Brasília (UnB) |
instacron_str |
UNB |
institution |
UNB |
reponame_str |
Repositório Institucional da UnB |
collection |
Repositório Institucional da UnB |
repository.name.fl_str_mv |
Repositório Institucional da UnB - Universidade de Brasília (UnB) |
repository.mail.fl_str_mv |
repositorio@unb.br |
_version_ |
1814508398912208896 |