ufmg dcc001 2011-21 aula expositiva 2 2.1 bits e códigos 2.2 circuitos combinatórios 2.2.1...

86
UFMG DCC001 2011-2 1 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas lógicas 2.2.5 Síntese de Circuitos Combinatórios 2.2.6 Comparação de Binários sem sinal DCC 001 Programação de Computadores Semestre de 2011 Prof. Osvaldo Carvalho

Upload: internet

Post on 22-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 1

Aula Expositiva 2

2.1 Bits e Códigos2.2 Circuitos Combinatórios2.2.1 Álgebra de Boole2.2.2 Portas Lógicas2.2.4 Aritmética com portas lógicas2.2.5 Síntese de Circuitos Combinatórios2.2.6 Comparação de Binários sem sinal

DCC 001Programação de Computadores

2º Semestre de 2011Prof. Osvaldo Carvalho

Page 2: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Bits e Códigos

UFMG DCC001 2011-1 2

Page 3: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Bits e Códigos

Dados representam informação: precisam ser interpretados

Interpretaço pode ser estabelecida por código

Cada um pode criar o código que quiser, mas aceitação do código determina: Facilidade de comunicação Capacidade de armazenamento de

informações Capacidade de conversão entre

representações Eficiência de manipulação de dados

UFMG DCC001 2011-2 3

Page 4: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 4

Representação de Caracteres: Código ASCII – 7 bits

Caractere Código DecimalEnd of Transmission 0000100 4

Line Feed 0001010 10Space 0100000 32

( 0101000 40+ 0101011 430 0110000 481 0110001 492 0110010 503 0110011 51A 1000001 65B 1000010 66C 1000011 67a 1100001 97b 1100010 98c 1100011 99

Page 5: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Código ASCII Estendido e Código Unicode

Código ASCII oficial usa 7 bits: permite apenas 27 = 128 valores distintos

Proposto por norte-americanos, ausência de caracteres acentuados, cedilha etc.

Representação de caracteres acentuados permitida no código ASCII estendido, com 8 bits: permite 256 valores

Código Unicode é versão moderna do ASCII: permite codificar caracteres em todas as línguas conhecidas

UFMG DCC001 2011-2 5

Page 6: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Representação de Números

Representação de números usa sistema arábico em base binária

Para facilidade de processamento de operações aritméticas, números negativos não usam representação de sinal-magnitude; outra codificação é mais simples e eficiente

UFMG DCC001 2011-2 6

Page 7: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Notação Arábica em base Binária, sem Sinal

Decimal 123 pode ser representado pelos 7 bits 1111011, sem sinal

UFMG DCC001 2011-2 7

123 = 1.26 +1.25 +1.24 +1.23 +0.22 +1.21 +1.20.

1111011

Page 8: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Conversão Decimal-binário usando Tabela de Potências de 2

UFMG DCC001 2011-2 8

n 0 1 2 3 4 5 6 7 8 9 102n 1 2 4 8 16 32 64 128 256 512 1024

A converter 123 59 27 11 3 1 0Potência de 2 64 32 16 8 2 1

Page 9: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 9

RGB – Red, Green, Blue

Níveis de vermelho, verde e azul são representados como binários sem sinal

Page 10: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 10

Binários Negativos usando Sinal-Magnitude

1 bit usado para o sinal Com 8 bits, se reservarmos o bit

mais à esquerda para o sinal, e interpretarmos os bits restantes como a magnitude, podemos representar todos os inteiros entre -127 e +127

Zero tem duas representações: 10000000 e 00000000

Page 11: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 11

Binários Negativos com Deslocamento

Sem Sinal Bits c/ Deslocamento

0 000 -3

1 001 -2

2 010 -1

3 011 0

4 100 1

5 101 2

6 110 3

7 111 4

Page 12: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Complemento de 2

A absoluta maioria dos computadores utiliza a representação de “complemento de 2” para números inteiros negativos

Como veremos, isto simplifica operações de soma e subtração em circuitos digitais.

Representações em sinal-magnitude e por deslocamento são aplicadas para a notação de ponto flutuante, como veremos a seguir

UFMG DCC001 2011-2 12

Page 13: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Complemento de 2 com 3 bits

UFMG DCC001 2011-2 13

b2 b1 b0

0 0 0 00 0 1 10 1 0 20 1 1 31 0 0 -41 0 1 -31 1 0 -21 1 1 -1

BitsComplemento de 2

Valor

Valor = -4b2 + 2b1 +b0

Page 14: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Complemento de 2: obtendo o complemento

Se n está representado em complemento de 2, -n é obtido em dois passos: Todos os bits de n são invertidos; Soma-se 1 ao resultado da inversão.

UFMG DCC001 2011-2 14

Page 15: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Complemento de 2 com 3 bits

UFMG DCC001 2011-2 15

b2 b1 b0

0 0 0 00 0 1 10 1 0 20 1 1 31 0 0 -41 0 1 -31 1 0 -21 1 1 -1

BitsComplemento de 2

Valor 010 (210)

invertendo os bits:

101 (510)

somando 1:110 (610)

Page 16: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 16

Ponto Flutuante

Utiliza notação científica com potências de 2 Existe um padrão mundial, o IEEE 754

32 bits, ou precisão simples 1 bit de sinal, 8 de expoente, 23 de mantissa (ou

significando) 64 bits, ou precisão dupla

1 bit de sinal, 11 de expoente, 52 de mantissa Expoentes negativos são representados por

deslocamento Nós voltaremos a estudar esta representação,

que tem consequências sobre erros de arredondamento

Page 17: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

IEEE 754 para 32 bits

UFMG DCC001 2011-2 17

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Expoente

MantissanormalizadaSinal

Page 18: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Notação Científica Normalizada

• 6,02 x 1023, 602 x 1021 ou 0,00602 x 1026 ?

• A primeira forma é normalizada, com um único algarismo diferente de zero antes da vírgula

• Em binário, o algarismo diferente de zero a ser colocado antes da vírgula é sempre 1, e pode ser implícito

UFMG DCC001 2011-2 18

Page 19: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Exemplo de número IEEE 754 de 32 bits

UFMG DCC001 2011-2 19

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 1 0 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

12

8

0 0 16

8 4 2 1 0,5

0 0,1

25

0 0,0

31

25

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

15932

1,65625

7113539584

Expoente

Significando

Valor

Sinal positivo

Page 20: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Padrão IEEE 754Valores Especiais

Expoentes com todos os bits iguais a 1 ou todos os bits iguais a zero têm interpretações especiais

Zero é representado por expoente e mantissa iguais a zero (duas representações)

UFMG DCC001 2011-2 20

Page 21: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Padrão IEEE 754Valores Especiais

Expoentes com todos os bits iguais a 1 são usados para representar NaN (Not a Number), +∞ e -∞

Úteis para representar resultados de divisões por zero, funções não definidas para alguns argumentos, etc.

Números com todos os bits do expoente iguais a 0 e mantissa diferente de zero são de-normalizados, e representam números com valor absoluto muito pequeno

UFMG DCC001 2011-2 21

Page 22: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Álgebra de Boole

UFMG DCC001 2011-1 22

Page 23: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 23

Bits e Álgebra de Boole

George BooleInglaterra,1820-1898

Page 24: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 24

NÃO (NOT)

a NOT a

0 1

1 0

Page 25: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 25

E (AND)

a b a AND b

0 0 0

0 1 0

1 0 0

1 1 1

Page 26: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 26

OU (OR)

a b a OR b

0 0 0

0 1 1

1 0 1

1 1 1

Page 27: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 27

Portas NOT, AND, OR

Arquivo NOT_AND_OR.cir

c

Porta NOT

Porta AND

Entrada

Porta OR

Saída

Page 28: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 28

Expressões Booleanas Compactas

a’ denota NOT aa + b denota a OR bab ou a.b denota a AND b

ab + a’b’ , (a + b)’ são exemplos de expressões booleanas, ou expressões lógicas

Page 29: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Equivalência de Expressões

(a’)’= a a+1 = 1; a+0 =a a.1 = a; a.0 = 0 a + (b+c) = (a+b)+c = a + b + c a = a+a; a = a.a ab + ab’ = a

UFMG DCC001 2011-2 29

Page 30: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Transistores e Portas Lógicas

UFMG DCC001 2011-1 30

Page 31: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 31

Transistores e Portas Lógicas

Transistores são a base para construção de circuitos compactos e rápidos: A tecnologia atual (2010) permite colocar

1,2 bilhões de transistores em um chip de 1,6 cm de lado

O tempo de reação a mudanças nas entradas é muito pequeno

Transistores podem ser usados para amplificar sinais mas, em circuitos digitais, funcionam essencialmente como interruptores

Page 32: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 32

Portas NAND e NOR

Importantes porque sua implementação com transistores é mais simples

a NAND b = (a.b)’

a NOR b = (a+b)’

Page 33: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

AND, NAND, OR, NOR

UFMG DCC001 2011-2 33

AND(a,b) NAND(a,b)

Só é igual a 1 quando a e b são iguais a 1

Só é igual a 0 quando a e b são iguais a 1

OR(a,b) NOR(a,b)

Só é igual a 0 quando a e b são iguais a 0

Só é igual a 1 quando a e b são iguais a 0

Page 34: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Vamos convencionar: 1 – Voltagem alta 0 – Voltagem baixa (terra)

UFMG DCC001 2011-2 34

Transistor como Interruptor

Controle alto, condutorperfeito:Voltagem na entrada necessariamente igual à saída

Controle baixo, isolanteperfeito: entrada podeser diferente da saída

Voltagemna Entrada

Voltagemna Saída

Voltagemde Controle

Page 35: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 35

Porta NOT 1 transistor

a

a’

Terra V= 0 (voltagem baixa)

0

1

1

Fonte V= 5 (voltagem alta)

Page 36: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 36

Porta NOT 1 transistor

a

a’

Terra V= 0 (voltagem baixa)

1

0

Fonte V= 5 (voltagem alta)

1

Page 37: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2010-2 37

Porta NOR 2 transistores

1

1

0

0

a

b

(a + b)’

Terra

Fonte

Page 38: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2010-2 38

Porta NOR 2 transistores

1

0

1

0

a

b

(a + b)’

Terra

Fonte

Page 39: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2010-2 39

Porta NOR 2 transistores

1

0

0

1

a

b

(a + b)’

Terra

Fonte

Page 40: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2010-2 40

Porta NOR 2 transistores

1

0

1

1

a

b

(a + b)’

Terra

Fonte

Page 41: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 41

Porta NAND 2 transistores

1

0

0b

(a.b)’

Terra

Fonte1

a

Page 42: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 42

Porta NAND 2 transistores

1

0

1b

(a.b)’

Terra

Fonte1

a

Page 43: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 43

Porta NAND 2 transistores

1

1

0b

(a.b)’

Terra

Fonte1

a

Page 44: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 44

Porta NAND 2 transistores

0

1

1b

(a.b)’

Terra

Fonte1

a

Page 45: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 45

Porta AND 3 transistores

1

0b

Terra

Fonte

a

a.b0

Fonte

Terra

NAND NOT

Page 46: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Circuitos CombinatóriosSoma de Binários de 1 bit

UFMG DCC001 2011-1 46

Page 47: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 47

Circuitos Combinatórios

Circuitos combinatórios são circuitos digitais cuja saída só depende dos valores de suas entradas

Na próxima aula veremos circuitos sequenciais, cuja saída depende das entradas e também de dados armazenados em memórias

Page 48: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 48

Circuitos Lógicos e Expressões Lógicas

Não é difícil acreditar que podemos fazer circuitos para uma expressão lógica qualquer como a’(b’+c)(ca)’

a’

(ca)’

b’+c

Page 49: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Circuitos Lógicos e Expressões Lógicas

Mas podemos fazer circuitos que fazem contas?

Todos sabemos que computadores fazem contas, e que a resposta é afirmativa. Resta saber como!

Vamos começar por um problema simples: soma de dois inteiros de 1 bit

UFMG DCC001 2011-2 49

Page 50: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 50

Soma de 2 variáveis de 1 bit - 1

Queremos construir um circuito lógico para somar duas variáveis de um bit, codificados como binários sem sinal: 0 vale Zero 1 vale Um

Na base dez, o resultado pode ser 0, 1 ou 2

Page 51: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Soma de 2 variáveis de 1 bit – 2

O resultado, codificado como binário sem sinal, é 0, 1 ou 10

Ou seja, são necessários 2 bits para representar o resultado da soma de duas variáveis de 1 bit

Somar significa: obter a representação em binário sem sinal da soma das entradas, também codificadas como binários sem sinal

UFMG DCC001 2011-2 51

Page 52: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 52

Circuito Somador de 2 variáveis de 1 bit: Entradas e Saídas

Circuito Somador1 bit

a b

s0s1

Entradas1 bit cada

Notação comum para conjuntos de bits: 0 é o índice do bit menos significativo

Saídas

Page 53: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 53

Tabela da Verdade paraSomador de 2 variáveis de 1 bit

Entradas

Saídas:2 funções lógicas das mesmas variáveis

Todos os valores possíveis para as entradas

Resultados dasoma embinário semsinal

Page 54: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 54

Tabela da Verdade

Tabela para especificação de funções lógicas

Especifica saídas para todas as combinações possíveis para as variáveis de entrada

(Já usamos tabelas da verdade para especificar as funções NOT, AND e OR)

Page 55: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Obtendo um Circuito a partir da Tabela da Verdade

UFMG DCC001 2011-2 55

Passo 1: conseguir uma expressão lógica equivalente à tabela da verdade

Passo 2: construir o circuito equivalente à expressão lógica

Page 56: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Expressões equivalentes a uma Tabela da Verdade

UFMG DCC001 2011-2 56

Uma expressão lógica e uma tabela da verdade são equivalentes quando, para qualquer combinação de valores das variáveis de entrada, os valores da função e da expressão são iguais:

f(x,y) = x’y’ + xy

x y f(x,y)

0 0 1

0 1 0

1 0 0

1 1 1

Page 57: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Cobertura dos 1’s de uma Função Booleana

UFMG DCC001 2011-2 57

x y f(x,y)

0 0 1

0 1 0

1 0 0

1 1 1

x’y’ + xy

x’y’ é igual a 1 se e somente se x=0 e y=0 xy é igual a 1 se e somente se x=1 e y=1 x’y’ + xy “cobre” exatamente a função

desejada

Page 58: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 58

Expressões Lógicas para Somador de 2 variáveis de 1 bit

s0 = a’b + ab’

s1 = ab

Page 59: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 59

Circuito Soma Binária de 1 bit

arquivo Soma_1_bit.circ

ab

a’b

ab’

Page 60: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 60

Funções Lógicas podem fazer Aritmética

Produzimos um circuito lógico com duas entradas de 1 bit representando binários sem sinal, e que produz em sua saída dois bits representando a soma das entradas em binário sem sinal!

Conseguimos fazer “cálculos” com as funções lógicas NOT, AND e OR!

Page 61: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Soma de Binários com n Bits

UFMG DCC001 2011-1 61

Page 62: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 62

Soma de Binários de Vários Bits - 1

Vamos agora considerar a soma de números binários com vários bits cada um

Em princípio poderíamos construir a tabela da verdade para a soma e deduzir a expressão lógica, mas…

Para a soma de dois inteiros de 32 bits, a tabela da verdade teria 264 entradas.

Page 63: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Tempo para tratar 264 itens

Um nano-segundo é o tempo de reação de uma porta lógica

Um ano tem nano-segundos Temos E portanto,

Temos então linhas a analisar;

Com um nano-segundo por linha, 3 milênios!

UFMG DCC001 2011-2 63

Page 64: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Soma de Binários de Vários Bits - 2

Temos que adotar outro enfoque Primeiramente vamos examinar

como nós, humanos, fazemos uma soma em binário

Depois, vamos construir um somador de forma modular, explorando regularidades no processo de soma

UFMG DCC001 2011-2 64

Page 65: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 65

Somas em decimal

Feita coluna por coluna; quando a soma de dois algarismos excede 9, o resultado daquela coluna é somente o dígito mais significativo, e “vai-um” para a coluna seguinte

Vai-um 1 1a 2 7 7 6b 4 7 9 1

a+b 7 5 6 7

0

Page 66: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Somas em binário

Feita coluna por coluna;

Quando a soma de dois algarismos excede 1, o resultado daquela coluna é somente o dígito mais significativo, e “vai-um” para a coluna seguinteUFMG DCC001 2011-2 66

Page 67: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 67

Soma de Binários de vários bits: Exemplo

1 0 1 1 1 0 0

1 0 1 1 1 0 1

1 0 0 1 1 1 0

1 0 1 0 1 0 1 1

“Vai-Um”

Parcelas

Soma

1011101+1001110 = ?

Page 68: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 68

Soma de Binários de vários bits

Vamos usar esta aritmética para construir um circuito

A idéia é construir um módulo que faça a operação de uma das colunas da soma

O somador terá tantos deste módulo quantas forem as colunas, ou seja, quantos forem os bits das parcelas

Page 69: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 69

Módulo: Circuito “Soma Completa”

Entradas os dois bits de uma coluna

das parcelas a entrada “vem-um”,

alimentada pela saída “vai-um” da coluna à direita

Saídas um bit de resultado um bit de “vai-um” (que será

ligado à entrada “vem-um” da coluna à esquerda)

SCvai-um

soma

vem-um

ab

Page 70: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 70

Somador em Cascata

vem-um do bit menos significativo é zero

Igual a 1 quando a soma tiver 5 bits

CircuitoSoma-Completa

Page 71: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 71

Soma Binária de 3 bits (Soma Completa)Tabela da Verdade

a b vem-um soma vai-um

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

vai-um = a’bv + ab’v + abv’ + abv

soma = a’b’v + a’bv’ + ab’v’ + abv

Page 72: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Síntese de Circuitos Combinatórios

UFMG DCC001 2011-2 72

O processo de cobertura de 1’s de uma tabela da verdade para geração de um circuito pode ser automatizado

O Logisim faz isso, e ainda consegue simplificar o circuito

Page 73: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 73

Circuito Soma Completa

arquivo Somador4bits.circ

Page 74: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 74

Somador 4 bits

arquivo Somador4bits.circ

Page 75: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Comparação de Binários com n Bits

UFMG DCC001 2011-1 75

Page 76: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 76

Comparação de binários sem sinal

Circuito desejado: Entradas: a e b, dois binários sem sinal Saídas: 3 bits indicando o resultado da

comparação entre a e b

a b

Comparador

a < b a = b a > b

Page 77: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Comparação de binários sem sinal

Aqui também temos problemas para o uso da Tabela da Verdade quando comparamos inteiros de 32 bits (por exemplo)

Vamos usar o mesmo enfoque utilizado na soma: verificar como nós fazemos a comparação, e procurar dividir o problema

É fácil ver que, para comparar dois binários sem sinal, comparamos bit a bit, a partir do mais significativo; na primeira diferença, a parcela com o bit igual a 1 é a maior

UFMG DCC001 2011-2 77

Page 78: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Comparação – Diferença no quarto bit mais significativo

UFMG DCC001 2011-2 78

a 1 1 1 1 1 0 0 0b 1 1 1 0 1 1 1 0

aMaior 0 0 0 0 1 1 1 1 1abIguais 1 1 1 1 0 0 0 0 0bMaior 0 0 0 0 0 0 0 0 0

Antes de qualquer comparação, abIguais = 1

Page 79: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Comparação – Diferença no primeiro bit mais significativo

UFMG DCC001 2011-2 79

a 0 1 1 1 1 0 0 0b 1 1 1 0 1 1 1 0

aMaior 0 0 0 0 0 0 0 0 0abIguais 1 0 0 0 0 0 0 0 0bMaior 0 1 1 1 1 1 1 1 1

Page 80: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Comparação – Todos os bits iguais

UFMG DCC001 2011-2 80

a 1 1 1 0 1 0 1 0b 1 1 1 0 1 0 1 0

aMaior 0 0 0 0 0 0 0 0 0abIguais 1 1 1 1 1 1 1 1 1bMaior 0 0 0 0 0 0 0 0 0

Page 81: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Comparador 1 bit

UFMG DCC001 2011-2 81

Módulo Comparador

de 1 bit

ab

aMaior

bMaior

abIguais

Amaior

Bmaior

ABiguais

Bit corrente

Vêm do comparador à esquerda

Vão para o comparador à direita

Page 82: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 82

Comparador 4 bits

Entrada aEntrada b

Para o bit mais significativo,aMaior = bMaior = 0, e abIguais = 1

Page 83: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 83

Comparador 1 bitTabela da Verdade

Estas entradas vêm da coluna à esquerda

“x” é usado quando a combinação de entradas nunca ocorre – o Logisim simplifica o circuito

Estas saídas vão para a coluna à direita

São 2^5 = 32 linhas na tabela

Page 84: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

UFMG DCC001 2011-2 84

Comparador 1 bitCircuito

Arquivo Compare_4_bits.circ

Page 85: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Resumo

Bits exigem códigos para ter significado Códigos importantes incluem ASCII,

binário sem sinal, complemento de 2, e IEEE 754.

Toda transformação de informação feita por um processador é uma composição das operações básicas NOT, AND e OR da Álgebra de Boole

Expressões lógicas e circuitos combinatórios equivalentes podem ser extraídos de tabelas da verdade

UFMG DCC001 2011-2 85

Page 86: UFMG DCC001 2011-21 Aula Expositiva 2 2.1 Bits e Códigos 2.2 Circuitos Combinatórios 2.2.1 Álgebra de Boole 2.2.2 Portas Lógicas 2.2.4 Aritmética com portas

Resumo

Circuitos para soma ou comparação de duas parcelas de 1 bit podem ser obtidos por tabelas da verdade

Para somar ou comparar parcelas de 32 bits (p.ex.), é preciso montar circuitos em cascata, com transformações graduais da informação.

UFMG DCC001 2011-2 86