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