9/10/2013 Objetivo Universidade Estadual de Campinas FEEC - DEMIC Exame de Qualificação Projeto de um Aplicativo para Síntese de Funções Multi-Valores em Ambiente Windows Projetar e desenvolver uma ferramenta automatizada com interface amigável que possa realizar a tarefa de gerar a expressão minimizada relativa à tabela verdade fornecida pelo usuário. Autor: Marco Aurélio Seluque Fregonezi Orientador: Prof. Dr. Alberto Martins Jorge 22/08/01 Tese de mestrado L.M.V.S. 1 Tese de mestrado Ambiente de desenvolvimento L.M.V.S. 2 Janela de entrada Atualmente, dispõe-se de versões beta. A versão 1.0 será lançada na data da defesa de tese. Tese de mestrado L.M.V.S. 3 Tese de mestrado Como mostrar uma função L.M.V.S. 4 Tarefa Tabela verdade intuitivo Tabela verdade Expressão algébrica l éb i Expressão algébrica manipulável Tese de mestrado L.M.V.S. 5 Tese de mestrado L.M.V.S. 6 1 9/10/2013 Opções de funções: • • • • • • • Tese de mestrado Área de entrada (tabela-verdade) Dois valores e uma entrada Dois valores e duas entradas Dois valores e três entradas Três valores e uma entrada Três valores e duas entradas Quatro valores e uma entrada Quatro valores e duas entradas L.M.V.S. 7 Lógica empregada 3x1 B=B(A) 4x1 B=B(A) 3x2 C=C(A,B) 4x2 C=C(A,B) Tese de mestrado L.M.V.S. Lógica ciclicamente fechada 1 0 1 2 0 3 Conectivos de dois valores Tese de mestrado 0 1 0 0 0 0 0 1 1 0 1 1 1 1 L.M.V.S. 1 2 9 0 1 0 Quatro valores Extensão de A.M.Jorge: Vários deslocadores Vários conectivos Mais do que três valores L.M.V.S. Três valores Dois valores Lógica MVL de Post: 1 deslocador horário – Topo 1 conectivo – Mínimo Três valores Tese de mestrado 8 Tese de mestrado L.M.V.S. 10 Conectivos de três valores 11 0 1 2 0 1 2 0 1 2 0 0 0 0 0 0 1 2 0 0 0 2 1 0 1 1 1 1 1 1 1 0 1 2 2 0 1 2 2 2 1 2 2 2 2 2 Tese de mestrado L.M.V.S. 12 2 9/10/2013 Deslocadores Conectivos de quatro valores shifters 0 1 2 3 0 1 2 3 0 0 0 0 0 0 0 1 2 3 1 0 1 1 1 1 1 1 1 1 2 3 0 0 1 1 2 2 2 3 2 3 2 3 1 1 2 2 2 3 0 1 2 3 0 1 2 3 0 0 2 3 0 1 2 3 2 2 2 2 3 3 2 3L.M.V.S. 0 0 0 3 0 1 1 3 0 1 2 3 3 3 3 3 0 1 2 3 Tese de mestrado 0 1 2 3 Dois valores Três valores Quatro valores 13 Tese de mestrado Grafia A A 0 1 1 0 A A A 0 1 2 1 2 2 0 0 1 A A A A 0 1 1 2 2 3 3L.M.V.S.0 2 3 0 1 3 0 1 2 14 Menus ASC Expressão ELOmv L.M.V.S. AB A B AB AB A* B A+ B A– B A/ B At Ad Ab Aa B Ab B Ac B Ad B /A //A A/ A A A Tese de mestrado L.M.V.S. 15 Tese de mestrado Menu Arquivo • • • • • L.M.V.S. 16 Função binária O conceito de função binária é particularizado para este contexto: Abrir Salvar C i Copiar Imprimir Sair Função binária é aquela que fornece apenas dois valores consecutivos. Valor analisado Dominante Verdadeiro termo ocorrência do valor dominante Secundário Falso Tese de mestrado L.M.V.S. 17 Tese de mestrado L.M.V.S. 18 3 9/10/2013 Conversão para binário Comandos de manipulação Operação com o secundário elimina o terciário e o indiferente, restando apenas o dominante e o secundário. • • • • • • • Quatro valores A1 A2 A3 A0 Três valores A1 A2 A0 A substituição do terciário e do indiferente pelo dominante também gera função binária. Tese de mestrado L.M.V.S. 19 0,1,2,3 a1,b2,c3,d0 a2,b3,c0,d1 TH TV TH, TV, TN Deslocar Aleatório A (uma entrada) Tese de mestrado Técnica de síntese L.M.V.S. 20 Técnica de síntese Transformar a função MVL fornecida em sub-funções binárias. A função MVL corresponde a uma junção de funções binárias. Tabela MVL Expressão MVL Técnica ideal Nomenclatura: Tabelas binárias Letra maiúscula: Função MVL. Letra minúscula: Sub-função binária. Expressões binárias Asterisco: Uso de irrelevantes. Tese de mestrado L.M.V.S. 21 Sub-funções binárias 22 Sub-funções binárias Duas entradas C=C(A,B) Três valores Três valores Sem irrelevantes (uma ou duas entradas) S b tit i ã Substituição Dominante Dominante Secundário Secundário Indiferente Irrelevante Tese de mestrado L.M.V.S. Duas entradas C=C(A,B) Com irrelevantes (duas entradas) (opcional) c* Tese de mestrado Com irrelevantes (duas entradas) (opcional) S b tit i ã c* Substituição Substituição S b tit i ã Dominante Dominante Secundário Secundário Indiferente Dominante L.M.V.S. c 23 c0 c1 c2 Tese de mestrado 2X 0X 1X Sem irrelevantes (uma ou duas entradas) b tit i ã c SSubstituição c0 2 0 c1 0 1 c2 1 2 L.M.V.S. 24 4 9/10/2013 Sub-funções binárias Sub-funções binárias Duas entradas C=C(A,B) Duas entradas C=C(A,B) Quatro valores Quatro valores c** Subst. c* Subst. c Subst. 1o 1o 1o 1o 1o 1o 2o 3o 4o 2o X X 2o 3o 4o 2o X 1o 2o 3o 4o 2o 1o 1o Tese de mestrado L.M.V.S. c** Substituição c0 c1 c2 c3 25 2,3 X 3,0 X 0,1 X 1,2 X c* Substituição c0 c1 c2 c3 2X 30 3X 01 0X 12 1X 23 Tese de mestrado c Substituição c0 2,3 0 c1 3,0 1 c2 0,1 2 c3 1,2 3 L.M.V.S. Conectivos 26 Conectivos Unicidade Duas entradas: Dois valores Cada termo da tabela binária refere-se a uma expressão que só é verdadeira se e somente se o termo em questão for verdadeiro. c0 disjuntivo c1 conjuntivo Entre as coordenadas, usar o operador para o qual o valor analisado é o indiferente Uma e Duas entradas: A tabela binária refere-se a uma expressão que é verdadeira se pelo menos um dos termos for verdadeiro. Entre os termos, usar o operador para o qual o valor analisado é o dominante L.M.V.S. Entre Entre termos (+) (*) (*) (+) Três valores Entre Entre coordenadas termos Existência Tese de mestrado coordenadas 27 c0 c1 c2 Tese de mestrado Quatro valores Entre Entre coordenadas termos c0 c1 c2 c3 L.M.V.S. 28 Necessidade de conversão para binário Exemplo: termos para c0 três valores e duas entradas 0 A= 0 A= 1 A= 2 termo ocorrência do valor dominante B=0 AB AB AB Na tabela anterior,um termo isolado é uma função MVL devendo, por isso, sofrer a conversão para binário. B=1 A B A B A B Para simplificar, a conversão para binário é escrita apenas expressão binária completa. B=2 A B A B A B A expressão binária completa, formada por vários termos, pode ou não precisar da conversão para binário. Tese de mestrado L.M.V.S. 29 Tese de mestrado L.M.V.S. 30 5 9/10/2013 Formas Formas Duas entradas C=C(A,B) Duas entradas C=C(A,B) Dois valores: Duas formas C1,C2 Três ê valores: l Três ê formas f C1,C C2,C C3 Quatro valores: Quatro formas C1,C2,C3,C4 Tese de mestrado L.M.V.S. 31 Dois valores: C1=C1(c0) C2=C2(c1) c0=c0(A,B) c1=c1(A,B) Três valores: C1=C1(c0,c1) C2=C2(c1,c2) C3=C3(c2,c0) c0=c0(A,B) c1=c1(A,B) c2=c2(A,B) Quatro valores: C1=C1(c0,c1,c2) C2=C2(c1,c2,c3) C3=C3(c2,c3,c0) C4=C4(c3,c0,c1) c0=c0(A,B) c1=c1(A,B) c2=c2(A,B) c3=c3(A,B) Tese de mestrado L.M.V.S. Conectivos Conectivos Três ou Quatro valores Três ou Quatro valores 1o 2o forma c0() c1() c0 c1 c1() c2() c1 c2 c2() c0() c2 c0 Três valores C1 C2 C3 Entre as sub-funções binárias (termos), usar o operador que não foi utilizado entre os termos das duas sub-funções, ou seja, o operador para o qual os valores analisados nos dois termos são o secundário e o indiferente, respectivamente. Tese de mestrado L.M.V.S. 2o 3o C1 C2 C3 C4 forma c0() c1() c2() (c0c1) c2 33 c1() c2() c3() (c1c2) c3 c2() c3() c0() (c2c3) c0 c3() c0() c1() Tese de mestrado (c3c0) c1 L.M.V.S. 34 Formas Origem dos irrelevantes Exemplo para C1 Quatro valores Sem Com C irrelevantes irrelevantes C C1 C2 C3 C1 C2 C3 C4 Tese de mestrado 1o Quatro valores Duas entradas C=C(A,B) Três valores c0 c c1 c1 a c2 c2 b c0 32 c0* c c1 c1* a c2 c2* b c0 C1 ( c0 c1 ) c2 0 ( 0 1 ) 2 1 ( 1 1 ) 2 (c2 a c3) b c0 (c2** a c3*) b c0 2 ( X 0 2 ) 2 (c3 b c0) c c1 (c3** b c0*) c c1 3 ( X 0 X 1 ) 3 Sem irrelevantes Com irrelevantes ( 0 c c1) (c0 1) d c2 2 (c0** ( 0** c c1*) 1*) d c22 (c1 d c2) a c3 (c1** d c2*) a c3 L.M.V.S. 35 Tese de mestrado L.M.V.S. 36 6 9/10/2013 Formação de linhas e colunas completas Etapas da minimização 1. Uso de irrelevantes* 2. Formação de linhas e colunas completas** 3 Eliminação 3. Eli i ã da d conversão ã para binário 4. Escolha da menor forma** A formação de linhas e colunas completas é a técnica de minimização mais intuitiva de todas, exigindo “ i í i ” por parte “raciocínio” t da d máquina. á i Utiliza o algorítimo mais sofisticado do programa, que requeriu grande parte do tempo total de desenvolvimento do produto. * Somente para 3x2 e 4x2 ** Somente para duas ou mais entradas Tese de mestrado L.M.V.S. 37 Tese de mestrado L.M.V.S. Exemplo C Exemplo – C1 A= 0 A= 1 A= 2 A= 3 B=0 0 1 1 2 3 2 3 B=2 0 0 1 3 B=3 3 0 1 3 Tese de mestrado C 2 B=1 0 2 0 3 L.M.V.S. 39 1 3 0 0 c0** 1 2 1 1 C 1 3 0 0 Tese de mestrado 2 3 3 3 1 1 2 X 1 1 X 1 L.M.V.S. 0 1 1 X X X X X 0 0 1 X X 0 1 X L.M.V.S. 40 Exemplo – C1 C c1* 1 2 1 1 2 3 3 3 Tese de mestrado Exemplo – C1 0 2 0 3 38 1 2 1 1 0 2 0 3 2 X X X 41 1 3 0 0 Tese de mestrado c2 1 2 1 1 2 3 3 3 2 2 2 3 L.M.V.S. 2 3 2 2 2 2 2 2 2 3 3 3 42 7 9/10/2013 Exemplo – C1 Exemplo – C1 substituição dos irrelevantes tabelas binárias c0** c0** c1* 0 1 1 X 1 X 0 X 1 X 1 X 1 0 0 1 X 1 X 0 0 1 X 1 Tese de mestrado 1 1 2 X 1 1 1 X 1 1 1 2 1 1 2 X 2 X 1 X 1 L.M.V.S. 43 1 1 0 0 1 1 1 1 1 2 1 1 Tese de mestrado 1 1 1 1 1 2 1 1 c2 2 2 1 1 2 2 2 3 2 3 2 2 formação das sub-expressões binárias 1 1 1 1 A A A/ b //B 1 1 1 1 c1* 1 2 1 1 A/ b /B Tese de mestrado L.M.V.S. 1 1 1 1 /A c B/ 1 2 1 1 2 2 1 1 /A c /B B/ /B c1*=(/A c /B) b (A/ c /B) b A b B/ b //B b 2 45 Tese de mestrado L.M.V.S. 46 Exemplo – C1 Exemplo – C1 formação das sub-expressões binárias conversão para binário //B 2 3 2 2 2 2 2 2 A c2 2 3 3 3 Pelas regras para eliminação da conversão para binário, binário pode-se pode se concluir, que c1* e c2 não precisam de conversõa para binário. c0**=(A/ b //B)a(A/ b /B)aAa1 c2=(//A d /B) c (//A d B) c (/A d B) c (/A d B/) c A c //B c3 Tese de mestrado 2 3 3 3 44 formação das sub-expressões binárias 1 1 0 0 2 2 2 2 L.M.V.S. Exemplo – C1 c0**=(A/ b //B)a(A/ b /B)aAa1 2 2 2 3 c1* 1 1 1 1 Exemplo – C1 c0** 0 0 0 0 0 0 0 0 L.M.V.S. c1*=(/A c /B) b (A/ c /B) b A b B/ b //B c2=(//A d /B) c (//A d B) c (/A d B) c (/A d B/) c A c //B 47 Tese de mestrado L.M.V.S. 48 8 9/10/2013 Exemplo – C1 Exemplo – C1 escolha da menor forma c0**=(A/ b //B)a(A/ b /B)aAa1 c1*=(/A c /B) b (A/ c /B) b A b B/ b //B c2=(//A d /B) c (//A d B) c (/A d B) c (/A d B/) c A c //B C1 = { [ (A/ b //B) a (A/ b /B) a A a 1 ] c [ (/A c /B) b (A/ c /B) b A b B/ b //B ] } d [ (//A d /B) c (//A d B) c (/A d B) c (/A d B/) c A c //B ] C2 = { [ (A/ c /B) b A b B/ b //B ] d [ (//A d /B) c A c //B ] } a [ (//A a B/) d (A/ a B) d /A d A d //B ] C3 = { [ (//A d /B) c A c //B ] a [ (A/ a B) d A d //B ] } b [ (A/ b //B) a (A/ b /B) a A a /A a B/ ] C4 = { [ (A/ a B) d A d //B ] b [ (A/ b //B) a (A/ b /B) a A a /A a B/ ] } c [ (/A c /B) b (A/ c /B) b (//A c B) b A b B/ b //B ] Tese de mestrado L.M.V.S. 49 Tese de mestrado Cores Padrão 1 Tese de mestrado L.M.V.S. 50 Cores Padrão 2 L.M.V.S. 51 Tese de mestrado Conclusão L.M.V.S. 52 Perspectivas O programa realiza exatamente o procedimento determinado pela técnica de síntese empregada, fornecendo a expressão minimizada de maneira intuitiva e fácil de compreender, permitindo ao usuário, caso deseje, obter mais informações sobre as etapas da síntese. • Interação com ELOmv • Opção por grafia do ELOmv • Possibilidade de uso de i l irrelevantes MVL • Possibilidade de uso de apenas um tipo de conectivo A execução da síntese é feita em tempo real, ou seja, durante a digitação da tabela, levando apenas algumas frações de segundo. O aplicativo funciona bem nos ambientes Windows95™, Windos98™ e Windows2000™ e requer poucos recursos de hardware, podendo ser utilizado em equipamentos antigos, como por exemplo, 80486 100MHz. Tese de mestrado L.M.V.S. 53 Tese de mestrado L.M.V.S. 54 9