Introdução9.1
Hoje, utilizaremos o Logisim-evolution, uma ferramenta padrão no ensino de sistemas digitais, pois, nos permite testar a teoria da disciplina em tempo real.
Primeiro, você deve dominar a ferramenta de simulação, entendendo como manipular entradas, saídas e conexões através de um exemplo prático inicial. Segundo, você provará empiricamente um conceito fundamental da álgebra booleana: a equivalência lógica. Veremos juntos que uma mesma função pode ser implementada por dois circuitos visualmente distintos: a Soma de Produtos (SOP) e o Produto de Somas (POS) que produzem exatamente o mesmo resultado para qualquer combinação de entrada.
Logisim-evolution9.2
Ao iniciar o software, você encontrará a área de trabalho (Canvas), que simula uma protoboard infinita. É crucial que você entenda a distinção funcional das ferramentas agora, para evitar frustrações comuns durante a montagem. Abrindo o programa você deve ver algo semelhante à imagem abaixo (v4.0.0).

Localizada no topo da janela, a barra define como o seu mouse interage com o circuito. Existem dois modos principais que você alternará constantemente:
- Ferramenta de Edição (Seta Preta):
Esta é a sua ferramenta de construção "com o circuito desligado". Utilize-a para selecionar componentes, mover peças e, principalmente, criar conexões (fios) clicando e arrastando de um ponto a outro. Se você precisar corrigir um erro de ligação, é com esta ferramenta que você selecionará o fio para deletá-lo. - Ferramenta de Simulação (Mãozinha / "Poke"):
Esta ferramenta coloca o circuito em modo interativo, "ligando a energia". Utilize-a para alternar o estado das chaves (0 para 1 e vice-versa) e testar seu circuito em tempo real. Lembre-se: se você tentar clicar em uma chave com a seta preta, você apenas a selecionará, sem alterar seu valor. Para interagir, use sempre a mãozinha.
Na eletrônica digital, a direcionalidade é fundamental. O sinal flui da entrada para a saída, nunca o contrário. Podemos adicionar entradas e saídas com os elementos abaixo:
- Input Pin (Entrada):
Representado por uma seta ou um quadrado (geralmente verde). Ele atua como uma chave ou sensor. Você, como usuário, define o valor dele (0 ou 1) usando a ferramenta de simulação. - Output Pin (Saída):
Representado por uma seta virada ou um círculo. Ele atua como um LED ou ponta de prova. Você não pode mudar o valor dele clicando; ele é um elemento passivo que apenas exibe o resultado do processamento lógico realizado pelo seu circuito.
Circuito Simples (AND)9.3
Antes de avançarmos para problemas complexos, vamos garantir que você domina a mecânica básica de conexão. Para isso, implementaremos a função mais fundamental da lógica digital: $S = A \cdot B$ (AND).
Inserção: Na barra de ferramentas, clique no ícone do Input Pin e clique no Canvas para criar uma entrada, faça isso duas vezes para termos duas entradas distintas.

Propriedades e Nomes: Selecione o primeiro input com a Seta Preta. Olhe para a tabela de propriedades no canto inferior esquerdo da tela. Encontre o campo Label e digite
A. Repita o processo para o segundo pino, nomeando-oB. A documentação correta começa aqui; sem nomes, um circuito grande se torna ilegível rapidamente.
Lógica: No menu lateral esquerdo (Árvore de Componentes), abra a pasta Gates e selecione a porta AND. Coloque-a no Canvas à direita das entradas.

Wiring (Cabeamento): Aproxime o mouse do ponto de conexão do pino
Aaté ver um pequeno círculo verde brilhar. Clique e arraste até a entrada superior da porta AND. Faça o mesmo para conectarBà entrada inferior.
Saída: Insira um Output Pin e conecte-o à saída da porta AND.

Teste: Selecione a ferramenta Poke (Mãozinha). Clique nas entradas
AeB. O LED acende apenas quando ambas as chaves estão ligadas (1 e 1).
Esse processo simples pode ser seguido para implementar o restante desse laboratório, conforme formos avançando na disciplina iremos aprender e utilizar alguns conceitos mais avançados do logisim-evolution.
Entretanto, uma coisa útil desde o início e poder criar vários circuitos em um mesmo arquivo do programa para, por exemplo, salvar todos circuitos desse laboratório em apenas um arquivo e não em vários arquivos distintos. Para isso, na barra lateral (onde clicou para selecionar a porta AND) clique com o botão direito no nome do seu arquivo (se não tiver salvo ainda aparecerá como Untitled) vá em "Add circuit" e dê um nome. Para trocar de circuito basta dar dois cliques com o botão esquerdo do mouse sobre o circuito desejado.
Roteiro9.4
Agora que temos uma noção básica sobre a interface do programa, realizaremos três exercícios rápidos para fixar a manipulação de portas lógicas e a estrutura das expressões booleanas.
Exercício 19.4.1
A forma SOP é caracterizada por uma camada de portas AND (que realizam os produtos lógicos) alimentando uma única porta OR (que realiza a soma lógica). Vamos implementar a função simples $S = (A \cdot B) + C$.
- Insira três Input Pins e nomeie-os como
A,BeC. - Arraste uma porta AND e conecte
AeBàs suas entradas. Isso isola o termo $(A \cdot B)$. - Arraste uma porta OR. Conecte a saída da porta AND em uma das entradas da OR.
- Conecte a entrada
Cdiretamente na outra entrada da porta OR. - Finalize conectando um Output Pin à saída da OR.
- Use a ferramenta de simulação. Note que se $C=1$, a saída deve acender imediatamente, independente do estado de A e B. Isso ocorre porque, na porta OR, basta uma entrada verdadeira para ativar a saída.
O circuito resultante deve ser parecido com o esquema abaixo:
Exercício 29.4.2
A forma POS opera pela lógica dual: uma camada de portas OR (somas) alimenta uma porta AND (produto). Implemente a função $S = (A + B) \cdot C$.
- Crie novas entradas
A,B,Cem uma área limpa do Canvas. - Utilize uma porta OR para somar
AeB. - A saída dessa OR deve entrar em uma porta AND.
- A entrada
Cdeve ser conectada à outra perna da porta AND. - Para o LED acender, você precisa obrigatoriamente que $C=1$ E que a soma $(A+B)$ também seja verdadeira. Perceba como a porta AND final atua como um "porteiro", exigindo que todas as condições (somas) anteriores sejam satisfeitas.
O circuito resultante deve ser parecido com o esquema abaixo:
Exercício 39.4.3
Considere a pequena tabela-verdade abaixo para um circuito de duas entradas:
$$ \begin{array}{c|c||c} A & B & S \\ \hline 0 & 0 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \\ \end{array} $$
Se você observar os mintermos (as linhas onde a saída é 1), temos as linhas 1 ($A=0, B=1$) e 2 ($A=1, B=0$). A expressão SOP extraída é $S = \bar{A}B + A\bar{B}$ ou ainda $S = \sum m(1, 2)$.
Implemente este circuito no Logisim. Diferente dos anteriores, aqui você precisará de portas NOT para criar os sinais barrados ($\bar{A}$ e $\bar{B}$) antes de eles entrarem nas portas AND, você poderá arrastá-las para a área de trabalho assim como fez para a porta AND. Este circuito é a famosa porta XOR (Ou-Exclusivo), essencial em operações aritméticas binárias.
Exercício 49.5
Agora que você domina a construção, vamos ao objetivo principal do laboratório: provar que as formas canônicas SOP e POS, embora diferentes visualmente, são logicamente idênticas. Utilizaremos a seguinte especificação (Tabela-Verdade):
$$ \begin{array}{c|c|c|c|c} \textbf{Índice} & \mathbf{A} & \mathbf{B} & \mathbf{C} & \textbf{Saída } f(A,B,C) \\ \hline \mathbf{0} & 0 & 0 & 0 & \mathbf{0} \\ \mathbf{1} & 0 & 0 & 1 & \mathbf{1} \\ \mathbf{2} & 0 & 1 & 0 & \mathbf{0} \\ \mathbf{3} & 0 & 1 & 1 & \mathbf{1} \\ \mathbf{4} & 1 & 0 & 0 & \mathbf{0} \\ \mathbf{5} & 1 & 0 & 1 & \mathbf{1} \\ \mathbf{6} & 1 & 1 & 0 & \mathbf{1} \\ \mathbf{7} & 1 & 1 & 1 & \mathbf{0} \\ \end{array} $$
Circuitos complexos viram um "espaguete" de fios rapidamente, o que dificulta a identificação de erros. Para evitar isso, utilizaremos uma técnica muito famosa: o barramento. Isso organiza os sinais disponíveis como se fossem trilhos de energia.
- Insira 3 entradas no topo da tela ($A, B, C$) e mude a propriedade Facing para South (Sul).
- Puxe fios longos verticais para baixo a partir de cada entrada.
- Insira portas NOT conectadas a cada linha principal e crie linhas verticais paralelas para os sinais invertidos ($\bar{A}, \bar{B}, \bar{C}$).
- Ao final, você terá 6 "trilhos" verticais disponíveis ($A, \bar{A}, B, \bar{B}, C, \bar{C}$) para conectar qualquer porta ao longo do circuito. Semelhante à imagem abaixo:

Além da organização visual, essa técnica garante a integridade do teste: ao conectar ambos os circuitos (SOP e POS) a este mesmo barramento, garantimos que eles recebam exatamente os mesmos sinais de entrada simultaneamente.
Agora que temos o barramento, vamos começar a montar os circuitos. Iremos montar o mesmo circuito duas vezes, entretanto, uma na forma SOP e outra na forma POS. Iremos começar com a forma SOP, focando apenas nas linhas onde a Saída é 1. Olhando a tabela, identificamos os índices 1, 3, 5 e 6.
Lembre-se da regra dos mintermos: queremos criar uma porta AND que detecte uma combinação específica. Se a entrada na tabela é 0, usamos a variável barrada (para que o 0 vire 1 e ative a AND); se é 1, usamos a normal.
- $m_1 (001) \to \bar{A}\bar{B}C$
- $m_3 (011) \to \bar{A}BC$
- $m_5 (101) \to A\bar{B}C$
- $m_6 (110) \to AB\bar{C}$
Implemente isso usando 4 portas AND conectadas aos trilhos do seu barramento. Para colocar 3 entradas em cada porta, clique em cima da porta com o botão esquerdo do mouse e vá na opção "Number of Inputs" no menu lateral de propriedades. Por fim, todas as saídas das portas AND devem entrar em uma grande porta OR de 5 entradas. Nomeie a saída final dessa OR como Saida_SOP.
Agora, para forma POS, focamos nas linhas onde a Saída é 0 (índices 0, 2, 4 e 7). Aqui a lógica é inversa (Dualidade): queremos bloquear as combinações indesejadas. Se a variável na tabela é 1, nós a invertemos para que ela chegue como 0 na porta OR (lembre-se que a porta OR só resulta em 0 se todas as entradas forem 0).
- $M_0 (000) \to (A + B + C)$
- $M_2 (010) \to (A + \bar{B} + C)$
- $M_4 (100) \to (\bar{A} + B + C)$
- $M_7 (111) \to (\bar{A} + \bar{B} + \bar{C})$
Implemente usando 4 portas OR de 3 entradas. Conecte as saídas dessas portas OR em uma única porta AND final. Nomeie a saída como Saida_POS. O resultado final deve ser algo parecido com à imagem abaixo: 
Agora você tem dois circuitos distintos no mesmo canvas, ambos alimentados pelo mesmo barramento. Selecione a ferramenta de simulação (mãozinha) e teste todas as 8 combinações da tabela verdade (000 até 111).
Observe os LEDs de saída. Se o projeto estiver correto, Saida_SOP e Saida_POS devem acender e apagar em perfeita sincronia. Se em algum momento um acender e o outro não, revise suas conexões naquele termo específico.
Questões9.6
Para garantir que você realmente dominou o Logisim e os conceitos de formas canônicas, tente resolver os desafios abaixo.
Implemente a função abaixo. Note que o primeiro termo tem apenas duas variáveis, enquanto o segundo tem três. $$S = \bar{A}B + A\bar{B}C$$ Dica: Você precisará de uma porta AND de 2 entradas e outra de 3 entradas. A porta OR final receberá o resultado de ambas.
Implemente a função POS a seguir, atentando-se aos parênteses. $$S = (A + \bar{B}) \cdot (\bar{A} + C)$$ Dica: Construa primeiro os blocos dentro dos parênteses usando portas OR, depois una tudo com uma AND.
Você foi contratado para criar um circuito que vota "Sim" (1) sempre que a maioria das entradas for 1. Observe a tabela verdade abaixo e desenhe o circuito no Logisim usando a forma SOP (foque nos 1s).
$$ \begin{array}{c|c|c|c|c} \textbf{Índice} & \mathbf{A} & \mathbf{B} & \mathbf{C} & \textbf{Saída} \\ \hline \mathbf{0} & 0 & 0 & 0 & 0 \\ \mathbf{1} & 0 & 0 & 1 & 0 \\ \mathbf{2} & 0 & 1 & 0 & 0 \\ \mathbf{3} & 0 & 1 & 1 & 1 \\ \mathbf{4} & 1 & 0 & 0 & 0 \\ \mathbf{5} & 1 & 0 & 1 & 1 \\ \mathbf{6} & 1 & 1 & 0 & 1 \\ \mathbf{7} & 1 & 1 & 1 & 1 \\ \end{array} $$
Verificação: Ao testar, seu circuito deve acender o LED apenas quando duas ou mais chaves estiverem ligadas.
Próximos passos9.7
Este conteúdo ainda não foi finalizado. Assim que estiver completo, este aviso será atualizado com o link correspondente.