Combinação de funções primitivas para síntese de funções majoritárias - Ferraz, Evandro Catelani (2018)
Devido ao grande avanço da tecnologia e à miniaturização de circuitos, o estudo de sistemas lógicos que podem ser aplicados à nanotecnologia vem sendo realizado de forma abrangente. Para criação de circuitos nanoeletrônicos destacam-se a lógica reversível e a lógica majoritária. Neste trabalho é proposto o algoritmo MPC, utilizado para síntese de lógica majoritária. O algoritmo recebe uma tabela verdade como entrada e retorna uma função majoritária que cobre o mesmo conjunto de mintermos. A criação de uma função de saída válida é realizada a partir da combinação entre funções primitivas previamente otimizadas. Como critério de custo busca-se a geração de funções que tenham a menor quantidade de níveis, seguida da menor quantidade de operadores, inversores e literais. Nesse trabalho também é realizada a comparação do MPC com o algoritmo exact_mig, considerado o melhor algoritmo para síntese de funções majoritárias atualmente. O exact_mig codifica a síntese exata de funções utilizando a quantidade de níveis e operadores como critério de custo. O MPC utiliza dois critérios de custo adicionais, o número de inversores e o número de literais, com o objetivo de otimizar ainda mais os resultados gerados pelo exact_mig. Dessa forma, o MPC busca a síntese de funções que possuam a mesma quantidade de níveis e de operadores, mas com uma quantidade menor de inversores e literais. Testes mostraram que ambos os algoritmos retornam soluções ótimas para todas as funções com 3 variáveis de entrada. Para funções com 4 variáveis, o MPC consegue melhores resultados para 66% das funções e resultados iguais para 11%. Para funções com 5 variáveis de entrada, a partir de uma amostra de 1.000 funções geradas aleatoriamente, o MPC gerou melhores resultados para 58% das funções e resultados iguais para 14%.