4 Formalização do Algoritmo Proposto
5.4 Efeitos do algoritmo sobre os circuitos combinacionais
5.4.3 Efeitos sobre a testabilidade, em cada fase
O algoritmo implementado visa remover todas as falhas de colagem não-testáveis do circuito, melhorando a controlabilidade e a observabilidade do mesmo. Esta melhoria só se consegue após a etapa de remoção de redundâncias sobre os VPBDDs.
5.4.3.1 Geração do circuito fanout-free
Quando a representação fanout-free do circuito é gerada, cada entrada primária do circuito corresponde a um nodo no BDD. Conseqüentemente, existe um aumento da controlabilidade do circuito que está sendo representado.
5.4.3.2 Remoção de redundâncias
Baseando-se na controlabilidade oferecida pela representação fanout-free, a remoção total de falhas de colagem não-testáveis é garantida, considerando os algoritmos para análise de alcançabilidade apresentados previamente. Isto é assegurado porque para atingir o último nodo do VPBDD, os nodos que estão acima devem assumir valores não controlantes. Além disso, não havendo arcos não alcançáveis no último nodo, pode-se garantir a inexistência de falhas de atraso de caminho, pois se existe um caminho viável no grafo para atingir o último nodo e se o último nodo pode assumir qualquer valor Booleano, significa que é possível propagar qualquer tipo de evento a partir da entrada primária que o nodo representa.
5.4.3.3 Verificação de equivalências
Ao final da Segunda etapa pode-se garantir que o circuito gerado não possui redundâncias. Resta analisar se a etapa para verificação de equivalências introduz redundâncias no circuito. Após esta etapa, se obtém um circuito que possui portas com
fanout maior que um. Apesar disso, não há introdução de redundâncias neste passo porque
apenas as portas que possuem a mesma funcionalidade lógica são compartilhadas. Desta forma, não há interferência nas simplificações realizadas quando as redundâncias foram removidas.
5.5 Conclusão
Este capítulo procurou discutir os resultados obtidos, em cada fase do algoritmo, explorando critérios como área, velocidade e testabilidade do circuito. Com base nos resultados expostos acima, pode-se concluir que o algoritmo para remoção de redundâncias comporta-se como esperado, comprovando as teorias estudadas.
No que diz respeito ao atraso do circuito foi constatado que o algoritmo não aumenta o número de portas lógicas em série. Os resultados mostram que é possível aumentar a velocidade do circuito, quando as redundâncias do caminho mais longo do circuito são eliminadas. O impacto do algoritmo na área do circuito depende principalmente do número de portas lógicas que possuem fanout maior que um, ou seja, depende da estrutura do circuito. Existem casos em que a área pode diminuir, aumentar ou permanecer a mesma. Também é possível notar que os resultados obtidos para os circuitos aritméticos são bastante satisfatórios. Isto se deve principalmente ao fato de que a função do carry é unate positiva.
Nesta abordagem, ficou claro que os circuitos gerados pelo algoritmo são completamente testáveis para falhas de colagem e para falhas de atraso de caminho. Ao fazer a análise de alcançabilidade, um vetor que sensibiliza um determinado caminho pode ser obtido. Com esta possibilidade, pode-se dizer que é possível gerar vetores de teste, com a utilização deste algoritmo.
Com o processo de validação dos circuitos gerados, foi provado que o protótipo implementado é capaz de gerar circuitos sem redundâncias que são equivalentes (funcionalmente) aos circuitos originais. Pode-se constatar também, que o algoritmo proposto possui limitações, que já eram esperadas, conforme foi discutido no capítulo anterior. A intenção desta implementação é provar que é possível derivar circuitos sem redundâncias a partir de VPBDDs.
Conclusão
Todas os aspectos abordados neste trabalho foram estudados a fim de proporcionar subsídios para desenvolver um algoritmo eficiente para remoção total de redundâncias em circuitos combinacionais. Este tipo de algoritmo está inserido no contexto da síntese lógica de circuitos digitais. Em geral, os algoritmos para síntese de circuitos digitais visam a melhoria de uma função custo, composta de quatro critérios: área, desempenho, potência e testabilidade. Normalmente estes algoritmos conseguem uma relação de compromisso para a otimização de dois critérios. Porém, alguns efeitos indesejáveis podem surgir quando algum destes critérios é otimizado. Foi demonstrado que redundâncias podem ser introduzidas quando se realizam otimizações para melhorar o desempenho de um circuito. Conseqüentemente, a testabilidade deste circuito é prejudicada.
Os efeitos indesejáveis, provenientes da síntese dos circuitos, ocorrem porque algumas funções possuem propriedades específicas, tais como as funções unate. Um exemplo deste tipo de função é o sinal de carry de um somador completo. Uma função
unate exige cuidados especiais para evitar a introdução de redundâncias. Muitos dos
algoritmos para síntese lógica empregam a decomposição de Shannon para melhorar o desempenho de um circuito. A equação geral da decomposição de Shannon é expressa através de uma equação binate, que representa um multiplexador. As redundâncias sempre serão introduzidas nos circuitos quando uma equação binate é utilizada para representar uma função unate.
Os Diagramas de Decisão Binária (BDDs) são um tipo estruturas de dados muito utilizadas em algoritmos para síntese lógica. Este tipo de estrutura representa uma função lógica e permite sua manipulação. A decomposição de Shannon também é utilizada para derivar circuitos a partir de BDDs. Infelizmente, os circuitos derivados a partir desta estrutura poderão ser redundantes, principalmente quando a decomposição de Shannon for utilizada. Foi demonstrado que nem todos tipos de BDDs são capazes de manter propriedades de testabilidade em uma representação de uma determinada função Booleana. A representação de uma função unate por um ROBDD impede a geração de um circuito multinível que não possua redundâncias, pois a decomposição de Shannon é utilizada para a realização deste processo.
Existem estruturas de dados capazes de representar uma função de forma que as redundâncias sejam explícitas. Este é o caso dos VPBDDs, que possuem propriedades especiais que preservam características de testabilidade da função representada. Isto ocorre porque em um VPBDD existe uma correspondência direta entre um nodo do grafo e um caminho do circuito. Deste modo, nodos não alcançáveis representam caminhos não sensibilizáveis. Baseando-se nesta propriedade, foi proposto um novo algoritmo para remoção de redundâncias que deriva circuitos a partir de representações de funções Booleanas com VPBDDs onde todos os nodos são alcançáveis. Este algoritmo é capaz de gerar circuitos sem redundâncias, mesmo quando a função, que é representada pelo VPBDD, é unate. O algoritmo ainda garante que o atraso do circuito não aumenta após a remoção de redundâncias. A área dos circuitos resultantes pode aumentar, diminuir ou permanecer a mesma, considerando o número de portas lógicas utilizadas. Os circuitos
gerados não possuem falhas de colagem não testáveis, nem falhas de atraso de caminhos não testáveis. A remoção de redundâncias tem efeito sobre as falhas de um circuito. Então, em algoritmos tradicionais para remoção de redundâncias, toda vez que uma falha é eliminada, uma ferramenta de ATPG deve ser usada para atualizar a lista de falhas do circuito. O algoritmo proposto não depende de uma ferramenta de ATPG externa e as falhas de colagem não-testáveis são verificadas diretamente sobre os VPBDDs.
Todos os resultados relativos à validação da implementação levam a crer que o algoritmo apresenta o comportamento desejado, comprovando a veracidade da teoria proposta. No que diz respeito ao desempenho do circuito foi constatado que o algoritmo não aumenta o seu atraso. Os resultados mostram que é possível aumentar a velocidade do circuito, quando as redundâncias do caminho mais longo do circuito são eliminadas. O impacto do algoritmo na área do circuito depende principalmente do número de portas lógicas que possuem fanout maior que um, ou seja, depende da estrutura do circuito. A aplicação deste algoritmo apresenta bons resultados para circuitos aritméticos. Isto se deve principalmente ao fato do carry ser uma função unate, o que pode introduzir redundâncias no circuito se esta propriedade (de ser unate) não for tratada adequadamente.
A primeira versão deste algoritmo para remoção de redundâncias pode Ter problemas no que diz respeito ao tempo de execução do algoritmo (algoritmo que percorre o grafo) e também problemas relativos ao consumo de memória, devido à geração do circuito fanout-free. A implementação deste algoritmo foi feita desta forma porque é o meio mais simples de realizar remoção de redundâncias com VPBDDs. Todo o esforço realizado teve como princípio provar a teoria estudada. Conforme foi discutido, existem técnicas que podem ser empregadas para minimizar os problemas computacionais. Além das técnicas que foram mencionadas, existem outras possibilidades para acelerar a identificação de arcos não alcançáveis em VPBDDs. Outro fator que merece atenção é o processo para verificação de equivalências. No algoritmo proposto, um pacote para construção de ROBDDs é utilizado. Em [ASH 91b] se explora o fato de que o tamanho de BDDs em que as variáveis podem ser lidas mais de uma vez (caso dos VPBDDs), pode ser menor do que o tamanho de um ROBDD, considerando que o objetivo é aplicar verificação de equivalências.
Acredita-se que muitas contribuições foram dadas no decorrer desta dissertação, tanto na formulação de novos conceitos como na descrição de problemas que podem ser pesquisados futuramente. Como foi mostrado, existem diferentes técnicas que podem ser aplicadas para a identificação de redundâncias com a utilização do VPBDDs. Cada etapa do algoritmo proposto pode sofrer otimizações para melhoria de desempenho, abrindo novos caminhos que poderão ser pesquisados, a fim de encontrar um algoritmo que seja realmente eficiente para remoção de redundâncias. O algoritmo proposto também abre possibilidades para a criação de outras ferramentas de CAD. Um gerador de circuitos aritméticos sem redundâncias pode ser construído, utilizando o processo de síntese empregado no algoritmo. Além disso, um VPBDD permite a geração de vetores que sensibilizam um determinado caminho do circuito. Esta possibilidade facilita a construção de uma ferramenta para análise de timing. Outra possibilidade seria a implementação de uma ferramenta para geração de teste, que incluiria a geração de lista de falhas, vetores de teste e cobertura de falhas.
Referências
[ABR 90] ABRAMOVICI, M.; BREUER, M.; FRIEDMAN, A. Digital Systems Testing and Testable Design. New York: IEEE Press, 1990.
[AKE 78] AKERS, S. Binary Decision Diagrams. IEEE Transactions on Computers, New York, v. C-27, n.6, p. 509-516, June 1978.
[ASH 91a] ASHAR, P.; DEVADAS, S.; KEUTZER, K. Gate-Delay Fault Testability Properties of Multiplexor Based Networks. In: INTERNATIONAL TEST CONFERENCE, ITC, 1991. Proceedings... [S.l.:s.n.], 1991. p. 887-896. [ASH 91b] ASHAR, P.; GHOSH, A.; DEVADAS, S. Boolean Satisfiability and
Equivalence Checking Using General Binary Decision Diagrams. In: IEEE INTERNATIONAL CONFERENCE ON COMPUTER DESIGN: VLSI IN COMPUTERS AND PROCESSORS, ICCD, 1991, Cambridge. Proceedings... Washington: IEEE, 1991.p. 259-264.
[BEB 95] BECKER, B.; DRECHSLER, R. How many Decomposition Types do we need? In: IEEE EUROPEAN DESIGN AND TEST CONFERENCE, ED&TC, 1995, Paris. Proceedings... [S.l.:s.n.], 1991.
[BEM 2001] BERKELAAR, M.; EIJK, K. Efficient and Effective Redundancy Removal for Million-Gate Circuits. In: INTERNATIONAL WORKSHOP ON LOGIC & SYNTHESIS, IWLS, 2001, California. Proceedings... [S.l.:s.n.], 2001 p. 249-253.
[BEC 89] BERMAN, C.; TREVILLYAN, L. Functional Comparison of Logic Designs for VLSI Circuits. In: IEEE INTERNATIONAL CONFERENCE ON COMPUTER-AIDED DESIGN, ICCAD, Digest of Technical Papers of the IEEE, 1989, Santa Clara. Proceedings... [S.l.:s.n.], 1989. p. 456- 459.
[BEJ 94] BERN, J. et al. Boolean Manipulation with Free BDD’s. First Experimental Results. In: EUROPEAN DESIGN AUTOMATION CONFERENCE, EDAC, 1994. Proceedings... [S.l.:s.n.], 1994, p. 200- 207.
[BEJ 95] BERN, J.; CHRISTOPH, M.; SLOBODOVÁ, A. Efficient OBDD-Based Boolean Manipulation in CAD Beyond Current Limits. In: ACM/IEEE DESIGN AUTOMATION CONFERENCE, DAC, 1995. Proceedings... [S.l.:s.n.], 1995.
[BRK 90] BRACE, K.; RUDELL, R.; BRYANT, R. Efficient Implementation of a BDD Package. In: ACM/IEEE DESIGN AUTOMATION CONFERENCE, DAC, 1990. Proceedings... [S.l.:s.n.], 1990. p. 40-45.
[BRD 86] BRAND, D. Redundancy and don´t cares in logic synthesis. IEEE Transactions on Computer Aided Design, California, v. C-32, October 1986.
[BRI 99] BRICAUD, P. IP Reuse Creation for System-on-a-Chip Design. In: CUSTOM INTEGRATED CIRCUITS, CIC, 1999. Proceedings... [S.l.:s.n.], 1999. p. 395-401.
[BRY 86] BRYANT, R. Graph-Based Algorithms for Boolean Function Manipulation. IEEE Transactions on Computers, New York, v. C-35, n. 8, p. 677-691, 1986.
[BRY 91] BRYANT, R. On the Complexity of VLSI Implementations and Graph Representations of Boolean Functions with Application to Integer Multiplication. IEEE Transactions on Computers, New York, v. 40, n. 2, p. 205-213, 1991.
[BUR 91] BURCH, J. Using BDDs to verify multipliers. In: ACM/IEEE DESIGN AUTOMATION CONFERENCE, DAC, 1991. Proceedings... [S.l.:s.n.], 1991. p. 408-412.
[CHA 93] CHAKRAVARTY, S. A Characterization of Binary Decision Diagrams. IEEE Transactions on Computers, New York, v. 42, n. 2, p. 129-137, 1993.
[COT 99] CORETCHÊ: a primeira página brasileira sobre cores. 1999. Disponível em: <http://www.inf.ufrgs.br/gme/cores>. Acesso em: 2001.
[COR 2002] CORREIA, V.; REIS, A. Compression and Technology Mapping of Logic Circuits. In: SYMPOSIUM ON INTEGRATED CIRCUITS AND SYSTEMS DESIGN, SBCCI, 2002, Porto Alegre. Proceedings... Porto Alegre:[s.n.], 2002. p. 277-280.
[DES 2001] DESIGN and Reuse: the B2B Marketspace for Silicon IP Exchange. 2001. Disponível em: <http://www.design-reuse.com>. Acesso em: 2001.
[DEV 94] DEVADAS, S.; GHOSH, A.; KEUTZER, K. Logic Synthesis. New York: McGraw-Hill, 1994.
[DIM 93] DIMACS CHALLENGE. Satisfiability: Suggested Format. 1993. Disponível em: <ftp://dimacs.rutgers.edu/pub/challenge/satisfiability/>. Acesso em: 2002.
[DRE 94] DRECHSLER, R. et al. Efficient Representation and Manipulation of Switching Functions Based on Ordered Kronecker Functional Design Diagrams. In: ACM/IEEE DESIGN AUTOMATION CONFERENCE, DAC, 1994. Proceedings... [S.l.:s.n.], 1994. p. 415-419.
[GAN 2000] GANAI, M.; KUEHLMANN, A. On-the-fly compression of Logical Circuits. In: INTERNATIONAL WORKSHOP ON LOGIC & SYNTHESIS, IWLS, 2000. Proceedings... [S.l.:s.n.], 2000.
[GAV 97] GAVRILOV, S. et al. Library-Less Synthesis for Static CMOS Combinational Logic Circuits. In: IEEE INTERNATIONAL CONFERENCE ON COMPUTER DESIGN, ICCAD, 1997. Proceedings... [S.l.:s.n.], 1997.
[GER 92] GERGOV, J.; MEINEL, C. Efficient Analysis and Manipulation of OBDD’s Can Be Extended to Read-once-only Branching Programs. [S.l.]:University Trier, June 1992. (Techinical report 92-10).
[GLE 95] GLEBOV, A.; BLAAUW, D.; JONES, L. Transistor Reordering for Low Power CMOS Gates Using na SP-BDD Representation. In: INTERNATIONAL SYMPOSIUM ON LOGIC & PHYSICAL DESIGN, ISLPD, 1995. Proceedings... [S.l.:s.n.], 1995. p. 161-166.
[ISH 90] ISHIURA, N.; YAJIMA, S. A Class of Logic Functions Expressible by a Polynomial-size Binary Decision Diagrams. In: SYNTHESIS AND SIMULATION MEETING AND INTERNATIONAL INTERCHANGE, SASIMI, 1990, Japan. Proceedings... [S.l.:s.n.], 1990. p. 48-54.
[KEA 99] KEATING, M.; BRICAUD, P. Reuse Methodology Manual for System- on-a-Chip Designs 2nd ed. USA: Kluwer Academic Publishers, 1999. [KEB 92] KEBSCHLL, U.; SCHUBERT, E.; ROSENSTIEL, W. Multi-Level Logic
Based on Functional Decision Diagrams. In: EUROPEAN DESIGN AUTOMATION CONFERENCE, EDAC, 1992. Proceedings... [S.l.:s.n.], 1992.p. 43-47.
[KEU 91] KEUTZER, K.; MALIK, S.; SALDANHA, A. Is Redundancy Necessary to Reduce Delay? IEEE Transactions on Computer Aided Design, California, v. 10, n. 4, April 1991.
[KEU 88] KEUTZER, K.; VANCURA, M. Timing Optimization in a Logic Synthesis System. In: INTERNATIONAL WORKSHOP ON LOGIN & SYNTHESIS, IWLS, 1988, Amsterdam. Proceedings... [S.l.:s.n.], 1988. [KUE 97] KUEHLMANN, A.; KROHM, F. Equivalence Checking Using Cuts and
Heaps. In: ACM/IEEE DESIGN AUTOMATION CONFERENCE, DAC, 1997. Proceedings... [S.l.:s.n.], 1997. p. 263-268.
[LEE 59] LEE, C. Representation of switching circuits by Binary-Decision Programs. Bell System Technical Journal, New York, v. 38, n. 7, p. 985- 999, July 1959.
[LIA 92] LIAW, H.; LIN, C. On the OBDD-Representation of General Boolean Functions. IEEE Transactions on Computers, New York, v. 41, n. 6, p. 661-664, 1992.
[MAR 2002] MARQUES, F. et al. Testability Properties of BDDs. In: SYMPOSIUM ON INTEGRATED CIRCUITS AND SYSTEMS DESIGN, SBCCI, 2002, Porto Alegre. Proceedings... Porto Alegre:[s.n.], 2002. p. 83-88.
[MIN 96] MINATO, S. Binary Decision Diagrams and Applications for VLSI CAD. Boston: Kluwer Academic Publishers, 1996.
[MIN 93] MINATO, S. Zero-Supressed BDDs for Set Manipulation in Combinatorial Problems. In: ACM/IEEE DESIGN AUTOMATION CONFERENCE, DAC, 1993. Proceedings... [S.l.:s.n.], 1993. p. 40-45.
[MIN 90] MINATO, S.; ISHIURA, N.; YAJIMA, S. Shared Binary Decision Diagram with attributed edges for efficient Boolean Function Manipulation. In: ACM/IEEE DESIGN AUTOMATION CONFERENCE, DAC, 1990. Proceedings... [S.l.:s.n.], 1990. p. 52-57.
[REI 95a] REIS, A. et al. Associating CMOS Transistors with BDD arcs for Technology Mapping. Electronic Letters – An International Publication, [S.l.], v. 31, n. 14, p.1118-1120, 1995.
[REI 95b] REIS, A. et al. Extensive Use of CMOS Complex Gates with Terminal Suppressed BDDs. Journal of the Brazilian Computer Society, [S.l.],v. 2, n. 2, p. 63-75, 1995.
[REI 97] REIS, A. et al. Library Free Technology Mapping. In: INTERNATIONAL CONFERENCE ON VERY LARGE SCALE INTEGRATION, VLSI, 1997, Gramado. Proceedings... [S.l.:s.n.], 1997.
[REI 2000] REIS, A.; PRADO, A.; LUBASZEWSKI, M. Testability Properties of Vertex Precedent BDDs. In: INTERNATIONAL WORKSHOP ON LOGIC & SYNTHESIS, IWLS, 2000, California. Proceedings... [S.l.:s.n.], 2000. p. 41-50.
[ROT 66] ROTH, J. Diagnosis of automata failures: A calculus and a method. IBM Journal of Research and Development, California, v. 10, n. 4, p.278– 291, 1966.
[SAL 94] SALDANHA, A. et al. Circuit Structure Relations to Redundancy and Delay. IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems, California, v. 13, n. 7, July 1994.
[SAR 93] SARABI, A.; et al. Minimal Multi-Level Realization of Switching Functions Based on Kronecker Functional Decision Diagrams. In: INTERNATIONAL WORKSHOP ON LOGIC SYNTHESIS, IWLS, 1993. Proceedings... [S.l.:s.n.], 1993. p. 1-6.
[SAS 93] SASAO, T. Logic Synthesis and Optimization. Boston: Kluwer Academic Publishers, 1993.
[SHA 38] SHANNON, C. A symbolic analisys of relay and switching circuits. Transactions American Institute of Electrical Engineers, [S.l.], v. 57, p. 713-723, 1938.
[SIN 88] SINGH, K. et al. Timing optimisation of combinational logic. In: IEEE INTERNATIONAL CONFERENCE ON COMPUTER DESIGN, ICCAD, 1988. Proceedings... [S.l.:s.n.], 1988.
[SIS 92] SIS: A System for Sequential Circuits Synthesis. Berkeley: University of California, 1992. Logic Synthesis Tool.
[SOM 2002] SOMENZI, F. CUDD Package, Release 2.3.1. Disponível em: http://vlsi.colorado.edu/ ~fabio/CUDD/cuddIntro.htm. Acesso em: 2002. [THO 99] THOMAS, T. Technology for IP Reuse and Portability. IEEE Design &