Baixe o app para aproveitar ainda mais
Prévia do material em texto
Digital Design Copyright © 2006 Frank Vahid 1 Sistemas Digitais Capítulo 2: Projeto Lógico Combinacional Slides to accompany the textbook Digital Design, First Edition, by Frank Vahid, John Wiley and Sons Publishers, 2007. http://www.ddvahid.com Copyright © 2007 Frank Vahid Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) have permission to modify and use these slides for customary course-related activities, subject to keeping this copyright notice in place and unmodified. These slides may be posted as unanimated pdf versions on publicly-accessible course websites.. PowerPoint source (or pdf with animations) may not be posted to publicly-accessible websites, but may be posted for students on internal protected sites or distributed directly to students by other electronic means. Instructors may make printouts of the slides available to students for a reasonable photocopying charge, without incurring royalties. Any other use requires explicit permission. Instructors may obtain PowerPoint source or obtain special use permissions from Wiley – see http://www.ddvahid.com for information. Material traduzido e adaptado para o Português pelo Prof. Ricardo O. Duarte e revisado pelos Profs. Luciano Pimenta e Hermes Magalhães DELT – EEUFMG (Rev. 2) Digital Design Copyright © 2006 Frank Vahid 2 Introdução Circuito digital combinacional 1 a b 1 F 0 1 a b ? F 0 • Aprenderemos como projetar Circuitos Digitais • Começaremos com os circuitos mais simples: – Circuitos Combinacionais • Circuito digital no qual suas saídas dependem única e exclusivamente da combinação momentânea dos valores lógicos das entradas do circuito Circuito Digital 2.1 Circuito digital sequencial Note: Slides with animation are denoted with a small red "a" near the animated items Digital Design Copyright © 2006 Frank Vahid 3 Chaves • A chave eletrônica é o elemento base do projeto de circuitos digitais binários. – Terminologia elétrica • Tensão: Diferença de potencial elétrico entre dois pontos quaisquer do circuito. – Analogia com a pressão da água em pontos diferentes de uma tubulação. • Corrente: Fluxo de partículas eletricamente carregadas. – Analogia com o fluxo da água em um tubo. • Resistencia: Tendência do fio a resistir ao fluxo de corrente. – Analogia com o diâmetro do tubo. • V = I * R (Lei de Ohm) 4.5 A 4.5 A 4.5 A 2 ohms 9V 0 V 9 V + – 2.2 Digital Design Copyright © 2006 Frank Vahid 4 Chaves • Uma chave é composta por 3 partes: – Entrada (ou fonte), Saída … • A corrente deseja fluir da entrada ou fonte para a saída. – e Entrada de controle • Terminal que controla se a corrente pode ou não fluir da entrada para a saída. • Evolução das chaves eletrônicas (encolhimento em tamanho, velocidade de chaveamento, consumo e potência dissipada) – 1930s: Relés – 1940s: Válvulas – 1950s: Transistor (dispositivo) – 1960s: Circuito Integrado (CI) » Inicialmente alguns poucos transistores por CI. » Depois, centenas, milhares, milhões, … Chave desligada Chave ligada saída fonte entrada saída fonte entrada Entrada de controle Entrada de controle ( b ) Relés Válvulas transistor Circuito Integrado (CI) Moeda (1/4 de dólar) (imagem comparativa) a Digital Design Copyright © 2006 Frank Vahid 5 Lei de Moore • Capacidade de integração de chaves em CIs dobrando a cada 18 meses. – Conhecida como a “Lei de Moore”, enunciado por Gordon Moore, co-fundador da Intel • Enunciada em 1965, previa que o número de transistores por CI dobraria a cada ano aproximadamente. • Transistores são componentes eletrônicos utilizados principalmente como amplificadores e interruptores de sinais elétricos. – A capa do livro ilustra o fenômeno. • Para um determinado número de chaves (transistores) o CI “encolhe” pela metade a cada 18 meses. – Imagine quanto um CI encolheria em 10 anos. – Possibilita um potencial incrível de processamento de dados e armazenamento em dispositivos (CIs) incrivelmente minúsculos. – Atualmente dentro de um CI moderno existem bilhões de transistores (Core quad) • O primeiro Pentium (início dos anos 90) comportava somente 3 milhões de transistores. Uma foto do CI Pentium - Intel com alguns poucos milhões de transistores. Digital Design Copyright © 2006 Frank Vahid 6 O Transistor CMOS • Transistor CMOS: Complementary Metal-Oxide-Semiconductor – Elemento básico na construção de chaves em CIs (sistemas digitais modernos). – O transistor mais popular usado em CIs digitais é do tipo CMOS. não conduz 0 conduz 1 porta nMOS não conduz 1 porta pMOS conduz 0 Silício – não é um condutor nem um isolante ideal: Material semicondutor 2.3 a fonte dreno fonte dreno Digital Design Copyright © 2006 Frank Vahid 7 Portas Lógicas Construindo blocos maiores para projetar Circuitos Digitais (a partir de chaves…) • “Portas lógicas” são blocos construtivos básicos mais adequados que chaves (transistores) para construir circuitos digitais maiores. 2.4 Digital Design Copyright © 2006 Frank Vahid 8 A Álgebra Booleana e sua relação com os Circuitos Digitais • Para entender os benefícios das “portas lógicas” vs. chaves, precisamos aprender a Álgebra Booleana. • Álgebra tradicional – As variáveis representam números reais. – Operadores manipulam variáveis e produzem outros números reais. • Álgebra Booleana – Variáveis representam somente 0 ou 1. – Operadores produzem somente 0 ou 1. – Operadores lógicos básicos • AND: a AND b produz 1 somente quando a=1 e b=1 • OR: a OR b produz 1 somente quando a=1 ou b=1 ou ambos forem iguais a 1. • NOT: NOT a produz o inverso (oposto) de a (1 se a=0, 0 se a=1) a 0 0 1 1 b 0 1 0 1 AND 0 0 0 1 a 0 0 1 1 b 0 1 0 1 OR 0 1 1 1 a 0 1 NOT 1 0 Digital Design Copyright © 2006 Frank Vahid 9 A Álgebra Booleana e sua relação com os Circuitos Digitais • Desenvolvida em meados do século XIX (aprox. 1850) pelo matemático britânico George Boole para formalizar o raciocínio lógico humano. – Ex: “Eu irei almoçar se Maria OU João forem, E Silvia não for.” • Considere a variável F representando minha ida ao almoço. (1 significa eu vou e 0 não vou) • Da mesma forma: m para Maria vai, j para João, e s para Silvia • Então F = (m OR j) AND NOT(s) – Possibilita: • Avaliações formais de expressões lógicas – m=1, j=0, s=1 --> F = (1 OR 0) AND NOT(1) = 1 AND 0 = 0 • Transformações formais de expressões lógicas – F = (m and NOT(s)) OR (j and NOT(s)) » Parece diferente, mas é a mesma função lógica! » Estudaremos as técnicas formais de transformação lógica em breve. – OBS: o Apêndice A do livro trata sobre Álgebras Booleanas. a 0 0 1 1 b 0 1 0 1 AND 0 0 0 1 a 0 0 1 1 b 0 1 0 1 OR 0 1 1 1 a 0 1 NOT 1 0 Foto retirada de http://pt.wikipedia.org/wiki/George_Boole Digital Design Copyright © 2006 Frank Vahid 10 Como avaliar Expressões Booleanas? • Avalie a equação booleana F = (a AND b) OR (c AND d) para os valores lógicos dados a seguir para as variáveis a, b, c, e d: – Q1: a=1, b=1, c=1, d=0. • resposta: F = (1 AND 1) OR (1 AND 0) = 1 OR 0 = 1. – Q2: a=0, b=1, c=0, d=1. • resposta : F = (0 AND 1) OR (0 AND 1) = 0 OR 0 = 0. – Q3: a=1, b=1, c=1, d=1. • resposta : F = (1 AND 1) OR (1 AND 1) = 1 OR 1 = 1. a a 0 0 1 1 b 0 1 0 1 AND 0 0 0 1 a 0 0 1 1 b 0 1 0 1 OR 0 1 1 1 a 0 1 NOT 1 0 Digital Design Copyright © 2006 Frank Vahid 11 Como converter situações lógicas para Expressões Booleanas? • Converta as seguintessituações para as respectivas Equações Booleanas. – Q1. A saída F será verdadeira se a for 1 e b for 1. • Resposta: F = a AND b – Q2. A saída F será verdadeira se qualquer um ou ambos a ou b forem iguais a 1. • Resposta: F = a OR b – Q3. A saída F será falsa se ambos a e b não forem 0. • Resposta: – (a) Primeira solução: F = NOT(a) AND NOT(b) – (b) Segunda solução: F = NOT(a OR b) – Q4. A saída F será verdadeira se a for 1 e b for 0. • Resposta : F = a AND NOT(b) a Digital Design Copyright © 2006 Frank Vahid 12 Como converter situações lógicas para Expressões Booleanas? • Q1. Um aspersor automático de um sistema de combate a incêndios deve borrifar água quando uma temperatura elevada for detectada e o sistema estiver habilitado. – Resposta: Considere h a variável Booleana que representa “temperatura elevada detectada,” e representando “habilitado,” e F representando “borrifando água.” Equação: F = h AND e. • Q2. Um alarme sonoro de carro deverá ser ativado se o sistema de alarme estiver habilitado e se o carro for sacudido ou se a porta for aberta. – Resposta: Faça a representar “alarme habilitado,” s representar “carro sacudido,” d representar “porta aberta,” e F representar “alarme disparado.” Equação: F = a AND (s OR d). – (a) Alternativamente, assumindo que o sensor de porta d representa “porta fechada” ao invés de aberta (significando d=1 quando a porta estiver fechada, 0 quando estiver aberta), obteremos a seguinte equação: F = a AND (s OR NOT(d)). a Digital Design Copyright © 2006 Frank Vahid 13 Relacionando a Álgebra Booleana e o Projeto de Circuitos Digitais • Implementação de operadores Booleanos usando transistores: – Chamamos essa implementações de portas lógicas. – Construiremos circuitos digitais matematicamente. – Utilizaremos a Álgebra Booleana para construir circuitos digitais. Boolean algebra (mid-1800s) Intenção de Boole: formalizar o raciocínio humano Chaves (1930s) Shannon (1938) Projeto Digital Mostrou a aplicação da Álgebra Booleana no projeto de circuitos baseados em chaves x 0 0 1 1 y 0 1 0 1 F 0 0 0 1 x 0 0 1 1 y 0 1 0 1 F 0 1 1 1 x 0 1 F 1 0 F x x y F OR N O T F x y AND 0 1 y x x y F 1 0 F x Símbolo Tabela verdade Circuito Com transistores 0 1 x y F y x Observação: Essas implementações de portas OR e AND mostradas acima são ineficientes; veremos o porquê disso e mostraremos em breve como implementar portas OR e AND mais eficientes. Telefonia e outras aplicações eletrônicas Digital Design Copyright © 2006 Frank Vahid 14 Portas Lógicas NOT/OR/AND e seus respectivos diagramas de tempo (ou diagramas temporais) 0 1 1 0 tempo F x 1 0 x y F 1 1 0 0 time 1 0 x y F 1 1 0 0 tempo Digital Design Copyright © 2006 Frank Vahid 15 Construindo Circuitos a partir de Portas Lógicas • Lembre do exemplo do sistema de detecção de movimentos em ambientes escuros. – Acionar a lâmpada (F=1) quando um movimento for detectado (a=1) e não tiver luz ambiente (b=0) – F = a AND NOT(b) – A partir da equação booleana F construo o circuito usando portas lógicas, AND e NOT, como mostrado na figura. Digital Design Copyright © 2006 Frank Vahid 16 Exemplo: Conversão de uma Expressão em Lógica Booleana para um Circuito Digital • Q: Converta a seguinte equação booleana em um circuito digital,usando as portas lógicas que você conhece até esse momento: F = a AND NOT( b OR NOT(c) ) a F ( a ) a b c F ( b ) a Digital Design Copyright © 2006 Frank Vahid 17 Exemplo: Sistema de alerta de cinto não engatado para carros • Como projetar? • Sensores: variáveis – s=1: cinto engatado – k=1: chave na ignição – p=1: pessoa no assento • Obtenha a Equação Booleana – Pessoa no assento, e cinto não engatado, e chave na ignição. • Converta a equação em circuito. • Observe: – A Álgebra Booleana possibilita a obtenção da equação lógica e a conversão da mesma em circuito. • Como projetar com chaves? • Evidente que portas lógicas são construídas a partir de chaves, mas raciocinamos melhor a partir de portas lógica e não chaves. • Agora estamos trabalhando com blocos maiores (as portas lógicas). w = p AND NOT(s) AND k k p s w BeltWarn Digital Design Copyright © 2006 Frank Vahid 18 Algumas convenções para desenho de circuitos e portas lógicas x y F no yes no not ok ok yes Digital Design Copyright © 2006 Frank Vahid 19 Álgebra Booleana • Por definição portas lógicas se baseiam na Álgebra Booleana. Usamos métodos algébricos para manipular e transformar circuitos digitais. – Vamos aprender alguns métodos da Álgebra Booleana. • Começamos por algumas notações: Escrever a AND b, a OR b, e NOT(a) é muito tedioso. Imagine um circuito com dezenas de variáveis! – Usamos símbolos: a * b, a + b, and a’ (na realidade, a * b pode ser só ab). • Notação inicial: w = (p AND NOT(s) AND k) OR t • Nova notação: w = ps’k + t – Essa expressão é lida da seguinte forma: “w é igual a p E s linha E k, OU t” – Ou ainda de forma mais simples “w é igual a p s linha k, OU t” – s’ é o mesmo que o “complemento a um de s”, ou simplesmente “o complemento de s” • Embora sejam os mesmos símbolos usados na Álgebra, não os chame de “vezes” ou “mais” Regras de precedência na Álgebra Booleana, maior precedência primeiro. Símbolo Nome Descrição ( ) Parênteses Avalie expressões dentro do parênteses primeiro. ’ NOT Avalie-os da esquerda para a direita * AND Avalie-os da esquerda para a direita + OR Avalie-os da esquerda para a direita 2.5 Digital Design Copyright © 2006 Frank Vahid 20 Precedência de Operadores na Álgebra Booleana • Avalie as seguintes equações Booleanas, assumindo a=1, b=1, c=0, d=1. – Q1. F = a * b + c • Resposta: * tem precedencia sobre +, então avaliamos a equação como: F = (1 *1) + 0 = (1) + 0 = 1 + 0 = 1. – Q2. F = ab + c • Resposta: o problema é idêntico ao anterior, usando a notação simplificada de * – Q3. F = ab’ • Resposta : primeiro avaliamos b’ porque NOT tem precedencia sobre AND, resultando em: F = 1 * (1’) = 1 * (0) = 1 * 0 = 0. – Q4. F = (ac)’ • Resposta: primeiro avaliamos o que está entre parênteses, depois invertemos (complementamos – NOT) o resultado, obtendo-se: (1*0)’ = (0)’ = 0’ = 1. – Q5. F = (a + b’) * c + d’. • Resposta: Dentro do parênteses: (1 + (1’)) = (1 + (0)) = (1 + 0) = 1. Próximo, * tem precedencia sobre +, obtendo-se: (1 * 0) + 1’ = (0) + 1’. O NOT tem precedncia sobre o OR, obtendo-se: (0) + (1’) = (0) + (0) = 0 + 0 = 0. a Digital Design Copyright © 2006 Frank Vahid 21 Terminologia da Álgebra Booleana • Exemplo de uma equação: F(a,b,c) = a’bc + abc’ + ab + c • Variável – Representa um valor binário (0 ou 1) – Três variáveis: a, b, e c • Literal – Forma de aparência da variável, na forma normal ou complementada. – Nove literais: a’, b, c, a, b, c’, a, b, e c • Produto – Produto de um literal ou mais literais combinados. – Quatro produtos: a’bc, abc’, ab, c • Soma de produtos – Equação escrita como OR dos produtos. – A equação do exemplo é uma soma de produtos. A equação: F = (a+b)c + d não! Digital Design Copyright © 2006 Frank Vahid 22 Propriedades da Álgebra Booleana • Comutativa – a + b = b + a – a * b = b * a • Distributiva – a * (b + c) = a * b + a * c – a + (b * c) = (a + b) * (a + c) • Associativa – (a + b) + c = a + (b + c) – (a * b) * c = a * (b * c) • Identidade – 0 + a = a + 0 = a – 1 * a = a * 1 = a • Complemento – a + a’ = 1 – a * a’ = 0 • Para provar cada propriedade, avalie todas as possibilidades. • Mostre que abc’ é equivalente a c’ba.– Use a propriedade comutativa: • a*b*c’ = a*c’*b = c’*a*b = c’*b*a = c’ba. • Mostre que abc + abc’ = ab. – Primeiro a propriedade distributiva. • abc + abc’ = ab(c+c’). – Propriedade do complemento • Troque c+c’ por 1: ab(c+c’) = ab(1). – Propriedade da identidade • ab(1) = ab*1 = ab. • Mostre que x + x’z é equivalente a x + z. – Segunda propriedade distributiva • Troque x+x’z por (x+x’)*(x+z). – Propriedade do complemento • Troque (x+x’) por 1, – Propriedade da identidade • Troque 1*(x+z) por x+z. Exemplo de uso das propriedades Digital Design Copyright © 2006 Frank Vahid 23 Exemplo de aplicação da Álgebra Booleana • Um circuito de abertura de portas automáticas (shoppings) – Saída: f=1 (abre a porta) – Entradas: • p=1: pessoa detectada • h=1: porta mantida aberta manualmente. • c=1: porta mantida fechada – Queremos que a porta se abra quando: • h=1 e c=0, ou • h=0 e p=1 e c=0 – Equação: f = hc’ + h’pc’ • Encontramos uma função pronta em uma biblioteca: • f = c’hp + c’hp’ + c’h’p – Podemos usá-la? • É a mesma função f = hc’ + h’pc’ ? • Verificamos com o auxílio da Álgebra Booleana: f = c’hp + c’hp’ + c’h’p (propriedade distributiva) f = c’h(p + p’) + c’h’p (propriedade do complemento) f = c’h(1) + c’h’p (propriedade da identidade) f = c’h + c’h’p (propriedade comutativa) f = hc’ + h’pc’ Mesma função! f h c p DoorOpener Digital Design Copyright © 2006 Frank Vahid 24 Álgebra Booleana: Propriedades Adicionais • Elemento Nulo – a + 1 = 1 – a * 0 = 0 • Lei da idempotência – a + a = a – a * a = a • Lei da involução – (a’)’ = a • Lei de DeMorgan – (a + b)’ = a’b’ – (ab)’ = a’ + b’ – Muito útil ! • Para prová-las avalie todas as possibilidades. Circuito a b c S • Comportamento: • Três lavatórios, cada um com um sensor (a, b, c), igual a 1 se a porta estiver fechada. • Luz “Livre” representada por (S) se algum lavatório estiver livre. • Equação e circuito • S = a’ + b’ + c’ • Transformação • (abc)’ = a’+b’+c’ (por DeMorgan) • S = (abc)’ • Nova equação e novo circuito. Circuito S a b c • Alternativa: Ao invés de acender “Livre,” acender “Ocupado” – Oposto da função “Livre” S = a’ + b’ + c’ – Então S’ = (a’ + b’ + c’)’ • S’ = (a’)’ * (b’)’ * (c’)’ (por DeMorgan) • S’ = a * b * c (Involução) – Mais intuitivo: • Ocupado se todas as portas estiverem trancadas. Exemplo: Luz de lavatório ocupado em aviões Digital Design Copyright © 2006 Frank Vahid 25 Representação de Funções Booleanas • Uma função booleana pode ser representada de diferentes formas. – Acima podemos ver sete representações diferentes da mesma função, usando quatro métodos diferentes: descrição em Português, Equações, Circuito e Tabela Verdade. 2.6 a a b F F Circuito 1 Circuito 2 ( c ) ( d ) Português 1: F produz 1 quando a é 0 e b é 0, ou quando a é 0 e b é 1. Português 2: F produz 1 quando a é 0, independente do valor de b ( a ) ( b ) a 0 0 1 1 b 0 1 0 1 F 1 1 0 0 A função F Tabela verdade Equação 2: F(a,b) = a’ Equação 1: F(a,b) = a’b’ + a’b Digital Design Copyright © 2006 Frank Vahid 26 Tabelas Verdade • Define o valor de F para cada combinação possível de valores binários das entradas. – 2 entradas: 4 linhas. – 3 entradas: 8 linhas. – 4 entradas: 16 linhas. – n entradas: 2 n linhas. • Q: Use a tabela verdade para encontrar F(a,b,c) que é sempre 1 quando abc representar um número em binário maior ou igual a 5. c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 d 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 F c 0 1 0 1 0 1 0 1 a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 F a 0 0 1 1 b 0 1 0 1 F ( a ) ( b ) ( c ) c 0 1 0 1 0 1 0 1 a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 F 0 0 0 0 0 1 1 1 a Digital Design Copyright © 2006 Frank Vahid a 0 0 1 1 b 0 1 0 1 F Entradas Saídas a ' b ' a ' b 27 Conversão entre Representações • Podemos converter de uma forma de representação a outra. • Conversões comuns: – De equação para circuitos (já vimos) – De tabela verdade para equação (que poderá ser convertida para circuitos) • Faça um OR de todos “termos de produto” na entrada que resultem F=1 – De equação para tabela verdade • Avalie a equação para cada combinação de entradas (cada linha). • Gerar colunas intermediárias evitará possíveis erros. a 0 0 1 1 b 0 1 0 1 F 1 1 0 0 Entradas Saídas F = soma dos termos a’b’ a’b Termos F = a’b’ + a’b c 0 1 0 1 0 1 0 1 a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 F 0 0 0 0 0 1 1 1 Q: Converta para equação a F = ab’c + abc’ + abc ab’c abc’ abc 1 1 0 0 1 0 0 0 0 1 0 0 a Q: Converta para tabela verdade: F = a’b’ + a’b Digital Design Copyright © 2006 Frank Vahid 28 Representações Padrão: Tabelas Verdade • Como determinar quando duas funções fazem o mesmo? – Caso da abertura de portas de shoppings. • f = hc’ + h’pc’ é a mesma função g=c’hp + c’hp’ + c’h’p ? • Usamos propriedades da Álgebra Booleana. • Mas se usarmos as propriedades de formas diversas, podemos chegar a diferentes equações, sem concluir se o resultado final é o mesmo. • Solução: Converter para Tabelas verdade – Tabelas verdade só produzem uma única solução para uma dada função. • Representação Padrão g = c’hp + c’hp’ + c’h’p g = c’h(p + p’) + c’h’p g = c’h(1) + c’h’p g = c’h + c’h’p g = c’(h+h’p) g= c’(h+p) (A que conclusão chegamos ?) f = hc’ + h’pc’ a 0 0 1 1 b 0 1 0 1 F 1 1 0 1 F = ab + a ' a 0 0 1 1 b 0 1 0 1 F 1 1 0 1 F = a’b’ + a’b + ab Q: Determine se F=ab+a’ é a mesma função que F=a’b’+a’b+ab, convertendo cada uma em sua respectiva tabela verdade. a Digital Design Copyright © 2006 Frank Vahid 29 Forma Canônica – Soma de Mintermos • Tabelas verdade ficam enormes para um grande número de entradas. • Usamos uma forma padrão para descrição de equações. – Conhecida como forma canônica. – Na álgebra: agrupamos termos de mesma potência em polinômios. • ax2 + bx + c (3x2 + 4x + 2x2 + 3 + 1 --> 5x2 + 4x + 4) – Na Álgebra Booleana: Geramos somas de mintermos. • Mintermo: é um produto no qual todas as variáveis da função aparecem no termo exatamente uma vez (na forma complementada ou não). • Coloque a equação na forma de soma de produtos. • Em seguida expanda cada produto de forma a gerar um mintermo. Q: Determine se F(a,b)=ab+a’ é a mesma função que F(a,b)=a’b’+a’b+ab, convertendo a primeira equação para a forma canônica (a segunda equação já está na forma canônica) F = ab+a’ (já esta sob a forma de soma de produtos) F = ab + a’(b+b’) (expandindo os termos) F = ab + a’b + a’b’ (IGUAL – os mesmos 3 termos da outra equação) a Digital Design Copyright © 2006 Frank Vahid 30 Circuitos com Múltiplas Saídas • Muitos circuitos possuem mais de uma saída. • Um circuito para cada saída, ou circuitos com portas compartilhadas. • Ex: F = ab + c’, G = ab + bc – Termo em comum nas duas equações: ab a b c F G ( a ) a b c F G ( b ) Opção 1: Circuitos independentes Opção 2: Portas compartilhadas Digital Design Copyright © 2006 Frank Vahid 31 Exemplo com Múltiplas Saídas: Conversor BCD para 7-Segmentos a = w’x’y’z’ + w’x’yz’ + w’x’yz + w’xy’z + w’xyz’ + w’xyz +wx’y’z’ + wx’y’z abcdefg = 1111110 0110000 1101101 a f b d g e c (b)(a) b = w’x’y’z’ + w’x’y’z + w’x’yz’ + w’x’yz + w’xy’z’ + w’xyz + wx’y’z’ + wx’y’z Digital Design Copyright © 2006 Frank Vahid 32 Procedimento de Projeto de Circuitos Lógicos Combinacionais Passo Descrição Passo 1 Identifique a função Crie a tabela verdade ou equações, o que for mais natural para o problema em questão, para descrever o comportamento do circuito lógico combinacional. Passo 2 Converta para equações Esse passo só é necessário se no passo 1 você descreveu o circuito na forma de tabela verdade. Crie uma equação para cada saída, fazendo um OR de todos os mintermos gerados para cada saída. Simplifique as equações se desejar economizar portas. Passo 3 Implemente as equações na forma de circuitos Para cada saída (equação) crie o circuito correspondente usando portas lógicas. (Compartilhar portas entre diferentes saídas é uma opção possível.) 2.7 Digital Design Copyright © 2006 Frank Vahid 33 Exemplo: Detector de 3 níveis lógicos “1” consecutivos • Problema: Circuito para detectar três “1s” consecutivos em uma entrada de 8 bits: abcdefgh • 00011101 1 10101011 0 11110000 1 – Passo 1: Identificamos a função • Tabela verdade ou equação? – Tabela verdade enorme: 2^8=256 linhas – Equação: geramos termos para cada caso onde encontarmos 3 “1s” consecutivos. • y = abc + bcd + cde + def + efg + fgh – Passo 2: Convertemos para equações (feito). – Passo 3: Implementamos o circuito usando portas lógicas. bcd def fgh abc cde efg y a b c d e f g h a a Digital Design Copyright © 2006 Frank Vahid 34 Exemplo: Contagem de “1s” • Problema: O circuito deverá produzir uma saída de dois bits “yz” em binário para representar a quantidade de 1s nas três entradas • 010 01 101 10 000 00 – Passo 1: Identificamos a função • Tabela verdade ou equação? – Tabela verdade é imediato! – Passo 2: Convertemos em equação • y = a’bc + ab’c + abc’ + abc • z = a’b’c + a’bc’ + ab’c’ + abc – Passo 3: Implementamos . o circuito a b c a b c a b c a b c z a b c a b c a b y Digital Design Copyright © 2006 Frank Vahid 35 Mais Portas Lógicas • NAND: Inverso de AND (“NOT AND”) • NOR: Inverso de OR (“NOT OR”) • XOR: Produz 1 se uma única entrada for igual a 1 (vale para um XOR de 2 entradas – Para um número maior de entradas: número ímpar de 1s) • XNOR: Inverso de XOR (“NOT XOR”) Conhecida como função que representa a “coincidência” 2.8 x 0 0 1 1 y 0 1 0 1 F 1 0 0 1 x 0 0 1 1 y 0 1 0 1 F 0 1 1 0 x 0 0 1 1 y 0 1 0 1 F 1 0 0 0 x 0 0 1 1 y 0 1 0 1 F 1 1 1 0 x y x y F F NOR NAND XOR XNOR 1 0 x y F x y NAND 1 0 x x y y F NOR • NAND mesmo que AND com alimentação & terra invertidos. Porque? • nMOS conduz bem 0, mas não 1, • pMOS conduz bem 1, mas não 0. • Portanto NANDs são melhores que AND (vide livro do Adel Sedra – Microeletrônica). • Assim como NOR, mesmo que OR com alimentação/terra invertidos. • AND em CMOS é feita usando NAND com NOT • OR em CMOS é feita usando NOR com NOT • Logo NAND/NOR são mais usadas. Digital Design Copyright © 2006 Frank Vahid 36 Mais Portas Lógicas: Exemplos de uso • Exemplo do lavatório em aviões: – S = (abc)’ • Para detectar todos os 0… – Podemos usar um NOR • Para detectar uma igualdade – Usamos XNOR: S Circuito a b c 0 0 0 1 a0 b0 a1 b1 a2 b2 A=B • Lavatório - Comportamento: • Três lavatórios, cada um com um sensor (a, b, c), igual a 1 se a porta estiver fechada. • Luz “Livre” representada por (S) se algum lavatório estiver livre. • Circuito S = (abc)’ • Para detectar a paridade de um número: – Usamos XOR: úteis para gerar bits de paridade par (empregado para detectar a ocorrência de erro em transmissão de dados) Digital Design Copyright © 2006 Frank Vahid 37 Completude da porta NAND Porta Lógica Universal • Qualquer função Booleana pode ser implementada usando somente portas lógicas NAND. Porque? – Bastam portas AND, OR e NOT para gerar qualquer função booleana (diz-se que formam um conjunto universal de portas lógicas). – NOT: Pode ser formada por uma NAND de 2 entradas com as entradas curto-circuitadas ou interligadas. – AND: NAND seguido de um NOT – OR: NAND precedida de NOT em suas entradas: • Podemos usar o teorema de DeMorgan (ab)’=a’+b’, fazendo: • (a’b’)’ = a + b • O mesmo vale para NOR NOR é também uma porta lógica Universal ! Digital Design Copyright © 2006 Frank Vahid 38 Número de Funções Booleanas Possíveis • Quantas funções de 2 variáveis? – 22 linhas em uma tabela verdade, 2 alternativas para cada. – 2(2 2) = 24 = 16 funções possíveis • N variáveis – 2N linhas – 2(2 N) funções possíveis a 0 0 1 1 b 0 1 0 1 0 ou 1 2 alternativas 0 ou 1 2 alternativas 0 ou 1 2 alternativas 0 ou 1 2 alternativas F 24 = 16 Funções possíveis f0 0 0 0 0 b 0 1 0 1 a 0 0 1 1 f1 0 0 0 1 f2 0 0 1 0 f3 0 0 1 1 f4 0 1 0 0 f5 0 1 0 1 f6 0 1 1 0 f7 0 1 1 1 f8 1 0 0 0 f9 1 0 0 1 f10 1 0 1 0 f11 1 0 1 1 f12 1 1 0 0 f13 1 1 0 1 f14 1 1 1 0 f15 1 1 1 1 0 a A N D b a b a X O R b a O R b a N O R b a X N O R b b ’ a ’ a N A N D b 1 Digital Design Copyright © 2006 Frank Vahid 39 Decodificadores • Decodificador: Circuito (Bloco) lógico combinacional muito usado em circuitos maiores. – Converte um número binário em uma única saída ativa (em nível lógico 1). • Decodificador de 2 entradas: 4 números binários possíveis como entrada. – Logo 4 saídas, uma para cada número binário possível. • Como decodificadores são constituídos? – Uma porta AND associada a cada saída para representar cada combinação binária das entradas. • Decodificador com entrada de enable “e” – As saídas serão todas iguais a 0 se e=0 – Comportamento original se e=1 • Um decodificador de n entradas: – 2n saídas 2.9 i0 i1 d0 d1 d2 d3 1 1 1 0 0 0 i0 i1 d0 d1 d2 d3 0 0 0 0 0 1 i0 i1 d0 d1 d2 d3 i0 i1 d0 d1 d2 d3 0 0 1 0 1 0 0 1 0 1 0 0 i0 i1 d0 d1 d2 d3 e 1 1 1 1 0 0 0 e i0 i1 d0 d1 d2 d3 0 1 1 0 0 0 0 i0 d0 d1 d2 d3 i1 i1’i0’ i1’i0 i1i0’ i1i0 Digital Design Copyright © 2006 Frank Vahid 40 Exemplo de Decodificador • Display de contagem regressiva – Um microprocessador conta de 59 a 0 em binário produzindo como saída 6 bits. – Queremos acender uma das 60 luzes para cada número em binário. – Usaremos um decodificador 6x64 • 4 saídas não serão usadas. d0 d1 d2 d3 i0 i1 i2 i3 i4 i5 e 6x64 dcd d58 d59 d60 d61 d62 d63 0 Happy New Year 1 2 3 58 59 a 0 1 0 0 0 0 0 0 1 0 0 0 2 2 1 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 Digital Design Copyright © 2006 Frank Vahid 41 Multiplexador (Mux) • Mux: Outro circuito (bloco) lógico combinacional básico. – Roteia uma de suas N entradas de dados para sua saída, baseado no valor binário de suas entradas de controle (ou seleção). • MUX de 4 entradas necessita 2 entradas de seleção para indicar qual entrada será roteada paraa saída. • MUX de 8 entradas 3 entradas de seleção. • MUX de N entradas log2(N) entradas de seleção – Analogia com parque de manobras ferroviárias. Digital Design Copyright © 2006 Frank Vahid 42 Conteúdo interno de um MUX s0 d i0 i1 2 × 1 i1 i0 s0 1 d 2 × 1 i1 i0 s0 0 d 2 × 1 i1 i0 s0 d 0 i0 (1*i0=i0) i0 (0+i0=i0) 1 0 2x1 mux i0 4 1 i2 i1 i3 s1 s0 d s0 d i0 i1 i2 i3 s1 4x1 mux 0 a Digital Design Copyright © 2006 Frank Vahid 43 Exemplo de uso de MUXs • Um deputado pode usar 4 chaves para selecionar seu voto em cada questão proposta, numeradas como 1, 2, 3, 4. • Uma pessoa pode exibir qualquer voto do deputado em um painel luminoso (verde = 1, vermelho = 0) através de 2 chaves, usadas para representar o voto do deputado em uma das questões 1, 2, 3 ou 4. • Necessitamos de um MUX 4x1 i0 4x1 i2 i1 i3 s1 s0 d 1 2 3 4 Chaves de um Deputado Chaves de controle Verde/ Vermelho ligado/ desligado Digital Design Copyright © 2006 Frank Vahid 44 MUXs combinados – Muxs de N-bits • Ex: Queremos implementar um MUX que selecione uma de 2 entradas de 4 bits cada A (a3 a2 a1 a0) ou B (b3 b2 b1 b0) – Precisaremos de um MUX 2x1 de 4-bits (necessários 4 MUXs 2x1 compartilhando a entrada de seleção) para selecionar entre A ou B. i0 s0 i1 2 1 d i0 s0 i1 2 1 d i0 s0 i1 2 1 d i0 s0 i1 2 1 d a3 b3 I 0 s0 s0 I 1 4-bit 2x1 D C A B a2 b2 a1 b1 a0 b0 s0 4 C 4 4 4 c3 c2 c1 c0 é a notação simplificada para Simbologia simplificada: Digital Design Copyright © 2006 Frank Vahid 45 Exemplo de um MUX de N-bits • Quatro itens diferentes que podem ser exibidos – Temperatura (T), Média de Km por litros de combustível (A), Valor instântaneo: Km/l (I), Km por rodar (M) – cada número com 8 bits. – Escolha o item a ser exibido com duas entradas de seleção x e y. • Usaremos 8 MUXes 4x1. – Implementação através de MUXs combinados (como no slide anterior). Digital Design Copyright © 2006 Frank Vahid 46 Considerações Adicionais Captura de Esquemáticos e Simulações • Captura de Esquemáticos – Ferramenta de computador para auxiliar o projetista no desenho do circuito. • Simulador – Ferramenta de computador para auxiliar o projetista na verificação do comportamento das saídas do circuito em função das entradas. • Saídas exibidas em formas de onda. 2.10 Simulação Simular d3 d2 d1 d0 i0 i1 Outputs Entradas d3 d2 d1 d0 i0 i1 Saídas Entradas Digital Design Copyright © 2006 Frank Vahid 47 Considerações Adicionais Comportamento Não Ideal de Portas – Atrasos (Delays) • Portas lógicas reais apresentam atrasos para gerar saídas. – Saídas não mudam de valor lógico imediatamente após a mudança de valor lógico das entradas. Digital Design Copyright © 2006 Frank Vahid 48 Sumário do capítulo 2 • Circuitos Combinacionais – Circuitos nos quais as saídas são função do valor lógico atual das entradas. • Chaves: Componentes básicos dos circuitos digitais. • Portas lógicas Booleanas: AND, OR, NOT – Blocos construtivos básicos de circuitos digitais (conjunto universal) – Possibilita o uso da Álgebra Booleana para projetar circuitos. – Portas NAND também formam um conjunto universal, assim como portas NOR • Álgebra Booleana: usa variáveis com 2 valores lógicos (0/1)/operadores. • Representação de funções Booleanas: Conversão de uma forma em outra. • Projeto de Circuitos Combinacionais: Conversão de equação (ou tabela) em circuitos através de passos bem definidos. • Outras portas lógicas: NAND, NOR, XOR, XNOR. • Muxes e decodificadores: Blocos lógicos combinacionais comuns em projetos maiores.
Compartilhar