Metodologia de Projeto de Sistemas Reconfiguráveis

O projeto de sistemas digitais utilizando dispositivos lógicos programáveis (PLDs) possui uma metodologia de projeto específica, detalhada a seguir, adaptada de minha dissertação de mestrado "Ferramentas e metodologias de desenvolvimento para sistemas parcialmente reconfiguráveis", sob orientação do Prof. Edson Lemos Horta.

O projeto de qualquer sistema baseado em FPGAs inicia-se com a descrição dos circuitos, seja através do desenho do esquema elétrico em um CAD, seja através da descrição do mesmo utilizando uma HDL, que é o caso mais comum. O projeto do sistema reconfigurável deve ser dividido em módulos. Os circuitos de cada um desses módulos são descritos individualmente e há também a descrição do projeto principal, que contém todos os módulos.

Após a etapa da descrição dos circuitos, há a síntese, onde os circuitos são traduzidos para uma lista de ligações (netlist). Deste ponto até que se tenha os arquivos de configuração que serão gravados no FPGA há a implementação do projeto, denominação utilizada pelos principais fabricantes para os processos que ocorrem após a descrição e síntese do(s) circuito(s) até a geração dos arquivos de configuração (Xilinx, 2005). A etapa de implementação é dependente do fabricante e modelo de componente escolhido, de forma similar à etapa de compilação ou interpretação de software que é dependente da plataforma computacional subjacente. No caso da Xilinx esse fluxo pode ser observado na figura ao lado. Para outros fabricantes as etapas são basicamente as mesmas, podendo haver alguma diferença de nomenclatura.

Os passos principais da implementação de FPGAs da Xilinx são os seguintes (Xilinx, 2005):

    • Tradução (Translate) – converte a lista de ligações do projeto, gerada após a síntese em um formato da Xilinx que contém uma descrição lógica dos elementos do projeto. Os diversos arquivos sintetizados são combinados em um único arquivo juntamente com as macros de hardware existentes e eventuais circuitos adquiridos de terceiros como propriedades intelectuais em formato EDIF (Electronic Data Interchange Format);

    • Mapeamento (Mapping) – nesta fase o arquivo resultante da tradução é mapeado para componentes internos de um FPGA específico, tais como células lógicas ou de entradas e saídas (E/S);

    • Posicionamento e Roteamento (Place and Route) – os componentes do arquivo mapeado são fisicamente posicionados no FPGA e é feito o roteamento (conexão entre eles conforme a lista de ligações).

Na etapa de geração do bitstream é gerado o arquivo de configuração que possibilitará, finalmente, a programação do FPGA.

Referências:

VALIANTE FILHO, Filippo. Ferramentas e metodologias de desenvolvimento para sistemas parcialmente reconfiguráveis. 2008. Dissertação (Mestrado em Microeletrônica) - Escola Politécnica, Universidade de São Paulo, São Paulo, 2008. doi:10.11606/D.3.2008.tde-18082008-154538.

XILINX INC. Development system reference guide. 2005.

Retornar para Sistemas Digitais.