Ambiente Experimental de Projeto
4.1. Estudos preliminares
O desenvolvimento de metodologias e ferramentas de síntese de projeto baseados em FPGA deve ser suportado por um ambiente de projeto que permita a verificação das características físicas do circuito resultante e que apresente estimativas necessárias para a comparação entre diversas estratégias. No processo de determinação do ambiente mais adequado para o desenvolvimento e experimentação do projeto desta tese, foram avaliadas algumas opções presentes no estado da arte.
O QUIP (Quartus II University Interface Program) (ALTERA
CORPORATION, 2009) é um ambiente, criado pela Altera, baseado no Quartus® II que permite a realização do fluxo de síntese possibilitando que desenvolvedores de ferramentas integrem suas ferramentas e ideias neste fluxo. Com o ambiente é possível que pesquisadores realizem otimizações em algumas etapas do fluxo de CAD e as integre no fluxo completo, de forma que possam ser obtidas estimativas realistas de tempo de circuito, roteabilidade, tempo de compilação, estimativa de consumo de potência, entre outras métricas.
O fpgaEVA-LP2 é um framework acadêmico para avaliação de potência em FPGAs. Ele pode ser utilizado para avaliação de circuitos em FPGA, arquiteturas e algoritmos de síntese. O fpgaEVA-LP2 integra as seguintes ferramentas: SIS (SENTOVICH, SINGH, et al., 1992), VPR (LUU, KUON, et al., 2009) , and fpgaEVA-LP (LI, CHEN, et al., 2003). O SIS é usado para executar a otimização lógica e o mapeamento tecnológico. O projeto físico é realizado a partir do VPR que inclui análise de tempo, agrupamento, posicionamento e roteamento. Após o roteamento é gerado um modelo de capacitância e resistência para a simulação física para realização da estimativa de potência.
O VTR (Verilog to routing) (ROSE, LUU, et al., 2012) é uma ferramenta acadêmica, código aberto e colaborativa, que se destaca por ser um fluxo integrado, permitindo a realização de todas as etapas de síntese, além da realização da estimativa de potência. Uma outra característica do VTR é que ele permite a síntese em FPGAs heterogêneos, ou seja, chips que possuam blocos especiais além dos CLBs. Compõem o VTR as ferramentas: ODIN II (elaboração) (JAMIESON, KENT, et al., 2010), ABC (síntese e mapeamento tecnológico) (BERKELEY UNIVERSITY, 2015), o VPR (agrupamento, posicionamento e roteamento) (LUU, KUON, et al., 2009), o VersaPower (Estimativa de consumo de potência) (GOEDERS e WILTON, 2012) e o ACE 2.0 (Estimativa de atividade de chaveamento) (LAMOUREUX e WILTON, 2006b).
A Tabela 7 mostra um comparativo entre os três ambientes e contém as características importantes na seleção do ambiente de projeto desejável. De acordo com a Tabela, quaisquer dos ambientes poderiam ser selecionados por apresentarem análise de tempo, área e potência. A ferramenta de síntese comercial, como é o caso do QUIP, poderia ser empregada no estudo desta tese, por apresentar uma grande vantagem frente às ferramentas acadêmicas, que é a precisão na análise de tempo, área e consumo de potência e a possibilidade de testes em hardware. Entretanto, após uma análise e estudo mais detalhados da ferramenta, verificou-se algumas características indesejáveis, como o pouco acesso ao suporte da ferramenta, a limitação dada pelo emprego específico de modelos não atuais de FPGAs da Altera, e o fato da Altera não ter mantido o QUIP como um projeto prioritário, descontinuando-o e limitando-o a uma versão anterior do Quartus II.
Já o fpgaEVA-LP2 apresenta como ponto forte o suporte a tecnologia dual-VDD,
mas trata-se de um projeto antigo, com tecnologia ultrapassada e sem a possibilidade de suporte. Finalmente, o VTR apesar de ser uma ferramenta acadêmica, o que impede a realização de testes em hardware, já que não é gerado o arquivo binário de gravação do FPGA, apresentou a melhor relação de compromisso, pois, possibilita a aplicação das técnicas de síntese a diversos modelos de FPGAs, desde que devidamente modelados. É um projeto atual e com embasamento cientifico sólido, pois deriva do VPR, e é um projeto colaborativo, código aberto, que disponibiliza documentação e suporte, além de ser amplamente empregado no estado da arte.
Pelas razões expostas, o VPR foi selecionado como ambiente experimental de projeto. Nas seções seguintes, serão apresentados, de forma sucinta, as ferramentas que integram o VTR.
Tabela 7. Comparativo ambientes de projeto
.
4.2. VTR (Verilog to Routing)
O ambiente experimental de projeto para esta tese é o VTR integrado à ferramenta de estimativa de potência, VersaPower. A Figura 45 mostra um diagrama Ambiente Modelos de estimativa presentes FPGAs compatí veis Nível de Suporte Vantagens Desvantagens QUIP Análise de tempo Análise de área Análise de potência Limitado a arquiteura s de FPGA antigas e somente da Altera Pouco Análise de tempo e potência precisa Possibilidade de teste em hardware Projeto descontinuado pela Altera Pouca flexibilidade na parametrizaçã o da ferramenta FPGAEVA- LP2 Análise de tempo Análise de área Análise de potência Limitado a arquiteura s de FPGA ultrapassa das Nenhum Suporta arquitetura Dual-Vdd Projeto desatualizado VTR Análise de tempo Análise de área Análise de potência Quaisquer, desde que arquitetura seja devidamen te descrita Facilitado Projeto Aberto e colaborativo Amplamente empregado no estado da arte Limitações por ser uma ferramenta acadêmica. Ex. Não possibilita teste em hardware
representativo do ambiente que é composto pelas ferramentas: ODIN II, ABC, VPR 6.0, ACE 2.0 e VersaPower. Especificamente, o algoritmo de mapeamento proposto foi integrado ao ABC e o agrupamento foi integrado ao VPR. As seções seguintes apresentam uma descrição básica de cada ferramenta.
4.2.1. ODIN II
O ODIN II é uma ferramenta de síntese Verilog RTL, de domínio público e código aberto. Ela tem a função de interpretar e converter a sintaxe verilog em uma netlist visando a lógica do FPGA. Seus algoritmos permitem a síntese de FPGAs com diferentes estruturas heterogêneas.
Para FPGAs com blocos multiplicadores, por exemplo, o ODIN II identifica no código Verilog o operador de multiplicação (*) e sintetiza diretamente nesses blocos, que devem ter sido devidamente descritos no arquivo de arquitetura do FPGA. Para o caso específico de multiplicação longa, a ferramenta faz a divisão em multiplicações menores (que sejam suportadas pelos blocos físicos) acrescida de uma lógica adicional.
No caso de memória, o ODIN II identifica a instância explícita da memória no arquivo Verilog e sintetiza-as nos blocos físicos de memória que existem na arquitetura alvo. Da mesma forma que os multiplicadores, memórias poderão ser divididas para que os tamanhos sejam compatíveis com a memória física.
Blocos físicos dedicados também podem ser detectados e sintetizados pelo ODIN II, desde que, algumas condições sejam satisfeitas, como a compatibilidade entre o tamanho lógico e físico.
O ODIN II também realiza uma verificação através de um simulador lógico que compara as saídas geradas pela simulação, para tanto, são utilizadas para especificação do circuito, a netlist de saída ou o Verilog de entrada.
4.2.2. ABC
O ABC é uma ferramenta utilizada para síntese lógica e mapeamento tecnológico baseado em LUTs e flip-flops. A ferramenta combina otimização lógica baseada em AIGs com mapeamento tecnológico para LUTs e standard cell, além de algoritmos de síntese sequencial e verificação.
Durante este projeto, a estrutura presente no ABC foi utilizada para desenvolvimento do algoritmo de mapeamento e replicação de algoritmos do estado da arte. Assim, foi possível fazer uso das interfaces de entrada de saída, criação de grafos, comparação entre redes lógicas e simulação para determinação das atividades de chaveamento dos nós.
4.2.3. ACE 2.0
É uma ferramenta para estimativa de atividade de chaveamento com precisão superior a 86% que é utilizada na estimativa de consumo de potência. A ferramenta faz a estimativa em três fases: A primeira fase simula probabilidades de chaveamento e estática dentro de laços de feedback sequencial. A segunda fase utiliza o modelo Lag- One (MARCULESCU, MARCULESCU e PEDRAM, 1994) para calcular as probabilidades estática e de chaveamento do restante da lógica. A terceira fase calcula a atividade de chaveamento utilizando uma técnica que considera pulsos espúrios (LAMOUREUX e WILTON, 2006b).
4.2.4. VPR
O VPR (Versatile Placement and Routing) é uma ferramenta que, em sua versão atual, engloba as funcionalidades de agrupamento, posicionamento e roteamento. A ferramenta recebe como entrada a netlist mapeada no ABC e o arquivo de descrição da arquitetura e produz como saída o posicionamento e o roteamento, além de informações de caminho crítico, largura do canal, máximo comprimento de fio, entre outras.
A versão da ferramenta de agrupamento presente no VPR é uma versão melhorada da versão descrita no AAPAck, onde foi adicionada toda a infraestrutura para análise de tempo, o que possibilitou a adição da criticidade na função de atração. A ferramenta de agrupamento recebe a netlist mapeada e, associa os blocos básicos em blocos mais complexos fornecendo uma netlist no formato VPR para a ferramenta de posicionamento. O agrupamento é realizado, não somente para CLBs que agrupam LUTs e flip-flops, mas também para os blocos multiplicadores e blocos de memória. Durante esse projeto, semelhante ao que ocorreu com o ABC, a infraestrutura presente na ferramenta foi utilizada para o desenvolvimento do algoritmo de agrupamento proposto. O posicionamento realizado no VPR é baseado no algoritmo simulated annealing e o roteador é baseado no algoritmo Pathfinder negotiated congestion.
4.2.5. VersaPower
O VersaPower é a mais recente ferramenta de estimativa de consumo de potência que suporta novas características das arquiteturas, como o uso de LUTs divisíveis. É uma ferramenta que trabalha integrada com o VPR permitindo a estimativa de consumo de potencia para as arquiteturas suportadas pelo mesmo. A confiabilidade no uso do VersaPower vem da sua validação através do SPICE com tecnologias CMOS de 22, 45 e 130nm.
Para estimativa de consumo de potência, o VersaPower recebe como entrada a descrição da arquitetura, os resultados do posicionamento e roteamento e as atividades de chaveamento das redes. A saída da ferramenta é um relatório com as informações de consumo de potência dos recursos de roteamento, relógio e CLBs.
4.3. Conclusão
Este capítulo apresentou uma análise comparativa dos ambientes de desenvolvimento de projeto disponíveis na literatura. Após a análise, foi apresentado, de forma resumida, o ambiente VTR utilizado no desenvolvimento deste trabalho. O VTR é um fluxo composto por 5 ferramentas que, de forma integrada, permitem a realização de otimização lógica, mapeamento, agrupamento, posicionamento e roteamento, além da análise de consumo de potência.