A Two level approximate logic synthesis method based on insertion and removal of cubes - Pinho, Gabriel Ammes (2022)
Computação aproximada é um paradigma que permite que um sistema tenha uma execu ção imprecisa ou inexata com o objetivo de otimizar o seu desempenho e sua eficiência energética. Quando este paradigma é aplicado em sistemas que executam funções resi lientes a erros, é possível otimizar o sistema sem degradar de forma crítica a operação desejada. Este trabalho foca no uso de computação aproximada no nível de circuitos, em particular, nos circuitos integrados digitais (CI). Ferramentas de projeto de circuitos integrados fornecem um fluxo altamente automatizado para do projeto de CIs. Este fluxo pode ser dividido em três passos principais: síntese de alto nível, síntese lógica e síntese física. A síntese lógica tem como objetivo otimizar a lógica do circuito e implementá-lo em uma dada tecnologia alvo. A síntese lógica é executada sobre representações dois níveis ou multinível que implementam a lógica combinacional de um dado circuito. A aplicação de computação aproximada no nível de circuitos consiste em obter uma im plementação que não é logicamente equivalente à especificação mas consegue realizar otimizações em área, desempenho e consumo de energia. Diversos trabalhos propõem técnicas para aproximar um circuito de forma automática através de modificação siste mática do funcionamento de um circuito genérico sem exceder uma dada restrição de erro. Devido à similaridade em técnicas, estruturas de dados e objetivos de otimização com a etapa de síntese lógica, a geração automática de circuitos aproximados é frequente mente chamada de síntese lógica aproximada. Métodos de síntese lógica tradicional para construção de circuitos dois-níveis podem ser utilizados para síntese de componentes pro gramáveis CPLDs, bem como parte de métodos para síntese de circuitos multinível. Além da geração de expressões aproximadas do tipo somas-de-produtos (SOP) e produtos-de somas (POS), técnicas de aproximação para circuitos dois-níveis poder ser exploradas nesses dois canários. Além disso, o entendimento dos conceitos e técnicas relacionados à aproximação dois-níveis pode contribuir significativamente para futuros estudos sobre a aproximação de circuitos multinível. Este trabalho propõe um método para aproximar circuitos dois-níveis que tem como entrada uma SOP e um dado limite de frequência de erro, e gera uma expressão aproximada com um número de literais reduzido e que respeita o dado limite de erro. O método proposto foi desenvolvido com a intenção de ser escalável em relação à quantidade de erros permitidos, possibilitando uma inserção de mais erros do que é observado em outros trabalhos que abordam o mesmo problema. Nos resultados experimentais obtidos, o método proposto gerou SOPs aproximadas com menos literais do que o obtido pelo método considerado estado-da-arte nesta tecnologia, para a mesma quantidade de erros. Comparando com a SOP original, o presente método obteve uma redução de literais média de 38% com frequência de erro de 1%, 56% com frequência de erro de 3%, e de até 93% frequência de erro de 5%. Como o impacto das aproxima ções feitas em uma representação dois-níveis na qualidade de um circuito multinível, e vice-versa, é desconhecido, foram feitos experimentos explorando técnicas de aproxima ção dois-níveis e multinível em conjunto para geração de circuitos aproximados, e para análise das soluções obtidas.