Modelação em C++, síntese e implementação de circuitos digitais com base em FPGA
Resumo
Este artigo apresenta uma técnica de desenvolvimento de circuitos digitais que pode ser utilizada por alunos de disciplinas de programação orientada por objectos, computação reconfigurável, sistemas digitais avançados, etc. A técnica é baseada em hardware templates (HT) que são circuitos desenvolvidos para um grupo de aplicações semelhantes tais como processadores de uso especial, controladores embutidos, etc. A personalização do HT para uma aplicação particular é conseguida através da especificação da sequência de controlo apropriada. Alterações na sequência de controlo podem ser efectuadas sobre circuitos de controlo que permitem a modificação estática e dinâmica do seu comportamento. O comportamento é especificado com a ajuda de máquinas de estados finitos reprogramáveis (MEFR). Assume-se que, para o grupo de aplicações considerado, o HT já terá sido desenvolvido, modelado em C++ e implementado em FPGA. A sequência de projecto é composta por passos seguintes:
1) especificação e modelação da funcionalidade desejada em C++;
2) transformação de funções em C++ que descrevem várias sequências de operações de controlo, no modelo de software dos circuitos de hardware respectivos;
3) síntese de bitstreams para a MEFR (ou para um conjunto de MEFRs interligadas);
4) implementação do circuito com base em FPGA. O artigo apresenta um exemplo que permite realizar computações simples sobre vectores e matrizes booleanas e ternárias, e apresenta em detalhe todos os passos mencionados acima.