Implementação em VHDL de uma biblioteca parametrizável de operadores aritméticos em ponto flutuante para ser usada em problemas de robótica

Detalhes bibliográficos
Autor(a) principal: Sánchez Gómez, Diego Felipe
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