260 likes | 423 Vues
Engenharia de Software para Computação Embarcada. Prof. Frederico Ferlini Aula 1. CONTEÚDO. Conversão de Base Álgebra Booleana Soma de Produtos Propriedades Representações de Funções Booleanas Forma Canônica Projeto de Lógica Combinacional Exemplo VHDL. Conversão de Base.
E N D
Engenharia de Software para Computação Embarcada Prof. Frederico Ferlini Aula 1
CONTEÚDO • Conversão de Base • Álgebra Booleana • Soma de Produtos • Propriedades • Representações de Funções Booleanas • Forma Canônica • Projeto de Lógica Combinacional • Exemplo VHDL
Conversão de Base • (10100101)2
Conversão de base • (10100101)2 (A5)16 5 A
Conversão de base • (10100101)2 (A5)16 • (10100101)2 (165)10 • 27+ 25+ 22+ 20=165 • 128 + 32 + 4 + 1 = 165 5 A
Conversão de base • (10100101)2 (A5)16 • (0101)10 (___)2 • (0101)16 (___)2 (___)10 • (0101)8 (___)2 (___)10
Conversão de base • (10100101)2 (A5)16 • (0101)10 (1100101)2 • (0101)16 (0001 0000 0001)2 (257)10 • (0101)8 (001 000 001)2 (65)10
Equações Booleanas • Procedência e notação • ( ) • ` NOT • * AND • + OR • a = 1, b = 1, c = 0, d = 1 • a.b + c 1
Equações Booleanas • Procedência e notação • ( ) • ` NOT • * AND • + OR • a = 1, b = 1, c = 0,d = 1 • a.b + c 1 • a.b` ? • (a.c)` ? • (a + b`).c + d` ?
Equações Booleanas • Procedência e notação • ( ) • ` NOT • * AND • + OR • a = 1, b = 1, c = 0,d = 1 • a.b + c 1 • a.b` 0 • (a.c)` 1 • (a + b`).c + d` 0
Soma de Produtos • Correto! • abc + abc` • ab + a`c + abc • a + b` + ac F(a,b,c) = a`bc+abc+ab+c Variável: a, b e c Literal: 9 literais Termo do produto: • a`bc • abc • ab • c • Errado! • (a + b).c • (ab + bc).(b + c) • (ab + bc)`
Propriedades • Comutativa • a + b = b + a • a * b = b * a • Distributiva • a * (b + c) = a * b + a * c • a + (b * c) = (a + b) * (a + c) • (this one is tricky!) • 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
Propriedades • Comutativa • a + b = b + a • a * b = b * a • Distributiva • a * (b + c) = a * b + a * c • a + (b * c) = (a + b) * (a + c) • (this one is tricky!) • 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 • ElementoNulo • a + 1 = 1 • a * 0 = 0 • Lei daIdempotência • a + a = a • a * a = a • Lei daInvolução • (a’)’ = a • DeMorgan’s • (a + b)’ = a’b’ • (ab)’ = a’ + b’ • Very useful!
Exercício Propriedades • F = ab(c + d) R : F = abc + abd • F = wx(x`y + zy` + xy) Q: simplifique. ? • F = x(x` + y(x` + y`)) Q: Mostre que F = 0 ? • F = (ab` + c) Q: F` na forma de soma de produtos ? SOMA DE PROTUDOS
Exercício Propriedades • F = ab(c + d) R : F = abc + abd • F = wx(x`y + zy` + xy) Q: simplifique. ? R: wxzy`+ wxy • F = x(x` + y(x` + y`)) Q: Mostre que F = 0 ? R: xx` + xyx` + xyy` = 0 • F = (ab` + c) Q: F` na forma de soma de produtos ? R: a`c` + bc` SOMA DE PROTUDOS
Representação (FunçãoBooleana) Afirmação 1: Figual1 quandoa é 0 e b é 0, ouquandoa é 0 e b é 1. ( a ) a a b F b 0 0 1 F Equação 1: F(a,b) = a’b’ + a’b 0 1 1 1 0 0 ( c ) ( b ) 1 1 0 Circuito1 TabelaVerdade ( d ) T Função F • Diferentes Representações
Representação (FunçãoBooleana) Afirmação 1: Figual1 quandoa é 0 e b é 0, ouquandoa é 0 e b é 1. Afirmação 2: Figual a 1 quandoa é 0, independente do valor de b ( a ) a a b F b 0 0 1 F Equação 1: F(a,b) = a’b’ + a’b 0 1 1 Equaçao2: F(a,b) = a’ 1 0 0 ( c ) ( b ) 1 1 0 Circuito1 TabelaVerdade a F ( d ) Circuito2 T Função F • DiferentesRepresentações: • Equação / Afirmação • Circuito • TabelaVerdade INÚMERAS ÚNICA
Representação (FunçãoBooleana) F = ab + a ' F = a’b’ + a’b + ab a b F a b F 0 0 1 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 • Comparação • Tabela Verdade • Problema? • Muitas variáveis tabela verdade inviável • Solução • Forma canônica Iguais
Forma Canônica • Mintermo • Termo da função contendo todas as variáveis Ex.: F(a,b,c) = a`bc+abc+ab+c • Q: F(a,b)=ab+a`igual F(a,b)=a’b’+a’b+ab ? • Passos • Soma de produtos • Expansão de termos F = ab+a’ (jáestána forma de soma de produtos) F = ab + a’(b+b’) (expansão de termos) F = ab + a’b + a’b’ (IGUAIS!!)
Forma Canônica • Q: F(a,b)=ab+a`igual F(a,b)=a’b’+a’b+ab ? • Passos • Soma de produtos • Expansão de termos • Ex: F(a,b,c) = (a+b)(a`+ac)b • Q: Converter para forma canônica. F = ab+a’ (jáestána forma de soma de produtos) F = ab + a’(b+b’) (expansão de termos) F = ab + a’b + a’b’ (IGUAIS!!)
Forma Canônica a b c F 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 • Q: F(a,b)=ab+a`igual F(a,b)=a’b’+a’b+ab ? • Passos • Soma de produtos • Expansão de termos • Ex: F(a,b,c) = (a+b)(a`+ac)b • Q: Converter para forma canônica. • R: a`bc` + a`bc + abc F = ab+a’ (jáestána forma de soma de produtos) F = ab + a’(b+b’) (expansão de termos) F = ab + a’b + a’b’ (IGUAIS!!)
Processo de Projeto Lógico Combinacional Passo Descrição Passo 1 Capturea função Crie uma tabela verdade ou equações, o que for mais natural para o problema dado, descrevendo o comportamento lógico combinacional. Passo 2 Converta p/ equações Este passo é necessário apenas se você capturou a função usando uma tabela verdade em lugar de equações. Crie uma equação para cada saída usando um operador OR com todos os mintermos daquela saída. Simplifique as equações, se desejado. Implemente um circuito baseado em portas Passo 3 Para cada saída, crie um circuito correspondente à equação dessa saída. (Opcionalmente, pode-se compartilhar portas entre as saídas múltiplas.)
Example: Detector de três 1s a abc b c bcd d cde e y def f efg g fgh h • Problema: • Detector de um padrão compost de três 1s em uma entrada de 8-bits:abcdefgh • 00011101 1 10101011 0 11110000 1 • Passo 1: Capture a função • Tabela verdade ou equação? • Tabela muito grande: 2^8=256 linhas • Equação: criar termos para cada caso possível com três 1s consecutivos. • y = abc + bcd + cde + def + efg + fgh • Passo 2: Converta p/ equação – pronto! • Passo 3:Implemente com portas lógicas
Exemplo com múltiplas saídas • Conversor BCD p/ 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 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 Fazer o circuito para os segmentos D e E
Exemplo VHDL CONVERSOR BCD p/ 7-Segmentos (Binary-coded Decimal)