tecnologia de computadores - ubiparaujo/cadeiras/tecnologiacomput... · 2021. 1. 9. · datas:...

165
Pedro Araújo Gab. 4.12 (6.15 , 6.21) E-mail: [email protected] www.di.ubi.pt/~paraujo/TecnologiaComputadores TECNOLOGIA DE COMPUTADORES 2020-2021 Engenharia Informática(11537)

Upload: others

Post on 06-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • • Pedro Araújo

    • Gab. 4.12 (6.15 , 6.21)

    • E-mail: [email protected]

    • www.di.ubi.pt/~paraujo/TecnologiaComputadores

    TECNOLOGIA DE COMPUTADORES 2020-2021

    Engenharia Informática(11537)

    mailto:[email protected]

  • Aquisição de conhecimentos sobre as tecnologias utilizadas na construção de computadores digitais. Análise e síntese de sistemas digitais combinatórios e sequenciais. Introdução aos sistemas e arquiteturas digitais.

    No final da unidade curricular o estudante deve ser capaz de compreender o funcionamento da maioria das tecnologias e dos circuitos que compõem os computadores digitais, sendo capaz de realizar a respetiva análise e síntese.

    Objetivo

  • • Introdução dos conceitos

    • Alertas/chamadas de atenção

    • Propostas de trabalhos/desafios

    • …

    • Resolução dos trabalhos práticos

    • Pesquisas (net, etc)

    • …

    Teóricas(T) Práticas(P)

    Aulas

  • Programa (resumido)

    Aulas teóricas(T)

    tipologia: aulas hibridas, presenciais e com transmissão online por Zoom A) Introdução aos Sistemas Digitais: sistemas analógicos vs digitais, computação analógica vs computação digital, conversão A/D e D/A, representação eléctrica dos sinais digitais; B) Álgebra de Boole e Circuitos digitais: variáveis e funções lógicas, tabelas de verdade, axiomas e teoremas da álgebra de Boole, simplificação de funções; sistemas de numeração, códigos de representação, aritmética binária; circuitos combinatórios e sequenciais; C) Tecnologias: memória e periféricos;

    Aulas práticas (P)

    tipologia : aulas hibridas – grupos de trabalho de 2 alunos em que apenas 1 aluno estará presente na sala estando o outro remotamente Apresentação e resolução de trabalhos práticos usando programas de simulação de circuitos digitais (LogiSim/Tinkercad)

  • [1] Textos

    1.1) Sistemas Digitais - Princípios e Prática (3ª Edição Revista), Morgado Dias, ISBN=978-972-722-700-6, Editora FCA, 2013.

    1.2) “Computer Systems - Digital Design, Fundamentals of Computer Architecture and Assembly Language”, Ata Elahi, Springer, 2018.

    1.3) Apontamentos das aulas;

    [2] Textos on-line

    2.1) Introdução à Eletrônica para Artistas (e-book) https://www.embarcados.com.br/introducao-a-eletronica-para-artistas/

    2.2) Simulador de circuitos digitais – Logisim: http://www.cburch.com/logisim/pt/index.html

    Simulador de sistemas digitais – Tinkercad: https://www.tinkercad.com/

    2.3) Diversos pdf, simuladores, aplicativos, ...

    Apoio

    https://www.embarcados.com.br/introducao-a-eletronica-para-artistas/https://www.embarcados.com.br/introducao-a-eletronica-para-artistas/https://www.embarcados.com.br/introducao-a-eletronica-para-artistas/https://www.embarcados.com.br/introducao-a-eletronica-para-artistas/https://www.embarcados.com.br/introducao-a-eletronica-para-artistas/https://www.embarcados.com.br/introducao-a-eletronica-para-artistas/https://www.embarcados.com.br/introducao-a-eletronica-para-artistas/https://www.embarcados.com.br/introducao-a-eletronica-para-artistas/https://www.embarcados.com.br/introducao-a-eletronica-para-artistas/http://www.cburch.com/logisim/pt/index.htmlhttp://www.cburch.com/logisim/pt/index.htmlhttps://www.tinkercad.com/https://www.tinkercad.com/

  • Avaliação • Teórica(TE) (freq. + exames) = 12 valores → presencial, freq. obrigatória Data: 15 Jan 2021 , 09-11h

    • Prática(TP) = 8 valores → dois trabalhos feitos na aula, ambos obrigatórios, com entrega de um

    pequeno relatório(pode ser apenas uma folha de rosto); a nota dos trabalhos conta para todos os

    exames

    Datas: TP1(3 valores): 23,24 Nov 2020 TP2(5 valores): 18,19 Jan 2021

    • Nota Final: NF = TE + TP → Aprovação: NF >= 10

    • Em todos os elementos de avaliação poderão ser exigidas defesas de classificação

    • Mínimos: TE+TP ≥ 6 + Assiduidade ≥ 85% aulas práticas (podem faltar a duas aulas) +

    realização de todas as provas obrigatórias : caso não sejam atingidos o aluno terá NA(Não Admitido)

    ficando excluído do processo de avaliação e tendo de repetir a UC.

    • Melhoria de classificação em exame: só para TE → conta a melhor nota

    • Condicionalmente, os trabalhos práticos podem contar para o ano seguinte, dispensando o aluno das aulas práticas (não podem ser melhorados)

    • Alunos especiais (trabalhadores estudantes, etc): à partida têm de cumprir os critérios anteriores, mas devem contactar o docente para que o seu caso seja analisado

  • Aula 1

    Sistemas Analógicos vs Sistemas Digitais

  • Sistema: conjunto de dispositivos e/ou componentes interligados que desempenham uma função complexa. Sistema analógico/digital: constituído por vários blocos/dispositivos, que no conjunto desempenham determinada função. Ex1 (analógico): Televisor = circuito de imagem + circuito de som + ... Ex2 (digital): Processador = memória + controladores + unidade lógica aritmética + ... Dispositivo: circuito constituido por vários componentes que desempenha uma função simples. Ex1 (analógico): amplificadores, osciladores, ... Ex2 (digital): contadores, somadores, registos, ... Componente: cada uma das partes que constituem um dispositivo Ex: resistências, condensadores, transistores, circuitos integrados,... Circuito integrado (chip): circuito em que os diversos componentes estão integrados sobre uma mesma base (substrato ou plataforma)

    Definições

  • Sistemas analógicos vs Sistemas digitais

    Sistemas analógicos: trabalham com grandezas representadas por semelhança (analogia) entre outras grandezas diferentes, de forma proporcional entre elas. Exs: • num termómetro, uma coluna de mercúrio representa a temperatura (grandeza física) • numa balança, a posição do ponteiro representa a massa a medir • num gráfico de barras, a altura das barras representa os valores medidos ou calculados Sinal analógico: a representação das grandezas faz-se de forma contínua, podendo assumir uma infinidade de valores – por exemplo, a coluna de mercúrio do termómetro pode ocupar qualquer posição ao longo da escala. Circuito analógico: é aquele que processa sinais analógicos (em termos de entradas e saídas).

  • Sistemas analógicos vs Sistemas digitais

    f

    (E)

    Entrada

    analógica

    (S)

    Saída

    analógica

    S = f (E) , função analógica

    Temperatura ºC

    -4

    -2

    0

    2

    4

    6

    8

    10

    Sinal analógico Circuito analógico

  • Sistemas analógicos vs Sistemas digitais

    Sistemas digitais: trabalham com grandezas representadas através de dígitos (algarismos, números) que simbolizam quantidades numéricas (inteiras ou fraccionárias) Exs: • num termómetro, a temperatura é dada por um valor numérico no mostrador • numa balança, o valor medido é indicado por algarismos • num gráfico de barras, o valor medido ou calculado aparece junto à respetiva barra sinal digital: a representação das grandezas faz-se de forma discreta (por saltos), podendo assumir apenas um número finito de valores discretos – por exemplo, nos termómetros a temperatura é habitualmente indicada apenas até ao décimo de grau Celsius [ex. a temperatura pode passar de 28.3ºC para 28.4ºC, não sendo mostrados valores intermédios]. Circuito digital: é aquele que processa sinais digitais (em termos de entradas e saídas).

  • Sistemas analógicos vs Sistemas digitais

    Sinal digital Circuito digital

    Temperatura ºC

    -4

    -2

    0

    2

    4

    6

    8

    10

    F

    (E)

    Entrada

    digital

    (S)

    Saída

    digital

    S = F(E) , função digital

  • Computação

    NOTAS Computar significa somar, que é uma das quatro operações aritméticas elementares. La Pascaline (Blaise Pascal, 1642): primeira calculadora mecânica a efetuar somas/subtrações. Embora os computadores actuais realizem outras operações, as operações aritméticas permanecem como um núcleo importante de operações a executar. Vamos ver que é possível realizar estas operações usando sistemas analógicos ou digitais. O processo analógico é aqui apresentado apenas a título informativo, sendo o processo digital aquele que vai ser usado ao longo da disciplina. A ideia é realizar as operações aritméticas usando objetos de uso corrente.

  • exemplo1 : operação de multiplicação → sistema de som doméstico

    O microfone produz um sinal eléctrico fraco, proporcional à intensidade do som captado, o qual é amplificado um certo número de vezes para produzir um sinal equivalente mas de maior intensidade que é aplicado a um altifalante.

    O amplificador funciona como um multiplicador saída = entrada * factor amplificação

    microfone amplificador altifalante

    Entrada: som fraco (ex:voz) Saída: som forte (amplificado)

    exemplo2 : operação de soma → conta kilómetros (odómetro) de um automóvel de cada vez que o automóvel percorre 100m é adicionado 1 ao indicador, o qual depois vai acumulando kms, dezenas de kms, centenas de kms, etc

    Computação analógica – realizada por circuitos analógicos

  • Computação digital

    Ao contrário do caso anterior, no sistema digital trabalha-se diretamente com valores numéricos, a questão que se coloca é quais valores? No sistema decimal usamos dez algarismos representados por [0, 1, 2, … , 9], que se tornam fáceis de reconhecer e de tratar pelo homem. Se os quiséssemos usar no sistema digital, os circuitos eléctricos teriam de ser capazes de reconhecer e de trabalhar com dez valores diferentes de corrente (ou tensão), o que tecnologicamente é complicado. Mas porque usamos dez algarismos? Porque não vinte? Ou doze? Ou cinco? Ou apenas dois? (já agora, será que podia ser apenas um?). Mais à frente veremos que é possível trabalhar apenas com dois algarismos [0, 1] e ainda assim é possível realizar as mesmas operações que realizamos com os dez algarismos decimais.

  • Computação digital

    Sendo assim, os circuitos digitais apenas precisam de distinguir dois estados, designados por bit (binary digit) e que podem ser designados do seguinte modo: “0” = bit zero, Falso(False), Nada, Baixo(Low/L), OFF bit “1” = bit um, Verdade(True), Tudo, Alto(High/H), ON Vejamos como são representados os bit’s e porque assumem aquelas designações. Havendo apenas dois bit [0,1] dizemos que há apenas dois estados que é preciso distinguir. Para tal, o mais simples é considerar uma situação de tudo/nada ou ainda de existe/não existe ou em termos eléctricos, ligado/desligado. Note-se que não é importante quantificar quanto vale “tudo” ou quanto vale “existe” ou ainda quanto vale “ligado” ou “desligado”, importa apenas distinguir a situação de existir ou não existir, estar ligado ou não estar ligado, etc. Isto simplifica muito a construção dos circuitos electrónicos.

  • Em termos práticos foi necessário determinar um valor concreto para o valor da tensão a usar nos circuitos, tendo sido selecionado o valor de 5V. Assim fez-se a seguinte atribuição (há outras possibilidades que serão abordadas mais tarde):

    +5.0V

    +2.0V

    +0.8V

    0V

    valores nesta faixa [+2.0V ↔ +5.0V] correspondem ao bit “1”

    valores nesta faixa [ 0V ↔ +0.8V] correspondem ao bit “0”

    valores nesta faixa [ +0.8V ↔ +2.0V] são indeterminados, não

    devendo ser usados em circuitos digitais (zona proibida)

    Computação digital

    “0” = bit zero, Falso(False), Nada, Baixo(Low/L), OFF bit “1” = bit um, Verdade(True), Tudo, Alto(High/H), ON

    “1” = 5v

    “0” = 0v

  • Convenções possíveis: Lógica positiva: O símbolo “1” está associado ao nível de tensão mais elevado(5v) e o símbolo “0” está associado ao nível de tensão mais baixo(0v) situação mais usada. Lógica negativa: O símbolo “1” está associado ao nível de tensão mais baixo(0v) e o símbolo “0” está associado ao nível de tensão mais elevado(5v).

    Lógica Positiva Versus Lógica Negativa

  • A tecnologia digital tem várias vantagens sobre a analógica:

    • Circuitos mais simples de projetar e de entender

    • Maior imunidade ao ruído (ou seja, maior resistência a interferências)

    • Maior precisão nos cálculos efetuados

    • Mais fácil de armazenar a informação (apenas 2 bit)

    Porém, as grandezas do mundo real são praticamente todas analógicas, pelo que a utilização dos computadores digitais implica a conversão entre analógico para digital e vice-versa.

    Computação digital

  • Conversão analógico digital

    O diagrama a seguir ilustra o processo de introdução do computador digital num mundo essencialmente analógico.

    mundo real analógico

    ex: temperatura, som,

    luminosidade, velocidade ...

    obter sinal

    analógico

    (sensores) digital

    digital

    actuar

    (actuadores)

    Conversor A/D

    Analógico→Digital

    Conversor D/A

    Digital→Analógico

    Processamento

    Digital

    (computador)

  • Conversão A/D (analógico digital) Trata-se de converter sinais que variam de forma contínua ao longo do tempo, em sinais discretos.

    Para isso, são tomadas amostras a intervalos de tempos regulares do sinal analógico de entrada, as quais são convertidas para valores numéricos e armazenadas em forma de bit´s (0’s e 1’s).

    É um processo conhecido por digitalização → amostragem e quantificação.

    O número de amostras a tomar está relacionado com o tipo de sinal analógico a digitalizar. Ex: digitalizar um tema musical e guardar o resultado num certo formato (ex:MP3)

    A/D

    entrada saída

    analógica digital

    t0 t1 t2 t3 t4 t5 t6 t7 tempo

    n5

    n6

    n4

    n1 n0

    som

    0 t0 n0 (10011001)

    1 t1 n1 (11000110)

    2 t2 n2 (00110100)

    3 t3 n3 (10101101)

    . … ……………..

    amostra tempo valor(exemplo)

    (ex: ficheiro MP3)

  • Conversão D/A (digital analógico)

    Trata-se de converter valores numéricos discretos (armazenados em formas de bit’s), num sinal que varia continuamente ao longo do tempo.

    A precisão da conversão está relacionada com o número de amostras disponíveis.

    Ex: reproduzir o tema musical anteriormente digitalizado e cujas amostras foram guardadas num ficheiro de um certo formato (ex:MP3)

    0 t0 n0 (10011001)

    1 t1 n1 (11000110)

    2 t2 n2 (00110100)

    3 t3 n3 (10101101)

    . … ……………..

    amostra tempo valor (exemplo)

    (ex: ficheiro MP3)

    D/A

    entrada saída

    digital analógica

    t0 t1 t2 t3 t4 t5 t6 t7 tempo

    n5

    n6

    n4

    n1 n0

    som

  • Aula 2

    Álgebra de Boole

  • Álgebra de Boole

    Em 1854, o matemático Inglês George Boole desenvolveu um conjunto de regras algébricas durante a sua investigação sobre as leis fundamentais da mente humana associadas ao raciocínio Álgebra de Boole Em 1938, Claude Shannon dos Bell Laboratories, adaptou a Álgebra de Boole à utilização em circuitos digitais.

    Variáveis e Funções Booleanas / Variáveis e Funções Lógicas • São apenas usados dois valores: 1(verdade) e 0(falso)

    • As variáveis são designadas por variáveis de Boole, variáveis boolenas, variáveis lógicas ou binárias;

    • Uma variável lógica é uma variável cujo domínio compreende 2 valores lógicos, representados pelos símbolos 0 e 1;

    • Uma função lógica, função de Boole, função boolena ou função binária é uma função cujo domínio e contradomínio (entradas/saídas) são constituídos pelo conjunto formado pelos símbolos {0 , 1}.

    George Boole (1815-1864)

    Claude Shannon (1916-2001)

    Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

  • • As tabelas de verdade podem representar qualquer função lógica;

    • Uma tabela de verdade é um quadro formado por tantas colunas quantas as variáveis de uma dada função (variáveis de entrada ou independentes) mais a coluna correspondente à função (variável de saída ou dependente);

    • Tipicamente as funções lógicas comportam diversas variáveis de entrada para apenas uma variável de saída (embora estas também possam ser várias);

    • As linhas da tabela de verdade representam todas as combinações possíveis das variáveis de entrada da função: N variáveis de entrada originam M=2N combinações possíveis;

    Tabelas de Verdade

    Ex: Tabela de Verdade A, B : duas variáveis de entrada → N=2 combinações possíveis → M=2N= 4 S : função ou variável de saída

    entrada saída

    4 combinações possíveis

  • As funções lógicas elementares são:

    • identidade (igualdade)

    • negação, complementação, inversão: NÃO → NOT

    • conjunção, intersecção, produto lógico: E → AND

    • disjunção, reunião, soma lógica: OU → OR

    A partir destas funções elementares é possível definir outras funções básicas:

    • NÃO E / NOT AND → NAND

    • NÃO OU / NOT OR → NOR

    • OU EXCLUSIVO / EXCLUSIVE OR → XOR

    Funções Lógicas Elementares

    As funções NÃO E (NAND) e NÃO OU (NOR) dizem-se completas (universais) devido ao facto de

    ser possível construir qualquer função lógica apenas com uma destas funções.

  • Função Identidade (Igualdade)

    S(A) = A : saída igual à entrada

    Tabela de Verdade/Símbolo

    Funções Lógicas Elementares

    Função Interseção (Produto Lógico)

    S(A, B) = A.B → AND : verdade se e só se todas as entradas forem verdade

    Tabela de Verdade/Símbolo

    Função Reunião(Soma Lógica)

    S(A, B) = A+B → OR : verdade desde que pelo menos uma entrada seja verdade

    Tabela de Verdade/Símbolo

    A S

    A S

    A S

    A S B

    A S B

    Função Negação (Complementação ou Inversão)

    S(A) = A → NOT : saída é o inverso da entrada

    Tabela de Verdade/Símbolo

  • Funções Lógicas Básicas

    Função OU EXCLUSIVO (EXCLUSIVE OR) →

    XOR:

    saída é verdade se o nº de entradas verdade for ímpar

    A S B

    A S B

    A S B

    Função NÃO E → NAND: S(A, B) = A.B

    corresponde à negação da função AND

    Função NÃO OU → NOR: S(A, B) = A + B

    corresponde à negação da função OR

    A S B

    simplificando:

  • Funções Lógicas – interpretação física

    Convenções

    interruptor aberto = 0 interruptor fechado = 1

    lâmpada apagada = 0 lâmpada acesa = 1

    - Fonte de alimentação + (pilha, bateria,...)

  • Funções Lógicas - interpretação física : AND

    Função AND : S(A, B) = A.B A S B

    Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

  • Função AND : S(A, B) = A.B A S B

    Funções Lógicas - interpretação física : AND (cont.)

    Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

  • Funções Lógicas – interpretação física: OR

    Função OR : S(A, B) = A+B A S B

    Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

  • Funções Lógicas – interpretação física: OR (cont.)

    Função OR : S(A, B) = A+B A S B

    Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

  • Funções Lógicas – interpretação física : NOT

    A S Função NOT): S(A) = A

    Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

  • Resumo das Funções Lógicas

    Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

  • Expressões Lógicas Equivalentes, Complementares e Duais

    Duas expressões lógicas são duais quando se pode obter uma a partir da outra, nomeadamente: • transformando todos os “.” em “+” e todos os “+” em “.” • transformando todos os “0” em “1” e todos os “1” em “0” • mantendo as ocorrências das variáveis

    ex: 1.A + B.C + 0 ←duais→ (0+A) . (B+C) . 1

    Duas expressões lógicas (S1,S2) são complementares quando para todas as combinações possíveis nas respetivas tabelas de verdade (linhas), se tem S1=S2 (S1=0/S2=1, ou, S1=1/S2=0), ou seja, todas as linhas são complementares.

    Uma expressão lógica é um conjunto de variáveis lógicas e constantes lógicas (0, 1) associadas entre si pelas funções lógicas elementares (“.” e “+”). A existência de uma variável ou do respetivo complemento é designada por ocorrência ou literal.

    ex: S = A.B + B.1 + C.0

    Duas expressões lógicas (S1,S2) são equivalentes quando para todas as combinações possíveis nas respetivas tabelas de verdade (linhas), se tem S1=S2 (S1=S2=0, ou, S1=S2=1), ou seja, todas as linhas são iguais. Se S1≠S2 em pelo menos uma linha, então S1 e S2 não são equivalentes.

  • Formas Canónicas

    forma canónica (geral): de uma função booleana é qualquer soma de produtos ou produto de somas em que cada um dos termos envolve todas as variáveis, em forma direta ou complementada. As formas canónicas são úteis na análise de circuitos lógicos, nomeadamente para a simplificação de funções lógicas, usando métodos gráficos ou numéricos. forma canónica soma de produtos: quando a expressão de uma função lógica é constituída por somas lógicas de produtos lógicos que contêm todas as variáveis lógicas da função. Esta forma canónica é também designada por primeira forma canónica, sendo os produtos designados por mintermos.

    Exemplo: S(A,B,C) = A . B . C + C . B . A + B . A . C forma canónica produto de somas: quando a expressão de uma função lógica é constituída por produtos lógicos de somas lógicas que contêm todas as variáveis lógicas da função. Esta forma canónica é também designada por segunda forma canónica, sendo as somas designadas por maxtermos.

    Exemplo: S(A,B,C) = (A+B+C ) . ( A +B+C) . ( A +B+C )

  • Formas Mínimas

    forma mínima: aquela em que o somatório do número de termos e de literais é mínimo. São usadas para implementar(construir) os circuitos da forma o mais simples possível. forma mínima soma de produtos: quando a função lógica é constituída por uma soma de produtos tal que o somatório do número de produtos e do número de literais é mínimo.

    exemplo: S(A,B,C) = A . B . C + B . C

    forma mínima produto de somas: quando a função lógica é constituída por um produto de somas tal que o somatório do número de somas e do número de literais é mínimo.

    exemplo: S(A,B,C)= (B+C).(B +C).(A +C) Notas: 1) a forma mínima de uma função lógica não é necessariamente única nem conduz necessariamente à implementação mais simples. 2) a engenharia de sistemas digitais tem por objetivo a implementação de circuitos que executem as funções desejadas a um custo mínimo. 3) a minimização (obtenção das formas mínimas) da implementação de funções lógicas constitui uma fase importante do projeto de sistemas digitais.

  • Aula 3

    Álgebra de Boole – axiomas e teoremas

  • Axiomas e Teoremas da Álgebra de Boole

    Axioma: afirmação aceite como óbvia e verdadeira, que não é provada ou demonstrada, sendo considerada ponto de partida para a construção ou aceitação de uma teoria. Teorema: afirmação que pode ser provada como sendo verdadeira através de outras afirmações já demonstradas, como outros teoremas, ou através de axiomas.

    Provar é o processo de mostrar que um teorema está correto. Princípio da dualidade: aplica-se tanto a axiomas como a teoremas. Se tivermos um axioma/teorema relacionando variáveis lógicas, pode obter-se um outro axioma/teorema fazendo as trocas de símbolos e sinais associados (“0”↔”1” , “.”↔”+”)

    Os dois axiomas/teoremas são designados por axiomas/teoremas duais.

  • Axiomas e Teoremas da Álgebra de Boole

    Propriedades 1) A+B = B+A ; A.B = B.A comutatividade OR/AND 2.1) A.(B+C) = (A.B)+(A.C) distributividade em relação ao produto 2.2) A+(B.C) = (A+B).(A+C) distributividade em relação à soma (inválida em álgebra convencional) 3) A+B+C = (A+B)+C = A+(B+C) ; A.B.C = (A.B).C = A.(B.C) associatividade OR/AND NOTA: as funções NAND, NOR e XOR não são associativas ( ex: A.B.C ≠ (A.B) . C ) (ex. A=0,B=0,C=1) Precedências: o produto tem precedência sobre a soma, ex: A+B.C = A+(B.C) para alterar a precedência usar parêntesis ex: (A+B).C

    1) Seja A uma variável lógica A=0 ou A=1 (A=0 se A≠1 , A=1 se A≠0)

    2) produto lógico (AND) 0.0 = 0 ; 0.1 = 1.0 = 0 ; 1.1 = 1 3) soma lógica (OR) 0+0 = 0 ; 0+1 = 1+0 = 1 ; 1+1 = 1 4) complemento, negação (NOT) 0 = 1 ; 1 = 0

  • Axiomas e Teoremas da Álgebra de Boole

    1) A+A = A ; A.A = A (idempotência)

    2) A+0 = A ; A.1 = A (0=elemento neutro soma lógica; 1=elemento neutro produto lógico)

    3) A+1 = 1 ; A.0 = 0 (1=elemento absorvente soma lógica ; 0=elemento absorvente produto lógico)

    4) A = A (involução)

    5) A+A = 1 ; A.A = 0 (complementos)

    6) A+A.B = A ; A.(A+B) = A (absorção) [prova: A+A.B = A.(1+B) = A.1 = A]

    7) A.B+A.B = A ; (A+B).(A+B) = A (adjacência) [prova: A.B+A.B = A.(B+B) = A.1 = A]

    8) A+A.B = A+B ; A.(A+B) = A.B (redundância) [prova: ? ]

    NOTA: existem outros teoremas para além dos apresentados a seguir

  • Leis de DeMorgan

    O Teorema de DeMorgan estabelece um procedimento para complementar funções lógicas:

    Fonte: José Augusto Baranauskas, Departamento de Computação e Matemática – FFCLRP-USP

    A . B = A + B A + B = A . B ou A . B = A + B A + B = A . B

  • Extensão a 3 (ou mais) variáveis

    AND: S(A, B, C) = A.B.C = (A.B).C

    OR: S(A, B, C) = A+B+C = (A+B)+C

    A B B S C

    A B S C

    A

    B S

    C

    A

    B S

    C

    A.B.C = A + B + C A . B . C= A + B + C A + B + C = A . B .C A + B + C= A . B . C

    Leis de DeMorgan

    =

    =

  • NOT a partir de NAND / NOR

    A S Função NOT): S(A)= A

    A S

    NAND: S(A, B)= A.B , se B=A A.A = A

    NOR: S(A, B)= A + B , se B=A A+A = A

    A S

    A S

    A S

    A S

    = =

  • AND/OR a partir de NAND / NOR

    A S B

    = A S B

    AND: S(A, B)= A.B = A.B A S B

    A S B

    = A S B

    A S B

    A S B

    A S B

    OR: S(A, B)= A+B = A+B

  • Leis de DeMorgan

    A . B = A + B A + B = A . B → A . B = A + B A + B = A . B

    A B = S =

    A B

    S

    A B

    S

    A B =

    S =

    A B

    S

    A B

    S

    → ???

  • Análise de circuitos digitais

    Análise: processo de decomposição de uma substância ou tópico complexo nos seus diversos elementos constituintes, a fim de se obter uma melhor compreensão do seu funcionamento. Circuitos digitais • A todo o circuito digital corresponde uma expressão booleana.

    • Um circuito, por mais complexo que seja, é composto pela interligação de blocos lógicos básicos.

    • Para obter a expressão lógica nas saídas de um circuito digital, parte-se das entradas em direção às saídas, escrevendo na saída de cada porta lógica a expressão equivalente.

  • Análise de circuitos digitais

    Ex: obter as expressões booleanas e a tabela de verdade geradas pelo seguinte circuito lógico:

    A

    C S

    D

    = A . (C + D)

    Tabela de verdade Tabela de verdade simplificada

  • Síntese de circuitos digitais

    Síntese: reunião de vários elementos de modo a formar um todo unificado e coerente. Circuitos digitais • Síntese de um circuito digital: dada uma expressão booleana obter um circuito lógico correspondente;

    • As expressões boolenas são obtidas a partir do enunciado do problema a resolver, regra geral em forma de tabelas de verdade.

  • Problema: controlo do Limpa-Pára-Brisas (LPB) de um automóvel

    Um automóvel tem um sistema de LPB controlado por uma alavanca de comutador (C) junto ao volante , além de dispôr de um sensor de chuva (S) colocado no vidro.

    O LPB deve atuar sempre que estando ligada a chave da ignição(I), o condutor tenha ligado o comutador(C) ou o sensor(S) detete chuva.

    Síntese de circuitos digitais

    Tabela de Verdade: contém todas as combinações possíveis de I, C e S, além da saída LPB N=3 variáveis M = 2N = 23 = 8 casos possíveis

    Variáveis lógicas

    Entrada Saída

    I : chave ignição 0=desligada 1=ligada LPB: escovas do limpa-pára-brisas C : comutador manual 0=desligado 1=ligado 0=parado 1=a funcionar S : sensor de chuva 0=não chove 1=chove

    (tabela simplificada)

  • Síntese de circuitos digitais

    Extração da expressão do circuito mintermos : extração pelos “1’s” da função (combinações aonde a função vale “1”) → obtém-se uma expressão canónica do tipo AND-OR (soma de produtos)

    I . C . S

    Regras para extração dos termos

    1) considerar apenas as linhas aonde a função vale “1”

    2) cada linha vai dar origem a um termo produto

    3) para cada variável de entrada:

    3.1) se essa variável vale “1” entra diretamente no termo

    3.2) se a variável vale “0” então negada no termo

    I . C . S I . C . S

    Tabela de Verdade

    Circuito resultante diretamente da expressão... bastante complexo!

    LPB = I . C . S + I . C . S + I . C . S (forma canónica)

  • Síntese de circuitos digitais

    Circuito digital correspondente (muito mais simples que o anterior) LPB = I . ( S + C )

    Simplificar a expressão obtida: obtenção de uma forma mínima

    LPB = I . C . S + I . C . S + I . C . S (forma canónica)

    I . ( C . S + C . S + C . S ) (p.distributiva)

    I . ( C . S + C . (S + S) ) (p.distributiva)

    I . ( C . S + C . 1 ) = I . ( C . S + C) (redundância)

    I . ( S + C )

  • Aula 4

    Simplificação de funções lógicas

  • Síntese de circuitos digitais(cont.)

    Extracção da expressão do circuito

    maxtermos extracção pelos “0’s” da função (combinações aonde a função vale “0”) obtém-se uma expressão canónica do tipo OR-AND (produto de somas)

    Regras para extracção dos termos 1) considerar cada linha aonde a função vale “0” 2) cada termo vai ser uma soma (OR) 3) para cada variável de entrada: 3.1) se essa variável vale “0” então entra diretamente 3.2) se a variável vale “1” então entra negada

    I + C + S

    I + C + S

    Tabela de Verdade

    Circuito resultante diretamente da expressão... bastante complexo!

    I + C + S I + C + S

    I + C + S

    LPB = (I + C + S) . (I + C + S) . (I + C + S) . (I + C + S) . (I + C + S)

  • Síntese de circuitos digitais

    Circuito digital correspondente (igual ao obtido anteriormente) LPB = I . ( S + C )

    Simplificar a expressão obtida: obtenção de uma forma mínima

    LPB = (I + C + S) . (I + C + S) . (I + C + S) . (I + C + S) . (I + C + S) (forma canónica)

    (I + C) . (I + C) . (I + C + S) (adjacência) [ (A+B).(A+B)=A ]

    I . (I + C + S) (redundância) [ A.(A+B) = A.B ]

    I . (C + S) = I . (S + C) igual à expressão anterior

  • Simplificar

    • reduzir o número de termos

    • reduzir as variáveis em cada termo

    • (converter para um único tipo de porta lógica, ex: AND,OR,NAND,NOR,...)

    Métodos 1) Algébrico: a simplificação algébrica (por aplicação das regras da Álgebra de Boole) é trabalhosa e morosa, requerendo alguma “arte”; 2) Gráfico: permitem chegar rapidamente a expressões mais simples, embora não garantam de imediato a forma mínima;

    2.1) Mapa de Karnaugh: aplicável facilmente para funções de até 4 variáveis (embora seja válido para outro nº de variáveis) 2.2) Mapa da Quine-McCluskey: para mais de 4 variáveis (embora seja válido para menos)

    Métodos de simplificação

  • Mapa de Karnaugh

    Tabela de Verdade original Tabela de Verdade reagrupada

    trocar as linhas de modo que só se altere uma variável em linhas adjacentes

    I . C . S I . C . S I . C . S

    I . C . S

    I . C . S

    I . C . S

    LPB = I . C . S + I . C . S + I . C . S LPB = I . C . S + I . C . S + I . C . S

    • Equivalente à Tabela de Verdade → duas formas de representar a mesma realidade

    • Baseia-se na aplicação sucessiva do teorema da complementação: A + A = 1

    Exs. a) X . Y + X . Y = X (Y + Y) = X . 1 = X

    b) X . Y . Z + X . Y . Z + X . Y . Z + X . Y . Z = X . Y (Z + Z) + X . Y ( Z + Z) = X (Y + Y) = X

    Problema do LPB

  • Mapa de Karnaugh

    I . C . S + I . C . S = I . C (S + S) = I . C

    I . C . S + I . C . S = I . S (C + C) = I . S

    Tabela de Verdade reagrupada

    I . C . S

    I . C . S

    I . C . S

    termos diferem em S S é eliminada

    termos diferem em C C é eliminada

    LPB = I . C + I . S

    = I (C + S)

    (expressão anterior)

    Algebricamente

    LPB = I . C . S + I . C . S + I . C . S

    = I . C . S + I . C . S + [I . C . S] + I . C . S (idempotência) - [I.C.S] vai pertencer a dois grupos

    = I . C (S + S) + I . S (C + C) (complementação)

    = I . C + I . S = I (C + S) (distributividade)

  • Mapa de Karnaugh

    Tabela de Verdade

    I . C . S

    I . C . S

    I . C . S

    LPB = I . C + I . S (não é forma mínima)

    I . (C + S) (forma mínima)

    LPB = I . C . S + I . C . S + I . C . S

    I . ( C . S + C . S + C . S)

    I . ( C ( S + S) + C . S)

    I . ( C + C . S )

    I . ( C + S )

    Mapa de Karnaugh

    S = 1

    I = 1

    I . C . S I . C . S I . C . S I . C . S

    I . C . S I . C . S I . C . S I . C . S

    0 1 1 1

    0 0 0 0

    C = 1

  • Mapa de Karnaugh Construção do mapa

    1) desenhar um quadrilátero com M=2N células, tantas quantas as linhas da tabela de verdade (N=nº de variáveis independentes) 2) numerar as células de modo correspondente às diferentes combinações das variáveis independentes, de tal forma que entre duas células adjacentes apenas varie uma delas (quadriculas adjacentes são aquelas com uma aresta comum, incluindo as dos lados exteriores do quadrilátero pois na realidade a figura é um toro)

    N=2 , M=4 N=3 , M=8 N=4 , M=16

    A

    B

    A

    B

    C A

    B

    C

    D

    Convenção: nas células abrangidas pelo traço a correspondente variável toma o valor “1” , nas restantes toma o valor “0”

    A=0 A=0 B=0 B=1 A=1 A=1 B=0 B=1

    A=0 B=1 C=0

    A=1 B=0 C=1

    A=0 B=1 C=0 D=1

    A=1 B=0 C=0 D=1

    A B

    A=1 A=0 B=0 B=1 A=1 A=0 B=0 B=1

  • Mapa de Karnaugh

    Regras do mapa 1) em cada célula do mapa coloca-se o correspondente valor da tabela de verdade;

    2) agrupam-se o maior número possível de células com valores “1” (ou “0”) adjacentes, em grupos de 2n

    células (1, 2, 4, 8, 16), até todas estarem agrupadas;

    2.1) deve considerar-se o menor número possível de grupos, desde que todas as células com “1” (ou “0”) estejam englobadas;

    2.2) cada célula com “1” (ou “0”) pode participar em mais de um grupo;

    2.3) diz-se que um grupo é primário se não está totalmente incluído noutro grupo maior; devem ser considerados apenas os grupos primários, não devendo ser considerados grupos dentro de grupos (pois são termos redundantes que não interessam para a simplificação);

    3) cada grupo dá origem a um termo do qual são eliminadas as variáveis que estão simultaneamente dentro e fora do grupo; por cada grupo de U=2V células, são eliminadas V variáveis na expressão do grupo:

  • Mapa de Karnaugh

    Exemplo: N=4 variáveis , M=24=16 combinações

    A

    B

    C

    D

    1

    1

    1 1

    1 1 1

    Tabela de Verdade Mapa de Karnaugh

    Extração da expressão do circuito, pelos mintermos:

    • extração pelos “1’s” da função (combinações aonde a função vale “1”) • obtém-se uma expressão canónica do tipo AND-OR [soma de produtos: A.B + C.D +...] • marcar no mapa as células em que a função vale “1” – agrupar segundo as regras indicadas

  • A

    B

    C

    D

    1

    1

    1 1

    1 1 1

    Mapa de Karnaugh

    grupo mais favorável, elimina 2 variáveis

    X = A . B

    células adjacentes elimina 1 variável

    Y = B . C . D

    grupo menos favorável, não elimina variáveis

    Z = A . B . C . D

    F = X + Y + Z = A . B + B . C . D + A . B . C . D (a expressão ainda pode ser simplificada)

    grupo redundante: os seus 1’s já estão

    agrupados em outros grupos

    errado! células não adjacentes

    errado! nº de 1’s não é potência de 2

    Em cada célula do grupo:

    • se uma variável muda de valor será eliminada

    • se uma variável tem o valor “1” (a célula está abrangida pelo traço) então entra diretamente

    • se toma o valor “0” (está fora do traço) então entra negada

  • Mapa de Karnaugh

    Exemplo: N=4 variáveis , M=24=16 combinações

    Tabela de Verdade

    Mapa de Karnaugh

    A

    B

    C

    D

    0

    0

    0 0

    0 0

    0

    0 0

    Extração da expressão do circuito, pelos maxtermos:

    • extração pelos “0’s” da função (combinações aonde a função vale “0”) • obtém-se uma expressão canónica do tipo OR-AND [produto de somas: (A+B) . (C+D)....] • marcar no mapa as células em que a função vale “0” → agrupar segundo as regras

  • A

    B

    C

    D

    0

    Mapa de Karnaugh

    grupo redundante: os “0’s” já estão todos

    agrupados

    0 elimina 1 variável

    Z = A + C + D 0

    0

    0 0 0

    0

    0

    elimina 1 variável

    X = B + C + D

    grupo mais favorável, elimina 2 variáveis

    Y = A + B

    elimina 1 variável

    U = A + B + D

    F = X . Y . Z . U = (B + C + D) . (A + B) . (A + C + D) . (A + B + D) (simplificar)

    Em cada célula do grupo: • se uma variável muda de valor é eliminada • se uma variável tem o valor “1” (a célula está abrangida pelo traço dessa variável) então entra negada • se toma o valor “0” (está fora do traço) então entra diretamente

  • Aula 5

    Simplificação de funções lógicas (cont.)

    Sistemas de numeração

  • Mapa de Karnaugh - exemplos

    A

    B

    A

    B

    S = A . B + A . B = A B + + S = A . B + A . B = A B

    A

    C

    B

    S = B . C + B . C = B C +

    S = B . C + B . C = B C +

    A

    C

    D

    B

    Funções XOR / NXOR

    XOR → S(A, B)= A B = A . B + A . B

    NXOR → S(A, B)= A B = A . B + A . B

    +

    +

  • Mapa de Karnaugh Funções incompletamente especificadas

    não é fornecida informação sobre todos os casos possíveis de acontecer;

    determinadas combinações das entradas não estão previstas ou são impossíveis;

    • nestas situações o resultado da função considera-se como indiferente (don’t care), sendo representado por X na tabela ou mapa de Karnaugh;

    • o valor X não é um valor lógico válido, significa apenas que de momento é um valor indiferente e que mais tarde terá de assumir um valor válido (“0” ou “1”); no mapa de Karnaugh, X será substituído pelo valor que conduzir a uma maior simplificação;

    Ex: uma barragem tem uma comporta que permite despejar a água quando em demasia. Para tal dispõe de dois sensores: C(barragem cheia) e V(barragem vazia). Pretende-se projetar um circuito para controlar o estado da comporta.

    Tabela de Verdade

    C

    V

    0 0

    1 X

    C

    V

    0 0

    1 0

    opção1 : X=0 → Comporta = C . V

    C

    V

    0 0

    1 1

    opção 2: X=1 → Comporta = C

    melhor opção que anterior

    Mapa de Karnaugh

    C

    V

    com

    po

    rta

    Entradas: C , V 0=sem água 1=com água Saída: Comporta 0=fechada 1=aberta

  • Codificação ↔ Descodificação

    Codificação

    • fazer corresponder os dados a tratar a um conjunto de sinais digitais (“0” e “1”) • representação de dados em formato binário

    ex: valores numéricos , caracteres alfanuméricos , imagens , sons , ... → valores binários

    Descodificação

    • traduzir valores binários para outras representações

    ex: valores numéricos , caracteres alfanuméricos , imagens , sons , ... ← valores binários

    Processamento

    Sistema Digital

    Interpretação

    ???

    ??? descodificação

    codificação

    http://www.google.pt/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0CAcQjRxqFQoTCLzvhe3Jv8gCFQTbGgodIP0LeA&url=http://www.freepik.com/free-photos-vectors/human-icon&psig=AFQjCNEWq2StzGRur8Ztcgou_xVN2AJI_A&ust=1444830124823781

  • Sistemas de Numeração

    Um valor N pode ser representado em decimal pela expressão:

    N = ∑ Ai Bi = An B

    n + An-1 Bn-1 + ... + A1 B

    1 + A0 B0 + A-1 B

    -1 + A-2 B-2 + ...

    B – base do sistema de numeração (ou radix = nº de algarismos da base, incluindo o zero)

    Ai – algarismos da base

    i – índice posicional do algarismo

    Bi – peso ou significância do algarismo Ai

    Notas

    1) Numa base B o algarismo de maior valor é B-1 (ex. decimal: B=10, maior algarismo 9)

    2) Se B > 10, usam-se letras para representar os algarismos de valor maior que 9

  • Exemplos de Sistemas de Numeração

    (valores inteiros) Decimal: base → B = 10 algarismos → Ai = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 } pesos → B

    i = 10i

    ex: 12810 = 1 x 102 + 2 x 101 + 8 x 100 = 100 + 20 + 8 = 128

    Binário: base → B = 2 algarismos → Ai = { 0 , 1 } pesos → B

    i = 2i

    ex: 1012 = 1 x 22 + 0 x 21 + 1 X 20 = 4 + 0 + 1 = 5

    Octal: base → B = 8 algarismos → Ai = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 } pesos → B

    i = 8i

    ex: 248 = 2 x 81 + 4 x 80 = 16 + 4 = 20

    Hexadecimal(hexa): base → B = 16 algarismos → Ai = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , A , B , C , D , E , F } pesos → Bi = 16i

    ex: 7CD16 = 7 x 162 + 12 x 161 + 13 x 160 = 1792 + 192 + 13 = 1997

  • Números em diversas bases

    TABELA – correspondência de números

    Note-se que para um certo número n de bits o maior valor decimal representado é 2n-1

    Exs: n = 3 bits , maior valor = 23-1 = 7 n = 4 bits , maior valor = 24-1 = 15(F)

  • Conversão de Bases

    I : parte inteira → divisões inteiras sucessivas por 2 - parar quando o quociente for zero - tomar restos por ordem inversa da sua obtenção

    N = I.F F: parte fraccionária → multiplicações sucessivas por 2 - parar quando se atingir nº casas decimais pretendido - tomar parte inteira dos resultados por ordem da sua obtenção

    Decimal(10) → Binário(2)

  • Conversão de Bases Exemplo Parte inteira = 37 → converter por divisões inteiras sucessivas por 2 Converter para binário N = 37.41 Parte decimal = 0.41 → converter por multiplicações sucessivas por 2

    Parte inteira

    37 2 1 18 2 0 9 2 1 4 2 0 2 2 0 1 2 1 0

    1 7

    (LSB)

    (MSB)

    Parte decimal

    37 = 1 0 0 1 0 1 (MSB) (LSB)

    0.41 * 2 0 .82 * 2 1 .64 * 2 1 .28 * 2 0 .56 * 2 1 .12

    (MSB)

    (LSB)

    tom

    ar desd

    e MSB

    até LSB

    0.41 = 0 . 0 1 1 0 1 (MSB) (LSB)

    N = 37.41 = 100101.01101

    Verificação 100101.01101 = 1x25 + 0x24 + 0x23 + 1x22 + 0x21 + 1x20 + 0x2-1 + 1x2-2 + 1x2-3 + 0x2-4 + 1x2-5 = = 32 + 0 + 0 + 4 + 0 + 1 + 0 + 0.25 + 0.125 + 0 + 0.031 = 37.406

    em cada divisão tomar nota do resto

    parar de dividir quando quociente

    for zero

    em cada multiplicação a parte inteira é

    retirada

    parar de multiplicar quando der zero, ou

    atingir a precisão pretendida

  • Conversão de Bases (cont.)

    Binário(2) → Decimal(10) : aplicar a expressão dos sistemas de numeração

    Exemplo: 1101.110002 = 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 + 1 x 2-1 + 1 x 2-2 8 + 4 + 0 + 1 + 0.5 + 0.25 = 13 + 0.75 = 13.75

    • Método Double-Dabble (evita somas com números grandes):

    – Começando pelo bit mais à esquerda mutiplicar o seu valor por 2 e somar o resultado ao bit imediatamente à direita

    – Multiplicar este resultado por 2 somando com o bit seguinte à direita

    – Repetir este processo até todos os bits estarem convertidos

    Exemplo: converter o valor binário 1101 para decimal

    1 1 0 1

    1*2=2 +1 3*2=6 +0 6*2=12 +1 13

  • Conversão de Bases (cont.)

    Decimal(10) → Hexadecimal(16) : divisões sucessivas por 16

    Hexadecimal(16) → Decimal(10) : aplicar a expressão dos sistemas de numeração

    Exemplo: 7CD16 =

    • parar quando o quociente for zero • tomar restos por ordem inversa da sua obtenção (converter cada resto para hexa)

    7 x 162 + C x 161 + D x 160 = 7 x 162 + 12 x 161 + 13 x 160 = 1792 + 192 + 13 = 1997

    (MSB)

    Exemplo: 1997 = B16 ?

    1997 16 13 124 16 12 7 16 7 0

    7

    D

    C (LSB) 1997 = 7CD16

    MSB LSB

  • Conversão de Bases

    A5216 = 1010 0101 00102 = 1010010100102

    Hexadecimal(16) ↔ Binário(2) • como cada algarismo hexa (0,1,...,F) é constituído por 4 bits (0000, 0001,..., 1111) basta converter

    em grupos de 4 bit

    11110011112 = 0011 1100 11112 = 3CF16

    ex1: hexadecimal → binário : A5216 = B2 ? ex2: binário → hexadecimal : 11110011112 = B16 ?

  • Conversão de Bases

    Decimal(10) → Binário(2) : conversão por base intermédia • a conversão por divisões sucessivas por 2 pode originar muitas iterações • converter primeiro para uma base intermédia (ex. hexadecimal) e depois para binário

    Ex: 37 = B2 ?? a) conversão direta →

    b) usando b.1) decimal → hexa → 37 = 2516 hexadecimal como base intermédia b.2) hexa → binário 2516 = 0010 01012

    37 2 1 18 2 0 9 2 1 4 2 0 2 2 0 1 2 1 0

    1 7

    (LSB)

    (MSB)

    37 16 16 5 2 0 2

    37 = 1 0 0 1 0 12 = 0010 01012 (MSB) (LSB)

  • Conversão de Bases

    Ex: 10110101012 = 0010 1101 01012 = 2D516 = 2*162 + 13*161 + 5*160 = 512+208+5=725

    2 D 5

    Binário(2) → Decimal(10) : conversão por base intermédia a aplicação da expressão dos sistemas de numeração pode originar muitas iterações

    Ex: 10110101012 = 1*29 + 0*28 + 1*27 + 1*26 + 0*25 + 1*24 + 0*23 + 1*22 + 0*21 + 1*20 = 725

    Base intermédia hexadecimal(16) – começando da direita para a esquerda, separar em grupos de 4 bits, convertendo cada grupo para o algarismo hexadecimal correspondente e depois multiplicar pela potência de 16 de modo a obter o valor decimal

    Para reduzir o número de iterações vamos efetuar a conversão por uma base intermédia.

  • Conversão de Bases

    P1) 317 = binário ?

    R1) usando a base hexadecimal como intermédia:

    1º) converter o valor decimal para hexadecimal

    Outros exemplos

    (LSB) (MSB)

    317 16 157 19 16 13 3 1 16 1 0

    D 3 1

    317 = 13D16

    317 = 13D16 = 0001 0011 11012

    P2) 100001110 2 = decimal ?

    R2) usando a base hexadecimal como intermédia:

    1º) separar em grupos de 4 digitos binários convertendo cada grupo para hexadecimal 100001110 2 = 0001 0000 1110 2 = 10E16

    2º) converter o valor hexadecimal para decimal 10E16 = 1*16

    2 + 0*161 + E*160 = 1*162 + 0*161 + 14*160 = 256 + 0 + 14 = 270

    2º) converter o valor hexadecimal para binário, convertendo cada algarismo hexadecimal em grupos de 4 digitos binários

  • Conversor online: http://www.calculadoraonline.com.br/conversao-bases

    Conversão de Bases

    Notar a conversão de 1710 para hexadecimal = 1116

    De facto 1116 = 1*161 + 1 *160 = 16 + 1 = 1710

    Verificar a conversão para as outras bases

    Tentativa de converter para binário o valor octal 1488

    Verifique que tal não é possível. Porquê?

    ?

  • Conversão de Bases Usando a calculadora do Windows : selecionar o modo Programmer

    Ex: converter 16310 para binário e hexadecimal

  • Métrica Binária

    Agrupamentos de n bits

    Decimal (base 10) → prefixo K significa 1000 = 103 (potência inteira de 10)

    Binário (base 2) → prefixo K significa 1024 = 210 (potência inteira de 2)

  • Métrica Binária

    Agrupamentos de n bytes

  • Métrica Binária

    A norma IEC 80000-13: Quantities and units – Part 13: Information science and technology , publicada em 2008 define os seguintes prefixos binários:

    Consultar: Prefixes for binary multiples - http://physics.nist.gov/cuu/Units/binary.html

    Exemplo: 1 KByte = 103 Byte = 1000 Byte (Kilo Byte) 1 KiByte = 210 Byte = 1024 Byte (Kibi Byte)

    https://en.wikipedia.org/wiki/Binary_prefix#pebi

    http://physics.nist.gov/cuu/Units/binary.htmlhttp://physics.nist.gov/cuu/Units/binary.htmlhttps://en.wikipedia.org/wiki/Binary_prefix#pebihttps://en.wikipedia.org/wiki/Binary_prefix#pebi

  • Aula 6

    Aritmética Binária

  • Aritmética Binária As operações aritméticas em binário (soma, subtração, mutiplicação, divisão) realizam-se de forma idêntica à decimal

    SOMA decimal (base 10)

    1(vai um)

    7 + 6 ------- 1 3 uma volta à

    base 10 sobrou para 10

    Tabuada da Soma em binário (base 2)

    0 0 0 1

    0 0 1 1 +0 + 1 + 0 + 1 ---- ---- ---- ---- 00 01 01 10

    Carry = quantas voltas deu à base 2 Sum = o que sobrou para a base 2

    transporte ou

    Carry

  • Aritmética Binária

    SOMA

    decimal

    1

    7 + 6 ------- 1 3

    3 bits a somar

    binário

    1 1 0

    0 1 1 1 + 0 1 1 0 ------------- 1 1 0 1

    a soma é feita coluna a coluna tendo em conta o Carry resultante da coluna anterior.

  • Aritmética Binária

    Soma: S=a+b

    1(vai um)

    a 0 0 1 1 + b +0 + 1 + 0 + 1 ---- → ---- ---- ---- ---- C S 0 0 0 1 0 1 1 0

    Carry Sum

    semi somador

    ½ +

    a

    b

    S

    C

    Tabela de Verdade

    Half - Adder

    semi-somador porque não tem em consideração o Carry da soma anterior

    Função com duas saídas: C e S

    a

    b

    S = a . b + a . b = a b + a

    b

    C = a . b

    LogiSim

  • Somador completo

    em cada coluna somam-se 3 bit: um bit por cada parcela a somar + carry da soma anterior por sua vez há saída de um bit de carry para a coluna seguinte, o qual pode ser 1 ou 0 (Ci = Carry_in Co = Carry_out Co’ e Ci’ – referem-se aos bits de carry intermédios)

    somador completo

    a

    b

    S

    Co (Carry out)

    (Carry in) Ci

    Full - Adder

    1 1 0 0

    0 1 1 1 (a) + 1 0 1 0 (b) ------------------------------ 1 0 0 0 1

    Co’=1 Co’=1

    Co=1

    Somador completo com dois semi-somadores

    semi somador

    ½ +

    a

    b

    S

    C

    semi somador

    ½ +

    a

    b

    S

    C

    Co

    Ci

    a

    b

    S

    Co’=0

    Ci =0

  • Somador completo

    somador completo

    a

    b

    S

    Co (Carry out)

    (Carry in) Ci

    Full - Adder

    LogiSim

    Desafio: usando o Logisim construa um circuito capaz de somar dois valores binários de 4 bits cada e teste o seu circuito com o exemplo anterior (para além de outros)

  • Aula 7

    Aritmética Binária(cont.): soma e subtração

  • N = 4 bit

    Somador de N bit

    1 1 0 0

    0 1 1 1 (a) + 1 0 1 0 (b) ------------------------------ 1 0 0 0 1

    Co’ Co’

    Co=1

    Co’

    Ci=0

    S3 S2 S1 S0

    somador completo

    a

    b

    S

    Co

    Ci somador completo

    a

    b

    S

    Co

    Ci somador completo

    a

    b

    S

    Co

    Ci somador completo

    a

    b

    S

    Co

    Ci

    Ci=0

    Co=1 S3=0 S2=0 S1=0 S0=1

    0 1 1 1

    1 0 1 0

    1 1 0 0

    LogiSim

  • Aritmética Binária

    SUBTRAÇÃO Tabuada da Subtração

    0 1 0 1 - 0 - 0 1 - 1 - 1 ---- ---- ---- ---- 0 1 - 1 0

    resultado negativo – como representar? Borrow

    decimal

    4 6 4 16 - 2 7 - 2+1 7 ------- --------- ? 1 9

    binário

    1 0 1 1 1 0 - 0+1 1 1 0+1 1+1 1 ------------------------------ 0 1 0 0 1 1

    decimal

    3 - 7 ---- - 4

    binário

    0 0 1 1 - 0 1 1 1 ----------- 1 1 1 0 0

    como representar valores negativos em binário?

    operação complexa!

    Caso 1 Caso 2

  • Números relativos Subtração → conduz ao aparecimento de números negativos, mas como os representar?

    Existindo apenas os símbolos “0” e “1”, terá de ser usado um deles para representar o sinal

    Soma : 5+2 = ?

    5 0 101 +2 + 0 010 ---- -------- 7 0 111 ok!

    Subtração : 5-2 = 5+(-2) = ?

    5 0 101 - 2 + 1 010 ---- -------- 3 1 111 negativo???

    Duas representações para o zero??? Zero é um valor positivo, devendo ter apenas uma representação

    números relativos com 4 bits (sinal+magnitude)

    “0” → nº positivo Hipótese 1: representar o sinal pelo bit mais à esquerda(bit de sinal) os restantes bits representam o valor (magnitude) “1” → nº negativo

  • Código dos complementos Código dos complementos em decimal

    Subtração → A – B = A + (10n – B) – 10n 10n : potência de 10 imediatamente acima de B

    (10n – B) : complemento para 10 de B (quanto falta a B para chegar

    à potência de 10 imediatamente acima)

    Código dos complementos em binário

    A – B = A + (2n – B) – 2n 2n : potência de 2 imediatamente acima de B = A + [(2n –1)– B] + 1 – 2n [(2n –1)– B] : complemento para 1 de B → obtém-se invertendo B bit a bit

    [(2n –1)– B] + 1 : complemento para 2 de B → obtém-se invertendo B bit a (complemento verdadeiro) bit e somando 1 (fácil de calcular)

    Ex: 5 - 2 = 5 + (-2) = 3

    A=5 → 0 1 0 1 0 1 0 1 B=2 → 0 0 1 0 1 1 0 1 + 1 1 1 0 + 1 ---------- --------- 1 0 0 1 1 = 3 - 2 = 1 1 1 0

    obter complemento para 2 = inverter bit a bit e somar 1

    não muda

    subtrair 2n → desprezar o bit mais à esquerda

    Ex: 75 – 46 = ?

    75 75 – 46 → 75 + (102 – 46) - 102 = → + 54 ?? 54 129 – 102→ 129 : método complexo não usado na prática

  • Números relativos Hipótese 2 “0” = nº positivo → restantes bits representam o valor em binário sinal é dado pelo → bit bit mais à esquerda sinal “1” = nº negativo → valor representado em código de complemento para 2

    números relativos com 4 bits (código complementos)

    Positivos → representados em código binário ex: 2 = 0010

    Negativos → representados em código de complementos

    obter o negativo/positivo de N em código complementos:

    N → (inverter bit a bit) e (somar 1) → – N

    ex1: 2 = 0010 → 1101 + 1 → 1110 = – 2

    ex2: -2 = 1110 → 0001 + 1 → 0010 = 2

    Regra prática: começando no bit mais à direita, manter todos os bits até encontrar o primeiro “1” inclusivé; a partir daí inverter todos os restantes bit ex: 2 → – 2 ; 2 = 0 0 1 0 → 1 1 1 0 = – 2

    invertidos mantidos

  • Números relativos Notas • Em código de complementos a n bits, se um valor começa por “0” trata-se de um positivo e o seu valor é

    dado directamente pelos restantes bits

    ex(4 bits): 0110 → 0x23 + 1x22 + 1x21 + 0x20 = + 6

    • Se começa por “1” trata-se de um valor negativo, estando codificado em código de complementos para 2

    ex(4 bits): 1010 → trata-se de um valor negativo, qual?

    regra prática: 1 0 1 0 → 0 1 1 0

    invertidos mantidos

    Exemplos de nºs de 8 bits com sinal

    MSB LSB

    regra prática

    regra prática

    1) 01110110 = ? nº positivo → 0x27 + 1x26 + 1x25 + 1x24 + 0x23 + 1x22 + 1x21 + 0x20 = 118

    2) 10011101= ? nº negativo → 01100011 = 0x27 + 1x26 + 1x25 + 0x24 + 0x23 + 0x22 + 1x21 + 1x20 = 99 → –99

    3) 19 = ?(binário) nº positivo → 19 : 2 = 9 : 2 = 4 : 2 = 2 : 2 = 1 : 2 = 0 → 00010011 restos 1(LSB) 1 0 0 1(MSB)

    4) -19 = ?(binário) nº negativo → 19 = 00010011 → 11101101

    0101 + 1 -------- 0110 = 6 → - 6 (nº é negativo)

    somar 1

  • Soma / Subtração Soma de N bits • começando da direita para a esquerda (i.e, do menor para o maior peso), somam-se dois a dois os bits

    de cada coluna tomando em consideração o bit de Carry proveniente da soma da coluna anterior (Ci) e propagando um bit de Carry para a coluna Seguinte (Co).

    Exemplo: N = 4 bits : A = a3 a2 a1 a0 , B = b3 b2 b1 b0 ← c4 c3 c2 c1 c0 ← A a3 a2 a1 a0 + B + b3 b2 b1 b0 ------ ------------------------ C S C4 S3 S2 S1 S0

    para a soma seguinte proveniente da soma anterior (0 se primeira soma)

    Ex: A = 2 B = 7

    0 1 1 0 Ci=0

    2 0 0 1 0 + 7 + 0 1 1 1 ---- ----------------------------- 9 0 1 0 0 1

    somador completo

    a

    b

    Co

    S

    Ci somador completo

    a

    b

    Co

    S

    Ci somador completo

    a

    b

    Co

    S

    Ci somador completo

    a

    b

    Co

    S

    Ci 0

    a0

    b0

    a1

    b1

    a2

    b2

    a3

    b3

    c4

    S3 S2 S1 S0

    c3 c2 c1

  • Soma/ Subtração Subtração de N bits

    • usando as regras da adição binária, somar o aditivo com o complemento para 2 do subtrativo, desprezando o último bit de carry → A – B = A + (-B) = A + [(2n –1)– B] + 1 – 2n

    complemento para 2 de B corresponde a desprezar (inverter B bit a bit e somar 1) o bit mais à esquerda

    somador completo

    a

    b

    Co

    S

    Ci somador completo

    a

    b

    Co

    S

    Ci somador completo

    a

    b

    Co

    S

    Ci somador completo

    a

    b

    Co

    S

    Ci 1

    a0

    b0

    a1

    b1

    a2

    b2

    a3

    b3

    c4

    S3 S2 S1 S0

    c3 c2 c1

    Ex: A - B → 7 - 3 = 7 + (-3) = 4 1 = Ci

    A=7 → 0 1 1 1 0 1 1 1 7 0 1 1 1 B=3 → 0 0 1 1 1 1 0 0 + 1 1 0 1 3 → 0 0 1 1 1 1 0 0 + 1 --------- ----------- ---------- 1 0 1 0 0 = 4 1 0 1 0 0 = 4 - 3 = 1 1 0 1

    inverter bit a bit e somar 1

    não muda

    desprezar desprezar

    inverter

    bit a bit

    (somar 1) ou:

    não muda

  • somador completo

    a

    b

    Co

    S

    Ci

    somador completo

    a

    b

    Co

    S

    Ci

    somador completo

    a

    b

    Co

    S

    Ci

    somador completo

    a

    b

    Co

    S

    Ci 1 a0 b0

    a1 b1

    a2 b2

    a3 b3

    c4

    S3 S2 S1 S0

    c3 c2 c1

    somador completo

    a

    b

    Co

    S

    Ci

    somador completo

    a

    b

    Co

    S

    Ci

    somador completo

    a

    b

    Co

    S

    Ci

    somador completo

    a

    b

    Co

    S

    Ci 0 a0 b0

    a1 b1

    a2 b2

    a3 b3

    c4

    S3 S2 S1 S0

    c3 c2 c1

    Soma/ Subtração

    Ex: A + B = 5 + 1 = 6 0 0 1 0=Ci 5 0 1 0 1 + 1 + 0 0 0 1 ---- ----------------------------- 6 Co= 0 0 1 1 0

    Ex: A - B → 5 - 1 = 5 + (-1) = 4 1=Ci 5 0 1 0 1 1 → 0 0 0 1 1 1 1 0 ---------- 1 0 1 0 0 = 4

    desprezar Co

    somar 1

    não muda inverter

    bit a bit

    SOMA

    SUBTRAÇÃO

  • Soma/ Subtração

    a3 a2 a1 a0

    b3

    b2

    b1

    b0

    Ci

    S3 S2 S1 S0

    C0

    b3

    b2

    b1

    b0

    a3 a2 a1 a0

    “1”(Sub) : A-B = A + [(2n –1)– B] + 1 – 2n Op “0”(Sum) : A+B

    somar 1

    +

    a3 a2 a1 a0

    S3 S2 S1 S0

    C0

    a3 a2 a1 a0

    +

    0

    b3 b2 b1 b0

    Ci

    b3 b2 b1 b0

    Sum: A+B

    a3 a2 a1 a0

    S3 S2 S1 S0

    C0

    a3 a2 a1 a0

    +

    1

    b3 b2 b1 b0

    Ci

    b3 b2 b1 b0

    Sub: A-B = A + (-B)

    Através de um bit de controlo (o qual pode ser comandado por software) pode selecionar-se a operação a executar:

    •se uma entrada for zero a saída é igual à outra entrada; •se uma entrada for um a saída é o inverso da outra entrada

    A=0 S=B

    A=1 S=B

    XOR

  • ALU – Arithmetic and Logic Unit ALU : circuito digital usado para efectuar operações lógicas (and, or, not, xor,...) e aritméticas (sum, sub, mul, ...). É um dos principais blocos constituintes de um processador.

    Exemplo de ALU : 74LS181 , 4bit arithmetic logic unit

    H(HIGH)=“1” L(LOW)=“0” M controla o tipo de operação : M=1→lógica M=0→aritmética S3-S0 : controlam a operação a executar (segundo a tabela)

  • Estrutura dos Processadores (CPU)

    ALU

    Unidade De

    Controlo

    (circuito digital)

    Registos (memória)

    Dados

    Endereços

    Controlo

    Barramentos para

    comunicação com o

    exterior

  • Aula 8

    Aritmética Binária(cont.)

  • Gama de representação Números sem sinal: usando-se n bits podem codificar-se 2n números inteiros (todos positivos)

    ex: n = 4 → 2n = 24 = 16 números

  • Gama de representação

    2n-1 positivos : 0 ↔ 2n-1 -1 (último bit = 0) 2n-1 negativos : - 2n-1 ↔ -1 (último bit = 1)

    n bits permitem codificar 2n números inteiros sendo metade positivos e metade negativos [ 2n / 2 = 2n * 2-1 = 2n-1 ]

    Ex: n = 4 → 2n = 24 = 16 , 2n-1 = 24-1 = 8

    8 positivos : 0 ↔ 7 (23 -1) 8 negativos : -8 (- 23) ↔ -1

    números relativos com 4 bits (código complementos)

    Números com sinal: usando-se n bits podem codificar-se 2n números inteiros, sendo metade positivos e metade negativos (números relativos)

  • Gama de representação (4 bit)

    Números sem sinal → código binário

    ex1: 01012 = 0*23+1*22+0*21+1*20 = 510

    ex2: 11012 = 1*23+1*22+0*21+1*20 = 1310

    Números com sinal → código complementos ex1: 01012 = nº positivo (binário) = 0*23+1*22+0*21+1*20 = 510 ex2: 11012 = nº negativo (complementos) = 0010+1= 0011 = 0*23+0*22+1*21+1*20 = 310 = -310

  • Overflow Exemplos de operações para n=4 bits

    A=5 0 101 + B=3 + 0 011 ----- ---------- 8 1 000 = -8

    somaram-se dois positivos e obteve-se um negativo ???

    soma de dois valores positivos → resultado negativo Overflow ou soma de dois valores negativos → resultado positivo

    Solução ?

    A=-6 1 010 + B=-3 + 1 101 ----- ---------- - 9 1 0 111 = 7

    somaram-se dois negativos e obteve-se um positivo ? ??

    OVERFLOW excedeu-se a gama de

    representação

  • Overflow

    Overflow → soma de dois operandos de n bits mas o resultado tem n+1 bits

    Solução = acrescentar o número de bits necessários para permitir o resultado; Nos exemplos anteriores os operandos A e B tinham n=4 bits mas o resultado precisava de n=5 bits, assim basta acrescentar mais um bit, passando a usar-se n = 5 bits.

    NOTAS • a subtração A-B (A e B > 0) nunca origina overflow pois o resultado está compreendido entre os dois operandos • na soma A+B se os operandos forem de sinal contrário (A>0 , B

  • Comparador

    Um comparador permite determinar se dois valores numéricos binários A e B de n bits são iguais, ou qual deles é maior.

    A n bits

    B n bits

    A>B A

  • Comparador Exemplo: 74HCT85 – 4 Bit Magnitude Comparator

    - comparador de 2 números de 4 bits (A3..A0 ; B3..B0);

    - entradas adicionais para agrupamento em cascata (IA>B , IAB , OA

  • Código BCD – Binary Coded Decimal Código largamente usado em calculadoras que trabalham com numeração decimal

    Codifica-se diretamente cada algarismo decimal em código binário a 4 bits

    decimal → binário ex: 457 = 0001 1100 1001 (divisões sucessivas por 2)

    decimal → BCD ex: 457 → 0100 0101 0111 4 5 7

    Soma em BCD

    Quando se somam dois dígitos BCD o resultado pode ser: (a) dígito válido e não há Carry : resultado correcto, nada a fazer; (b) dígito inválido e não há Carry : somar 6 e gerar um Carry para o dígito seguinte; (c) dígito válido e há Carry : somar 6 e manter Carry para o dígito seguinte; ex: (a) (b) (c) 1

    3 0011 8 1000 9 1001 + 4 + 0100 + 5 + 0101 + 8 + 1000 ------- -------- ---- ------- ---- -------- 7 0111(ok) 13 1 1101 17 1 0001 + 0110 + 0110 -------- ---------- 0001 0011 0001 0111 1 3 1 7

    (hexa)

  • Código de Gray Código binário em que entre cada configuração adjacente só varia um bit

    Importante para os circuitos sequenciais (com memória)

    G0 = B0 B1

    G1 = B1 B2

    G2 = B2 B3

    .....................

    Gn = Bn

    +

    +

    +

    B0 = G0 G1 ... Gn

    B1 = G1 G2 ... Gn

    B2 = G2 G3 ... Gn

    ...........................................

    Bn-1 = Gn-1 Gn

    Bn = Gn

    +

    +

    +

    + +

    +

    + +

    + +

    Binário → Gray

    Gray → Binário

  • Aula 9

    Codificadores/Descodificadores Multiplex/Demultiplex

  • Codificadores / Descodificadores Codificador c/prioridade

    • Circuito que apresenta nas suas saídas o código binário correspondente ao número de ordem da entrada que estiver activa;

    • Havendo mais de uma entrada activa o circuito dá prioridade (valida) a de maior número de ordem; • Um codificador com M=2N entradas terá N variáveis de saída;

    .

    .

    .

    .

    .

    .

    M = 2N entradas

    (ex: M=128, N=7) Codificador N saídas

    (ex: N=7) (podem estar

    várias activas)

    Q0 Q1

    QN-1

    A0

    A1

    A2

    A2N-1

    Código binário da tecla actuada

    Exemplo: codificador de teclado

    https://www.google.pt/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwiPm-bT7rDQAhUI6xoKHagODfwQjRwIBw&url=https://www.quora.com/Why-are-letters-on-most-keyboard-buttons-printed-on-the-top-left&psig=AFQjCNHzzKpU0asxZhLVZ-aX_0G6YiWqXA&ust=1479508982459630

  • Codificador c/prioridade Codificador c/prioridade

    • Ex: entrada→M=2N= 4 , saída→N=2

    Codificador

    A0

    A1

    A2

    A3

    Q0

    Q1

    GS

    GS = Group Select indica que há alguma entrada activa GS = A0 + A1 + A2 + A3

    Q1=A2+A3

    Q0=A1.A2+A3

    Tabela de Verdade

    O código binário na saída (Q1, Q0), é igual ao número da entrada activa (A3...A0)

  • Codificadores / Descodificadores

    Descodificador

    • Realizam a operação inversa dos Codificadores;

    • Ativam a saída correspondente ao código binário presente à entrada;

    • Um descodificador com N variáveis de entrada tem M=2N variáveis de saída;

    • Os descodificadores podem ter uma entrada adicional de “enable” (EN) ou “strobe” (G) que permite controlar (ativar/desativar) a função de descodificação;

    .

    .

    .

    .

    .

    .

    N entradas

    (ex: N=7) Descodificador M = 2N saídas

    (ex: M=128)

    (código binário)

    Q0 Q1

    Q2N-1

    A0 A1

    AN EN

  • Descodificador Descodificador

    Ex: entrada→N=2 , saída→M=2N= 4

    Descodificador

    A0

    A1

    Q0

    Q1

    Q2

    Q3

    Q3 = A0 . A1

    Q0 = A0 . A1 Q2 = A0 . A1

    Q1 = A0 . A1

    Tabela de Verdade

    Fica ativa a saída (Q3...Q0) que corresponde ao código binário da entrada (A1,A0)

  • Descodificador BDC – 7 segmentos

    1

    1

    0 0 0

    0 0 0

    Permitem representar os algarismos de 0..9 (ou 0...F)

    https://www.google.pt/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0CAcQjRxqFQoTCJvitaWRhMkCFcPNFAodeT4O3Q&url=https://eletronicadonorte.wordpress.com/display-de-sete-segmentos-com-8051/&psig=AFQjCNFJkmP1xZA7yrpGc0BmINNPqPyabg&ust=1447185781900383

  • Multiplex / Demultiplex

    saída

    I0

    I1

    Q

    MULTIPLEX

    SM

    entr

    adas

    Q0

    Q1

    I

    DEMULTIPLEX

    SD

    saíd

    as

    entrada

  • Multiplex Multiplexer (MUX)

    • Envia uma de N entradas possíveis(I0, I1, ... , IN-1), para uma única saída (Q), em função de uma palavra binária de controlo (ou seleção) → em cada instante apenas uma entrada está ligada à s