Geração de circuitos utilizando matrizes de células pré-difundidas - Guntzel, José Luis Almada (1993)
Este trabalho propõe e avalia uma nova abordagem para projeto de circuitos dedicados utilizando matrizes pré-difundidas. A principal vantagem desta abordagem, denominada Marcela, reside na decomposição lógica do circuito a ser implementado em termos de primitivas disponíveis na matriz escolhida. Aplicando-se tal procedimento, alcança-se grande flexibilidade em termos de posicionamento e roteamento, levando a uma melhor taxa de ocupação. Primeiramente, é feito um levantamento das abordagens para pré-difundidos correntemente encontradas e uma taxonomia baseada nas características mais relevantes é definida. As principais características da metodologia TRANCA são também mostradas. Leiautes gerados com os módulos TRAMO e TRAGO são analisados e algumas modificações na metodologia são sugeridas, visando uma exploração mais eficiente dos dois níveis de metal. As bases para o desenvolvimento da abordagem Marcela são então descritas. A abordagem consiste de uma nova arquitetura para pré-difundidos e uma estratégia específica de ocupação. As principais características da matriz de propósito geral Marcela, primeira a ser definida, são a ausência de canais de roteamento, com as conexões sendo realizadas sobre as células, e a utilização de quatro tipos de células básicas, cada uma dedicada à implementação de uma função lógica primitiva. As células básicas estão organizadas em unidades básicas, as quais são repetidas regularmente para formar a matriz, numa abordagem denominada mar de células. O problema do assinalamento de células e suas particularidades são solucionados utilizando-se uma combinação entre alocação sequencial e técnicas de particionamento. Primeiro, é alocada a mínima superfície da matriz capaz de comportar o circuito em questão, numa fase chamada pré-assinalamento. Na fase de otimização, partições são geradas respeitando a integridade das unidades básicas e trocas de células são realizadas entre os blocos de cada nova partição, em dois passos: trocas individuais, enquanto o bloco de destino não estiver cheio, e trocas de pares. Para o roteamento, foi desenvolvida no CPGCC/UFRGS uma ferramenta específica para ser utilizada em leiautes gerados segundo a metodologia TRANCA. Esta ferramenta, denominada MARTE [JOH 92a][JOH 92b], emprega o algoritmo de Lee básico com algumas modificações, tal como a geração de doglegs para trocas entre trilhas adjacentes. Com a finalidade de validar a abordagem, foram implementados alguns circuitos utilizando a abordagem Marcela e uma abordagem sea-of-gates tradicional. Para circuitos pequenos, tal como um flip-flop D, Marcela produziu uma melhor distribuição de conexões, a qual resulta em aumento da transparência. Porém, a taxa de ocupação encontrada foi menor do que a do circuito projetado com sea-of-gates. Por outro lado, para circuitos de complexidade maior, a área ocupada pode resultar bem menor do que no caso de se usar sea-of-gates, desde que sejam realizadas transformações lógicas apropriadas sobre a descrição equivalente Marcela ou uma matriz conveniente seja escolhida. Exemplos de leiautes desenvolvidos mostram que taxas de ocupação tão altas quanto 75% são atingidas. Finalmente, da observação de circuitos gerados automaticamente, foram tiradas conclusões sobre modificações na arquitetura da matriz e nos algoritmos, de forma a melhorar as taxas de ocupação para qualquer tipo de circuito.