Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Instituto de Informtica Universidade Federal do Rio Grande do Sul Caixa Postal 15064 91501-970 Porto Alegre - RS - Brasil Fone +55 (51) 3308 6168
Resumo
Este artigo apresenta um ambiente computacional para sntese e anlise de funes lgicas. O ambiente proposto, chamado de Karma, oferece um conjunto de ferramentas de apoio (CAD) para o ensino e formao de estudantes de computao e eletrnica na rea de conhecimento de sntese lgica e circuitos digitais, mais precisamente em relao aos fundamentos de construo, otimizao e anlise de funes Booleanas. O ambiente foi desenvolvido em plataforma Java e no h similar disponvel no mercado ou na academia. A ferramenta Karma, em suas mais diversas verses, vem sendo utilizada em cursos de graduao h alguns anos, e atualmente encontra-se estvel e abrangente, embora sempre seja possvel agregar novos mtodos e algoritmos relacionados com o seu propsito. O Karma pode ser utilizado em aulas presenciais (verso GUI interface grfica do usurio), no ensino distncia (verso applet para navegadores WEB), na formao de novos pesquisadores na rea de sntese lgica e programadores Java atravs do desenvolvimento de novos mdulos, bem como para auxlio na produo de resultados cientficos atravs do seu uso por comandos de console e scripts. Palavras-Chave: funes Booleanas, sntese lgica, circuitos digitais, mapa de Karnaugh, CAD educacional, EAD
Abstract This paper presents an environment for logic synthesis and analysis of Boolean functions. The
proposed environment, called Karma, provides a set of computer-aided design (CAD) tools for learning and formation of computing and electronic students in the field of logic synthesis and digital circuits, particularly in relation to the fundamentals of building, optimization and analysis of logic functions. This environment has been developed in Java platform and there is no similar environment available for academic or commercial use. Karma tool, in different versions, has been used in undergraduate courses for some years, and presents today a stable and complete release, although it is always possible to include new methods and algorithms related to the environment goal. Karma is quite suitable for presential classes through the graphical user interface (GUI) use, for distance teaching and E-learning through WEB browser applets, for education of young researchers in the logic synthesis field and beginner Java programmers through the development of new modules, as well as to support research data production through scripts and console commands. Keywords: Boolean functions, logic synthesis, digital circuits, Karnaugh map, CAD tool, Elearning.
1. Introduo
Conhecimentos sobre lgica Booleana fazem parte dos fundamentos da Computao e da Eletrnica Digital. Tais conhecimentos so explorados pela rea de Sntese Lgica, na automatizao da construo de circuitos digitais. Esta rea estuda como abstrair e representar funes lgicas (ou Booleanas), bem como manipular, transformar, analisar e otimizar tais funes para o projeto de circuitos [1]. De forma simplista, pode-se dividir a sntese lgica em duas categorias ou nveis maiores: o tratamento de funes lgicas e a construo de circuitos digitais. No primeiro caso, o objetivo obter equaes lgicas que representem funes geralmente com poucas variveis, e com caractersticas especficas segundo os mtodos de sntese adotados: equaes de dois nveis ou multi-nvel, uso de funo OU-exclusiva, nmero mnimo de literais e/ou termos, e assim por diante [2]. No caso da sntese de circuitos o foco principal o mapeamento tecnolgico, ou seja, como dividir de forma eficiente a construo de um circuito digital em portas lgicas que o compe [3]. O ambiente Karma, aqui proposto, atua na primeira categoria, no nvel das funes lgicas. Os conceitos citados acima so um tanto abstratos, sendo difcil fornecer exemplos suficientemente didticos para que os alunos possam adquirir confiana para resolver os problemas de forma independente. A disponibilidade de uma ferramenta computacional que possibilite ao estudante a interao com estes conceitos auxilia significativamente no processo de aprendizado [4][5]. Existe um grande nmero de ferramentas educacionais propostas na literatura [5]-[8] e disponveis na Internet [9]-[11], principalmente em relao ao ensino do mapa de Karnaugh [12], talvez devido a questo visual inerente a este mtodo de sntese de funo. Porm, tais ferramentas ficam limitadas a tpicos especficos, no apresentando aos estudantes a abrangncia da rea. Por outro lado, h ferramentas mais completas do ponto de vista de mtodos de sntese lgica, como o SIS [13] e o ABC [14], ambos da Universidade de Berkeley, mas que foram criadas para uso de pesquisadores e desenvolvedores de circuitos, sendo inadequadas para o ensino dos conceitos bsicos deste tpico. Por exemplo, essas ferramentas no dispem de interface grfica para o usurio (GUI), isto , os algoritmos so executados apenas por comandos no console. Com o objetivo de auxiliar o aprendizado de sntese de funes lgicas, vem sendo desenvolvido h alguns anos um programa de computador chamado Karma [15], que integra vrias ferramentas e mdulos para os mais diferentes mtodos de gerao de equaes, otimizaes e anlises. Este ambiente dispe de um solucionador de
mapas de Karnaugh, visualizador de diagramas de deciso binria (BDDs), conversor de formatos de descrio lgica, exerccios (jogos) didticos sobre mapa de Karnaugh e tabelas de cobertura, verificador de equivalncia lgica de funes, anlise da probabilidade de ocorrncia dos nveis lgicos dos sinais, entre outras, que sero discutidas ao longo deste artigo [1][2]. O ambiente Karma foi desenvolvido em plataforma Java para ser independente de sistema operacional, e poder ser executado em navegadores de Internet atravs de verso applet. Dessa forma, o Karma til tanto para aulas presenciais quanto para o ensino distncia (EAD). Uma vez que este ambiente est modularizado e h inmeros mtodos e tcnicas de gerao e anlise de equaes Booleanas, o projeto tem se mostrado bastante eficiente tambm para a formao de desenvolvedores Java, bem como para a introduo do contedo de sntese lgica para novos alunos de iniciao cientfica no grupo de pesquisa. Neste artigo sero inicialmente apresentados, de forma sucinta, os fundamentos da rea de sntese lgica para melhor compreenso das funcionalidades e benefcios do ambiente proposto. A seguir, na Seo 3, o Karma descrito com uma breve apresentao dos seus mdulos. Na Seo 4 discutido o uso deste ambiente no contexto do ensino de graduao na Universidade Federal do Rio Grande do Sul. Por fim, na Seo 5, as concluses do trabalho so apresentadas.
2. Fundamentos
Uma funo Booleana uma funo onde tanto as entradas (domnio) quanto as sadas (imagem) so compostas de variveis Booleanas. Uma varivel Booleana uma varivel que assume valores binrios B = {falso, verdadeiro}, ou {0, 1}. Assim, uma funo de N variveis de entrada associa o valor de sada 0 ou 1 a uma sequncia de N bits (vetor) que representa uma combinao dos valores binrios das variveis de entrada. Quando o valor de sada associado a esta sequncia de N bits 0 ou 1, esta sequncia chamada de maxtermo ou mintermo, respectivamente [2]. Uma funo Booleana pode ser completamente especificada ou incompletamente especificada. Uma funo completamente especificada uma funo onde para cada combinao de entradas a sada pertence ao conjunto {0, 1}. Considere o smbolo -ou X como um valor indefinido (don't care). Uma funo incompletamente especificada uma funo onde para cada combinao de entradas a sada pertence ao conjunto {0, 1, X}, ou seja, existem combinaes de entradas onde o valor da sada no importa (X). A no ser
34
que seja citado, assumido por padro que uma funo Booleana completamente especificada. Funes Booleanas podem ser representadas de muitas maneiras diferentes, cada uma com suas vantagens e desvantagens dependendo do tipo de manipulao a ser executada. Dentre as formas mais comuns de representao de funes lgicas esto a tabela verdade, equao Booleana, portas lgicas, lista de termos (mintermos ou maxtermos) e diagrama de deciso binria (BDD). Algumas formas alternativas, menos usuais, so o nmero inteiro (binrio, decimal, hexadecimal), BLIF [13], rvore binria e AIG [16]. Na Figura 1 so ilustrados alguns desses formatos.
como mtodo Quine-McCluskey [17]. Estes processos, mapa de Karnaugh e mtodo Quine-McCluskey, podem ser divididos basicamente em dois passos principais [1]: (1) agrupamento de termos, eliminando alguns literais nos termos vizinhos e gerando o conjunto de implicantes primos da funo; e (2) a tabela de cobertura onde escolhido o conjunto mnimo de implicantes primos que cobrem todos os termos da funo. Funes na forma de SOP e POS correspondem a construo de circuitos digitais de dois nveis lgicos. Funes com lgica multi-nvel podem ser obtidas atravs da aplicao de mtodos de fatorao. A fatorao amplamente utilizada para minimizar a quantidade de literais de uma funo. Lgica multi-nvel preferida em circuitos integrados para reduo de rea e consumo de energia, sendo este normalmente o objetivo dos projetistas de circuitos integrados. Existem muitas tcnicas para obter resultados de fatorao, sendo necessrio o uso de heursticas para reduzir o grau de complexidade, reduzindo tambm o esforo computacional (tempo de execuo e consumo de memria) [18][19]. Implementaes baseadas em multiplexadores, por sua vez, so aplicadas tipicamente em componentes FPGA [2]. Qualquer funo Booleana de N variveis pode ser construda usando multiplexadores de 2(N-1) entradas. Considere um multiplexador de 4 entradas (E1, E2, E3, E4), ou MUX_4x1, que pode ser representado pela seguinte equao lgica: S = !c1.!c2.E1 + !c1.c2.E2 + c1. !c2.E3 + c1. c2.E4 (1) sendo as variveis c1 e c2 os sinais de controle deste multiplexador. Na Tabela 1 apresentada uma funo lgica construda com o MUX_4x1, nas suas mais diversas formas de configurao. A escolha das variveis a serem conectadas nos controles do multiplexador impacta diretamente no nmero de constantes (0 e 1) nas entradas do mesmo. Isso tem influncia direta na reduo do nmero de chaves (ou transistores) quando da construo fsica deste circuito. Tabela 1 Implementao da funo lgica S=b.(a.c+!a.!c)+!b.!c, em diferentes verses, utilizando um MUX_4x1. E1 E2 E3 E4 !c !c !c c 1 0 !b b 1 0 !a a c1 a a b c2 Funo Lgica b S = !a.!b.!c+!a.b.!c+a.!b.!c+a.b.c c S = !a.!c+a.!c.!b+a.c.b c S = !b.!c+b.!c.!a+b.c.a
(a)
(b)
(c) Figura 1 Exemplos de descrio de funes lgicas: (a) tabela verdade, (b) BDD, (c) circuito com portas lgicas. importante distinguir as definies de varivel e literal. Um literal cada uma das instncias de uma varivel presente em uma expresso Booleana. Normalmente, o objetivo dos projetistas de circuitos digitais reduzir o nmero de literais na expresso, pois isto tem relao com o nmero de chaves (transistores) utilizados, ou seja, corresponde ao tamanho do circuito (rea fsica) e, por sua vez, pode ser associado tambm com o consumo de energia do circuito. A tcnica mais popular para ensino de minimizao de funes lgicas o uso de mapas de Karnaugh em conjunto com o mtodo Quine-McCluskey [17]. A partir do mapa de Karnaugh possvel obter uma expresso Booleana na forma de soma-de-produtos (SOP) e/ou produto-de-somas (POS) [2]. Porm, devido ao procedimento visual desse mtodo, este limitado a funes de 4 a 5 variveis. O algoritmo genrico para qualquer quantidade de variveis na funo conhecido
A sntese de funes Boolenas baseada no operador lgico OU-exclusivo, ou que contempla este, pode ser utilizada para arquiteturas especficas, principalmente em operadores aritmticos, uma vez que um somador construdo utilizando preferencialmente este tipo de
35
operador lgico. Um mtodo simples e direto derivado do algoritmo Quine-McCluskey [20]. Este mtodo encontra-se disponvel no ambiente Karma. A probabilidade dos valores das funes lgicas (sinais de sada dos circuitos digitais) de apresentarem os nveis lgicos alto (1) e baixo (0), segundo a probabilidade desta ocorrncia nas variveis da funo (sinais de entrada do circuito), bastante til para a anlise de circuitos em relao ao seu comportamento lgico e eltrico. Por exemplo, para uma funo AND de duas variveis, sendo que cada uma tem 50% de chance de apresentar o valor lgico 1, a probabilidade da funo ser 1 de 25%. Tcnicas de construo de circuitos de baixo consumo esttico e de teste de sistemas em hardware, entre outras, fazem bastante uso desta informao em seus mtodos de anlise. Por fim, funes podem ser agrupadas em classes de equivalncia [21] atravs de simples rearranjos, dando nome a classes de funes equivalentes como, por exemplo: Classe P permutando as variveis de entrada; Classe Ni negando as variveis de entrada; Classe NP negando e/ou permutando variveis de entrada; Classe No negando a varivel de sada da funo; Classe NN - negando as variveis de entrada, e/ou negando a varivel de sada da funo. Classe PN permutando as variveis de entrada e negando a varivel de sada da funo; Classe NPN - negando e/ou permutando variveis de entrada, e/ou negando a varivel de sada da funo. Exemplo de funes equivalentes a uma dada funo S1 = (a.b)+c so ilustradas na Tabela 2. Tabela 2 Exemplos de equivalncias de funes lgicas: as funes indicadas possuem as seguintes equivalncias para S1 = (a.b)+c. Funo S2 = (c.a)+b S3 = (a.!b)+!c S4 = !((a.b)+c) S5 = !((!a.b)+c) S6 = (b.!c)+!a S7 = !((c.b)+a) S8 = !(c.!b)+!a) Equivalncia P, NP, PN, NPN Ni, NN, NP, NPN No, NN, PN, NPN NN, NPN NP, NPN PN, NPN NPN
3. Ambiente Karma
O ambiente Karma dividido em vrios mdulos ou ferramentas, que sero brevemente apresentados a seguir. Na Figura 2 mostrada a interface principal do ambiente.
Por ser extenso o nmero de possibilidades de formatos de descrio de funes, este mdulo est permanentemente em desenvolvimento e sendo atualizado. Encontra-se em andamento o acrscimo dos formatos de rvore binria e diagrama AIG. Alm disso, o Logic2Logic utilizado para converter funes de
36
37
mintermos. Aps executar o algoritmo Quine-McCluskey, o mdulo disponibiliza diferentes formas de visualizao dos resultados, incluindo uma lista de implicantes primos que, quando selecionados, exibem os mintermos correspondentes no mapa, uma expresso na forma somade-produtos e na forma fatorada, ilustrao do BDD da funo, tabela de cobertura [22], e uma janela com os passos do algoritmo Quine-McCluskey. Veja ilustrao na Figura 6.
escolhida aleatoriamente pela ferramenta e deve indicar um conjunto de mintermos no mapa. A ferramenta diz as propriedades do conjunto selecionado, indicando se o conjunto de mintermos forma ou no um cubo. Caso um cubo seja formado dito se o cubo implicante, primo e/ou essencial; questes sobre cubos: Similar ao exerccio anterior, mas a ferramenta escolhe o cubo aleatoriamente e o usurio indica as propriedades do cubo. O aprendiz deve dizer se o cubo implicante, implicante primo ou implicante primo essencial; cobertura de funo: o usurio deve responder questes sobre um conjunto de cubos que cobrem uma funo, mas onde no necessariamente todos cubos so implicantes ou primos; tabela de cobertura: ajuda o usurio a entender o funcionamento de uma tabela de cobertura [22]. A tabela de cobertura construda interativamente quando o usurio clica nas clulas do mapa de Karnaugh. A Figura 7 ilustra uma das interfaces deste mdulo, jogo questes sobre cubos.
38
minimizao que se quer obter, e este mdulo fornece as duas solues, conforme ilustrado na Figura 8. O mdulo SOP & POS til para exerccios onde o usurio est interessado no resultado da sntese, e no em visualizar os agrupamentos, como ocorre no mapa de Karnaugh. A sntese SOP o princpio bsico de configurao aplicado em dispositivos lgicos programveis (PLDs) como PLA, PAL e CPLD [2].
juntamente com as constantes 0 e 1. Todas essas possveis configuraes das conexes do multiplexador para a implementao de determinada funo lgica so apresentadas na janela de sada (relatrio) do mdulo, conforme ilustrado na Figura 9.
Figura 8 Ilustrao do mdulo SOP & POS. Figura 9 Ilustrao do mdulo Multiplexer-Based, usando funo descrita na Tabela 1 da Seo 2.
39
envolvem o mapa de Karnaugh e com bastante entusiasmo e motivao [28]. Por fim, percebeu-se que o ambiente Karma tem sido um veculo bastante eficiente para a formao de novos bolsistas de iniciao cientfica (alunos de graduao) no que se refere a programao em linguagem Java e no entendimento dos conceitos bsicos de sntese lgica. Os novos bolsistas do grupo de pesquisa recebem como tarefa o desenvolvimento de um novo mdulo relacionado com o assunto, para ser ento agregado ao ambiente. Isso faz com que o desafio do aprendizado tenha um objetivo prtico e til, contribuindo para a motivao do estudante. Esta prtica, desenvolvimento de novos mdulos, realizada desde os primrdios do Karma. Novos bolsistas desenvolvem mdulos e/ou pacotes que podem ser executados independentes do Karma. Estes novos mdulos so feitos utilizando algumas classes teis do projeto, que j esto bem documentadas. Para tanto, os novos bolsistas dispem do auxlio de outros bolsistas que j trabalharam com o desenvolvimento do Karma. Os mdulos resultantes, que inicialmente so independentes, podem ser agregados ao Karma na forma de um mdulo completo ou de funcionalidades para um mdulo j existente.
5. Concluso
Apesar de j existirem algumas ferramentas educacionais com o objetivo de ensinar mapas de Karnaugh e conceitos de sntese lgica, estas ferramentas tm um foco diferente da presente proposta. Enquanto muitas ferramentas so especficas para resoluo de mapas de Karnaugh, o ambiente Karma dispe de um conjunto bastante amplo de ferramentas para descrio, sntese e anlise de funes Booleanas. Ambientes de sntese lgica, como as ferramentas SIS e ABC de Berkeley, so voltadas para a produo de resultados de pesquisa, no sendo apropriadas para o ensino de conceitos bsicos e formao inicial de estudantes de graduao. O Karma vem sendo utilizado regularmente em disciplinas de graduao da Universidade Federal do Rio Grande do Sul, e est disponvel atravs do site do Logic Circuit Synthesis labs [29].
6. Agradecimentos
Os autores agradecem a diversos alunos que, de uma forma ou outra, contriburam para o desenvolvimento de parte deste ambiente computacional, em particular a Felipe Ribeiro Schneider, Marcos Ledur, Mateus
40
Volkmer Nunes, Dionatan de Souza Moura e Vinicius Callegaro. Este projeto foi parcialmente financiado pelo CNPq, pela empresa Nangate A/S e pelo Stimo Framework Programme (FP7) da Comunidade Europia atravs do contrato 248538 - Synaptic.
2010. [11] R. Sandige. Karnaugh Map Explorer 1.0. http://courseware.ee.calpoly.edu/~rsandige/Karnau ghExplorer.html, Abril 2010. M. Karnaugh. The map method for synthesis of combinational logic circuits. Trans. AIEE, Commun. & Electron., vol.72, no.1, pp.593-598, 1953. E. Sentovich; K. Singh; L. Lavagno; C. Moon; R. Murgai; A. Saldanha; H. Savoj; P. Stephan; R. K. Brayton; A. Sangiovanni-Vincentelli. SIS: A system for sequential circuit synthesis. Memo. UCB/ERL M92/41, 1992. Berkeley Logic Synthesis and Verification Group. ABC: A System for Sequential Synthesis and Verification, Release 70911. C. E. Klock; F. R. Schneider; M. N. Gomes; D. S. Moura; R. P. Ribas; A. I. Reis. KARMA: a didactic tool for two-level logic synthesis. IEEE International Conference on Microelectronic Systems Education (MSE 07), 2007. L. Hellerman. A Catalog of Three-Variable OrInvert and And-Invert Logical Circuits, Electronic Computers, IEEE Transactions, vol.EC-12, no.3, pp.198-223, June 1963. E. J. McCluskey. Minimization of Boolean functions. Bell Syst. Tech. J., vol.35, no.5, pp.14171444, 1956. A. Mintz, M. C. Golumbic. Factoring Boolean functions using graph partitioning. Discrete Applied Mathematics, n.149, p.131-135, May 2005. A. I. Reis, A. Rasmussen, L. R. Junior, R. P. Ribas. Fast Boolean Factoring with Multi-Objective Goals. In International Workshop on Logic & Synthesis IWLS 2009, Berkeley, CA, USA. B. H. Turton. Extending Quine-McCluskey for Exclusive-Or Logic Synthesis. IEEE Trans. On Educ., vol.39, no.1, pp.81-85, 1996. P.Molitor and J.Mohnke. Equivalence checking of digital circuits: fundamentals, principles, methods. 265 pages. Springer, 2004. O. Coudert. On solving covering problems. In Proceedings of the 33rd Annual Design Automation Conference, pp.197-202, Las Vegas, United States, June, 1996. F. R. Schneider, R. P. Ribas, S. S. Sapatnekar, A. I. Reis. Exact Lower Bound For The Number Of Switches In Series To Implement A Combinational Logic Cell. International Conference on Computer
[12]
7. Referncias
[1] L. T. Wang, Y. W. Chang, K. T. Cheng. Electronic Design Automation: Synthesis, Verification and Test. Morgan Kaufmann, cap.6, pp.299-404, E.U.A., 2009. F. R. Wagner, A. I. Reis, R. P. Ribas. Fundamentos de Circuitos Digitais. Sagra Luzzatto, Porto Alegre, 2006. F. Marques, O. Martinello Jr., R. P. Ribas, L. Rosa Jr., A. I. Reis. Mapeamento Tecnolgico no Projeto de Circuitos Integrados Digitais. Desafios e Avanos em Computao - o estado da arte, ed. da Universidade Federal de Pelotas, pp.177-196. 2009. P. A. Mlsna, E. Liszewski. Effectiveness of Karnaugh Mapplet Use in Student Learning of Digital Logic Skills. In Proceedings of the 2005 American Society for Engineering Education Annual Conference & Exposition, E.U.A., 2005. H. Pomares; C. Garca-Garca; I. Rojas; M. Damas; J. Gonzlez; J. P. Florido; J. Urquiza. Teaching digital systems design with a new didactic environment through the Internet. Research, Reflections and Innovations in Integrating ICT in Education, vol.2, pp.1021-1026, 2009. L. A. Belfore II, A. B. Adcock, G. S. Watson. Introducing digital logic and electronics concepts in a game-like environment. In Proceedings of the 2009 Spring Simulation Multiconference, E.U.A., 2009. KMVQL: a visual query interface based on Karnaugh map. In Proceedings of the working conference on Advanced visual interfaces, pp.243250, Itlia, 2008. A. Sena, M. Torres. EasyKarnaugh 3.0 Uma ferramenta computacional para o auxlio no ensino de Mapas de Karnaugh em Lgica Digital. In WEI XVII Workshop sobre Educao em Computao, Bento Gonalves, RS, 2008. R. Kovacevic. Karnaugh Map Minimizer. http://kmap.sourceforge.net/, Abril 2010. R. Sasamori. KarnaughMap4. http://www.puz.com/sw/karnaugh/index.htm, Abril [13]
[2]
[14]
[3]
[15]
[4]
[16]
[5]
[17]
[18]
[6]
[19]
[7]
[20]
[21]
[8]
[22]
[9] [10]
[23]
41
Design - ICCD 2005, San Jose, CA, USA, 2005. [24] M. C. Golumbic, A. Mintz, U. Rotics. Factoring and recognition of read-once functions using cographs and normality and the readability of functions associated with partial k-trees, Discrete Applied Mathematics, vol. 154, issue 10, pages 1465-1477, June 2006. E. L. Lawler. An approach to multilevel Boolean minimization. Journal of the ACM, v.11, n.3, p.283295, New York, USA, July 1964. V. Callegaro Et al. A Kernel-based Approach for Factoring Logic Functions. Microelectronics Students Forum SForum 2009, s.n., 2009, Natal, RN, Setembro 2009. Universidade Federal do Rio Grande do Sul. http://www.ufrgs.br, Abril, 2010. D. Fenker, H. Schtze. O Fascnio da Surpresa. Revista Mente & Crebro, Ediouro Publicaes, n 193, Jan. 2009. Logic Circuit Synthesis labs. http://www.inf.ufrgs.br/logics, Abril 2010.
[25]
[26]
[27] [28]
[29]
42