Geração de b-splines via FPGA - Silva, Luiz Marcelo Chiesse da (2012)
As b-splines são utilizadas em sistemas CAD/CAM/CAE para representar e definir curvas e superfícies complexas, sendo adotada pelos principais padrões da computação gráfica devido a características como representação matemática de forma compacta, flexibilidade e transformações afins. Em sistemas de aquisição de dados 3D e sistemas CAM-CNC integrados, a utilização da b-spline na transferência de informações geométricas e na reconstrução da superfície de objetos resulta em um significativo incremento na eficiência do processo, geralmente implementado em sistemas embarcados. Nestes sistemas embarcados, integrados no auxílio a máquinas de manufatura, a utilização de FPGAs é incipiente, sem circuitos para b-splines disponibilizados em lógica reconfigurável de circuito aberto (open core), razão pela qual este projeto propõe o desenvolvimento de um circuito de geração b-spline aberto, em um sistema embarcado FPGA, utilizando algoritmos adaptados para os circuitos, elaborados em linguagem Verilog HDL, padronizada para a síntese de circuitos em lógica reconfigurável. Os circuitos foram desenvolvidos, utilizando-se um barramento de dados padronizado em circuito aberto, nas seguintes implementações para processamento paralelo das b-splines: o BFEA, o método baseado em funções base fixas, ambos projetados para circuitos integrados, e o fast Cox-de Boor, desenvolvido para FPGAs. Foram comparados o tempo de execução e o consumo de recursos disponíveis no FPGA utilizado, entre cada implementação. Os resultados evidenciaram que os circuitos de funções base fixas apresentaram o processamento mais rápido para a geração de b-splines em um FPGA, com um tempo de execução em média 20% menor em relação às outras implementações. Os circuitos BFEA apresentaram a menor utilização de elementos lógicos, em média 50% menor em relação aos outros circuitos implementados. O circuito fast Cox-de Boor apresentou a melhor escalabilidade, devido à modularidade da implementação, com tempos de execução similares aos circuitos de funções base fixas.