Sei sulla pagina 1di 10

Revista Brasileira de Informtica na Educao, Volume 18, Nmero 2, 2010

Karma: um ambiente para o aprendizado de sntese de funes Booleanas


Carlos Eduardo Klock ceklock@inf.ufrgs.br Renato Perez Ribas rpribas@inf.ufrgs.br Andr Incio Reis andreis@inf.ufrgs.br

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.

Klock, C.E.; Ribas, R.P.; Reis, A.I.

RBIE V.18 N.2 2010

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

Klock, C.E.; Ribas, R.P.; Reis, A.I.

Karma: um ambiente para o aprendizado de sntese de funes Booleanas

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

Klock, C.E.; Ribas, R.P.; Reis, A.I.

RBIE V.18 N.2 2010

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.

Figura 2 Karma: interface grfica do usurio (GUI).

3.1 Logic2Logic (Conversor de Formatos)


Conforme mencionado anteriormente, funes Booleanas podem ser representadas de diferentes formas. Para estudantes que esto tendo um primeiro contato com a rea da Sntese Lgica, o entendimento da relao entre os diferentes formatos de representao de funes lgicas nem sempre simples e evidente. Alm disso, converter de um formato para outro mais rpido e mais confivel usando uma ferramenta computacional de apoio para tal finalidade. O mdulo Logic2Logic, ilustrado na Figura 3, fornece essas funcionalidades. Os formatos suportados atualmente por este mdulo so os seguintes: tabela verdade; BLIF [13]; termos (ndices ou linhas da tabela verdade); nmero inteiro (em qualquer base de 2 a 16); expresso Booleana; BDD (descrio textual).

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

Klock, C.E.; Ribas, R.P.; Reis, A.I.

Karma: um ambiente para o aprendizado de sntese de funes Booleanas

entrada definidas em vrios outros mdulos do Karma.

3.3 Logic Probability (Probabilidade Lgica)


Para a probabilidade de ocorrncia do valor lgico 1 (nvel lgico alto) relacionado a cada varivel de entrada, dada a probabilidade de ocorrncia de cada combinao das variveis nas linhas da tabela verdade, assim como a probabilidade de ocorrncia do valor lgico 1 para a funo especificada, conforme ilustrado na Figura 5. Uma vez que diferentes formatos de descrio de funo so permitidos, interessante que os estudantes percebam que tais probabilidades de ocorrncia so propriedades da funo lgica, independente da maneira como esta descrita. Este mdulo tambm pode ser usado para ilustrar certas situaes onde algumas combinaes de entrada nunca acontecem.

Figura 3 Ilustrao do mdulo Logic2Logic.

3.2 Logic Equivalence (Equivalncia Lgica)


Dadas duas representaes de funes, o mdulo de equivalncia lgica permite identificar se h alguma equivalncia entre as funes [21] segundo as classes descritas na Seo 2, inclusive se so funes idnticas, apenas descritas de forma diferente. Este mdulo muito til para verificar resultados aps manipulao e sntese de funes. A interface deste mdulo ilustrada na Figura 4.

Figura 5 Ilustrao do mdulo Logic Probability.

3.4 Karnaugh Map (Mapa de Karnaugh)


Este mdulo representa a origem do projeto Karma [15], e o mais aprimorado dos mdulos do ambiente. bastante til para o aprendizado do mtodo de mapa de Karnaugh [12] e do algoritmo Quine-McCluskey [17]. Uma das facilidades deste mdulo, quando comparado com outras ferramentas de mapa de Karnaugh, a possibilidade de definir o comportamento da funo atravs da tabela verdade, diretamente no prprio mapa, ou atravs da descrio da funo usando os formatos disponveis no mdulo Logic2Logic. O conjunto de valores lgicos {0, 1, X} permitido. A quantidade de variveis tambm pode ser alterada, sendo que so suportadas at oito variveis devido s limitaes de visualizao grfica do mapa. Alm disso, possvel mudar a ordem das variveis para possibilitar outras formas de visualizao de agrupamentos de

Figura 4 Ilustrao do mdulo Logic Equivalence.

37

Klock, C.E.; Ribas, R.P.; Reis, A.I.

RBIE V.18 N.2 2010

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.

Figura 6 Ilustrao do mdulo Karnaugh Map.

3.5 KM Teaching Mode (Exerccios de Ensino para o Mapa de Karnaugh)


Este mdulo muito interessante para praticar os conceitos que envolvem o mtodo do mapa de Karnaugh na forma de jogos. Nos exerccios, as funes podem ter de 2 a 8 variveis. O conceito de vizinhana (adjacncia) de mintermos pode ser encontrado em diferentes exerccios. Os exerccios (jogos) disponveis so os seguintes: ver mintermos adjacentes: clicando sobre uma posio no mapa so exibidos os mintermos vizinhos; procurar mintermos adjacentes: uma posio realada no mapa e o usurio deve encontrar os mintermos vizinhos; ver cubo: o usurio marca um ou mais mintermos no mapa, o computador verifica se eles formam um cubo, e exibe uma mensagem dizendo se est correto; procurar cubo: a expresso Booleana de um cubo exibida e o usurio deve encontrar os mintermos que compe o cubo no mapa de Karnaugh; cubo implicante: o usurio recebe uma funo Figura 7 Ilustrao do mdulo KM Teaching Mode: exerccio Cube Quiz.

3.6 SOP & POS (Soma-de-Produtos e Produto-de-Somas)


Este mdulo executa o algoritmo Quine-McCluskey e fornece a funo Booleana, na sua forma direta e complementada (negada), nos formatos de soma-deprodutos (SOP) e produto-de-somas (POS). Estes formatos lgicos de dois nveis so geralmente minimizados em termos do nmero total de literais na funo. Outra otimizao, no usual, pode ser obtida focando na minimizao da quantidade de literais em cada termo da funo, ou melhor, visando a eliminao dos termos com maior nmero de literais [23]. Neste caso podem existir duas solues diferentes de acordo com a

38

Klock, C.E.; Ribas, R.P.; Reis, A.I.

Karma: um ambiente para o aprendizado de sntese de funes Booleanas

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.

3.7 Exclusive-OR (OU-Exclusivo)


O algoritmo Quine-McCluskey pode ser usado para sntese de funes considerando operaes com OUexclusivo (EXOR). Para isso, uma estrutura de dados especfica utilizada [20]. Este mdulo permite aos estudantes comparar os resultados do formato SOP convencional, que usa apenas operaes OR (soma) e AND (produto), com os resultados da expresso que inclui a operao EXOR. O uso da operao EXOR representa uma possvel minimizao na quantidade de literais da equao.

3.9 Factorization (Fatorao)


Formatos SOP, POS e multiplexer-based representam equaes Booleanas de dois nveis lgicos. Uma maneira de reduzir a quantidade de literais na equao atravs do procedimento de fatorao, resultando em uma representao com mais de dois nveis lgicos, conforme discutido na Seo 2. Algoritmos exatos para fatorao so conhecidos apenas para funes na categoria read-once, ou seja, funes que podem ser descritas atravs de expresses onde cada varivel aparece uma nica vez (incluindo as polaridades direta e negada) [24]. O algoritmo proposto por Lawler [25] declara fornecer soluo exata para qualquer funo, mas tem uma complexidade que o torna inadequado para tratar funes com mais que 4 variveis, podendo falhar tambm para funes com 4 ou menos variveis, dependendo da funo. A fatorao disponvel no Karma indita e apresentou bons resultados em termos de minimizao de equaes e tempo de execuo [26]. Tambm se pretende incluir na ferramenta o mtodo de fatorao descrito em [19], que gera resultados ainda melhores.

3.8 Multiplexer-Based (Sntese com Multiplexador)


A sntese de funes lgicas baseada no uso de multiplexadores, conforme mencionado na Seo 2, executada pelo mdulo Multiplexer-Based. Para uma dada funo lgica, definida em um dos formatos suportados pelo Logic2Logic, este mdulo apresenta todas as possveis solues de acordo com as variveis usadas como sinais de controle do multiplexador, e a varivel usada para configurar as entradas do multiplexador (de forma direta ou complementar),

39

Klock, C.E.; Ribas, R.P.; Reis, A.I.

RBIE V.18 N.2 2010

3.10 Comandos de Console


Alm da interface grfica do usurio (GUI) e da verso applet desta interface para execuo em navegadores WEB, por vezes necessrio executar um comando qualquer de forma rpida e direta. Com o uso de comandos de console (ou linhas de comando) no necessrio acessar um mdulo especfico do Karma, descrito acima, para obter resultados. Os comandos de console permitem a execuo de vrios algoritmos atravs da digitao de comandos numa janela de texto. Entre as funcionalidades disponveis esto a minimizao e fatorao de expresses Booleanas, resoluo de tabelas de cobertura e a converso de formatos lgicos.

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.

4. Experincia do Karma no Ensino e Formao de Estudantes


A ferramenta Karma, em sua primeira verso, tinha por foco apenas a resoluo do mapa de Karnaugh [15]. Desde ento recebeu o mdulo dos jogos pedaggicos e os demais mdulos descritos foram sendo agregados no ambiente. Esta ferramenta foi sendo adotada desde a sua criao nas aulas de graduao das disciplinas de Tcnicas Digitais (INF01118) para o curso de Cincia da Computao e de Circuitos Digitais (INF01056) para o curso de Engenharia de Computao, ambos da Universidade Federal do Rio Grande do Sul [27]. O Karma tem sido divulgado como material de apoio para a referncia [2], especificamente para os captulos 1 e 3. De maneira geral, inicialmente o ambiente utilizado para os alunos verificarem as respostas de exerccios feitos manualmente e para tirar dvidas de resultados para situaes menos correntes na aplicao dos mtodos. Aps, o Karma passa a ser uma ferramenta de apoio para desenvolvimento de circuitos digitais, quando desejvel alguma anlise ou otimizao lgica. O uso do mdulo Exerccios de Ensino para o Mapa de Karnaugh (seo 3.5), tem um aceite muito interessante, talvez pelo fato de tratarmos hoje de uma gerao de jovens aficionados por vdeo games, e ser esta uma forma bastante ldica para tratar do assunto [6]. Os exerccios Questes sobre Cubos e Cobertura de Funo, foram utilizados em algumas aulas como jogo de auditrio, onde o exerccio era projetado na tela e o primeiro a responder disputava o ponto: acerto significava um ponto para o participante que seguia no jogo; erro eliminava o participante do jogo. A cada tentativa um novo desafio (nova funo ou cubo) era apresentado. O resultado desta experincia para o aprendizado e reteno da informao foi bastante positivo, pois em um curto perodo de tempo os alunos dedicaram ateno especial (foco) nos princpios que

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

Klock, C.E.; Ribas, R.P.; Reis, A.I.

Karma: um ambiente para o aprendizado de sntese de funes Booleanas

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

Klock, C.E.; Ribas, R.P.; Reis, A.I.

RBIE V.18 N.2 2010

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

Potrebbero piacerti anche