Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova Um circuito digital combinatório possui: - uma ou mais entradas digitais; - uma ou mais saídas digitais; - uma especificação funcional que descreve cada saída em função dos valores das entradas; - uma especificação temporal que inclui, pelo menos, o tempo máximo que o circuito vai demorar para produzir valores de saída a partir de um conjunto arbitrário de valores de entrada (válidos e estáveis) -> tempo de propagação. x1 x2 x3 x4 x5 (gerar na saída valor ‘1’ se pelo menos 3 das 5 entradas estarão a ‘1’; caso contrário gerar ‘0’) Circuito digital (saída válida será gerada passados, no máximo, 2 s após a recepção de entradas válidas) Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova y1 Álgebra de Boole binária - é um instrumento matemático que permite descrever relações funcionais entre as entradas e saídas de um circuito digital. Álgebra de Boole é uma estrutura matemática baseada num conjunto {B,+, }, satisfazendo o seguinte conjunto de postulados: 1. 2. 3. 4. Fecho (as operações são fechadas em B) Comutatividade Elementos neutros Distributividade mútua 5. Complementação 6. Cardinalidade Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova P1 - fecho: ambas as operações são fechadas em B: b1 b2 B b1 , b2 B b1 b2 B P2 - comutatividade b1 , b2 B b1 b2 b2 b1 b1 b2 b2 b1 P3 – elementos neutros b0 b B: b b0 b b1 b B: b b1 b Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova P4 – distributividade mútua b1 b2 b3 b1 b2 b1 b3 b1 b2 b3 b1 b2 b1 b3 b1 ,b2 ,b3B b1 ,b2 ,b3B P5 - complementação b Bb B b b b1 b b b0 P6 – cardinalidade b1 b2 #B 2 b1B b2 B Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova Se #B = 2, temos álgebra de Boole a dois valores (B={0,1}). Operadores: soma lógica OR 0+0=0 0+1=1 1+0=1 1+1=1 produto AND 00=0 01=0 10=0 11=1 complementação NOT 0 = 1 1 = 0 Expressões - conjunto de variáveis e/ou constantes 0 e 1 associadas por operadores x yz Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova Idempotência bB b b = b e b + b = b P3 P5 P4 P5 P3 b b = b b + b0 = b b + b b = b (b + b) = b b1 = b Unicidade do elemento neutro Sejam b0a e b0b tal que b + b0a = b + b0b = b b0a + b0b = b0a P3 b0b + b0a = b0b P3 b0a + b0b = b0b P2 => b0a = b0b Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova Unicidade do complemento Elemento absorvente bB b b0 = b0 b + b1 = b1 P3 P5 P4 P3 P5 b b0 = b b0 + b0 = b b0 + b b = b (b0 +b) = b b = b0 Absorção x,yB x + x y = x x (x + y) = x P3 P4 P3 x + x y = x b1 + x y = x (b1 + y) = x b1 = x Simplificação x,yB x +x y = x + y x (x +y) = x y Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova Adjacência x,yB x y + x y = x (x + y) (x +y) = x P4 P5 P3 x y + x y = x (y +y) = x b1 = x Involução xB x = x indução perfeita: x 0 1 x 1 0 x 0 1 Consenso x,y,zB x y +x z + y z = x y +x z (x + y) (x + z) (y + z) = (x + y) (x + z) Associatividade x,y,zB (x y) z = x (y z) (x + y) + z = x + (y + z) Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova x,yB x + y =x y x y =x +y e P5, elemento absorvente, idempotência P4 (x + y) (x y) = x x y +x y y = b0 Generalização para n variáveis: n n x x i 1 i i i 1 n n x x i i 1 i 1 i Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova Todo o teorema ou identidade algébrica dedutível a partir dos postulados da álgebra de Boole conserva a validade se as operações (+) e (.) e os elementos neutros forem trocados. F D ( x1, x2 ,...,xn ,,,0,1) F ( x1, x2 ,...,xn ,,,1,0) F ( x1, x2 ,...,xn ) F D ( x1, x2 ,...,xn ) Exemplos: [ (x +y) (z + 1) ]D = (x y) + (z 0) ( x1 x2 ) x3 x1 x2 x3 Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova - conjunto de operadores a partir dos quais se pode representar qualquer função booleana. { AND, OR, NOT } { AND, NOT } { OR, NOT } { NAND } { NOR } ... x y x 0 0 1 1 y 0 1 0 1 x NAND y 1 1 1 0 x y x 0 0 1 1 y 0 1 0 1 x NOR y 1 0 0 0 Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova Para escrever uma expressão booleana apenas com operadores NAND devese primeiro colocá-la na forma da soma de produtos e a seguir aplicar o teorema de involução e as leis de DeMorgan Para escrever uma expressão booleana apenas com operadores NOR devese primeiro colocá-la na forma do produto de somas e a seguir aplicar o teorema de involução e as leis de DeMorgan Exemplos: x ( y z) x ( y z) x y z x ( y z ) ( x y) ( x z ) ( x y) ( x z ) x y x z Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova Uma função booleana é uma correspondência que associa um elemento do conjunto B={0,1} a cada uma das 2n combinações possíveis que as variáveis podem assumir. x1 x2 ... xn y1 y2 ... ym Sistema digital n Existem 2m×2 funções booleanas diferentes que podem ser implementadas num sistema digital com n entradas e m saídas. Exemplos: 1 Para n=1, m=1: 21×2 = 4 x 0 1 constante ‘0’ 0 0 4 Para n=4, m=3: 23×2 = 248= 281 474 976 710 656 Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova x 0 1 x 1 0 constante ‘1’ 1 1 Para obter a função dual de f, deve-se aplicar o princípio de dualidade a f. f D ( x1, x2 ,...,xn ,,,0,1) f ( x1, x2 ,...,xn ,,,1,0) Uma função f é auto-dual se f = fD => f ( x1, x2 ,...,xn ) f ( x1, x2 ,...,xn ) Exemplo: f ( x, y, z ) x y x z y z f D ( x, y, z) ( x y) ( x z ) ( y z ) (x y z) ( y z) x y x z y z f ( x, y, z ) Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 f(x,y,z) 0 0 1 0 1 0 1 1 - tabular (tabela de verdade) - algébrica - esquemática (circuitos lógicos) f ( x, y, z) x y z x y z x y z x y z x y z Representação tabular é única: x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 f(x,y,z) 0 1 0 0 1 1 1 1 Representação algébrica inclui frequentemente termos redundantes: Representação esquemática: x y z => necessidade de simplificação f ( x, y, z ) x y z f(x,y,z) x y z Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova f(x,y,z) buffer NOT AND NAND OR NOR XOR XNOR x y x 0 0 1 1 y 0 1 0 1 x XOR y 0 1 1 0 x y x 0 0 1 1 y 0 1 0 1 x XNOR y 1 0 0 1 Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova Exprima a função y na forma mais simples recorrendo a operadores NAND. y x1 ( x2 x3 x4 ) x2 y x1 x2 x1 x3 x4 x2 x2 x1 x3 x4 y x2 x1 x3 x4 x2 x1 x3 x4 Exprima a função y na forma mais simples recorrendo a operadores NOR. y x1 ( x2 x3 x4 ) x2 y ( x1 x2 ) ( x2 x3 x4 x2 ) ( x1 x2 ) ( x2 x3 x4 ) y ( x1 x2 ) ( x2 x3 ) ( x2 x4 ) y ( x1 x2 ) ( x2 x3 ) ( x2 x4 ) ( x1 x2 ) ( x2 x3 ) ( x2 x4 ) Sistemas Digitais (Bolonha), 2007, Iouliia Skliarova