Sistemas Digitais (SD) Circuitos combinatórios: somadores, subtractores e comparadores

Documentos relacionados
SISTEMAS DIGITAIS (SD)

SISTEMAS DIGITAIS CIRCUITOS COMBINATÓRIOS TÍPICOS

Sistemas Digitais (SD) Unidade Lógica e Aritmética

SISTEMAS DIGITAIS (SD)

SISTEMAS DIGITAIS (SD)

SISTEMAS DIGITAIS (SD)

Sistemas Digitais (SD)

Sistemas Digitais (SD) Aula de Problemas P6 1ª Parte

Sistemas Digitais (SD) Máquinas de Estado Microprogramadas: Microprograma

Sistemas Digitais (SD) Unidade Lógica e Aritmética

Sistemas Digitais (SD) Síntese de Circuitos Sequenciais: Definições

Sistemas Digitais (SD)

Sistemas Digitais (SD) Contadores

Sistemas Digitais (SD)

Sistemas Digitais (SD) Máquinas de Estado Microprogramadas: Circuito de Dados e Circuito de Controlo

SISTEMAS DIGITAIS (SD)

Sistemas Digitais (SD)

Sistemas Digitais (SD) Minimização de Funções Booleanas

SISTEMAS DIGITAIS (SD)

SISTEMAS DIGITAIS (SD)

SISTEMAS DIGITAIS (SD)

SISTEMAS DIGITAIS (SD)

Sistemas Digitais (SD) Memórias

SISTEMAS DIGITAIS CIRCUITOS COMBINATÓRIOS TÍPICOS

SISTEMAS DIGITAIS (SD)

Sistemas Digitais (SD) Circuitos combinatórios: descodificadores, codificadores, multiplexers e demultiplexers

Sistemas Digitais (SD) Sistemas de Numeração e Códigos

SISTEMAS DIGITAIS (SD)

Sistemas Digitais. Planificação das aulas teóricas e aulas práticas Ano Lectivo 2005/ 2006

SISTEMAS DIGITAIS (SD)

SISTEMAS DIGITAIS (SD)

SISTEMAS DIGITAIS (SD)

SISTEMAS DIGITAIS (SD)

Sistemas Digitais Circuitos Aritméticos e Unidades Aritméticas e Lógicas (ALUs)

Sistemas Digitais (SD) Lógica Programável

Técnicas Digitais para Computação

Sistemas Digitais (SD) Elementos de Tecnologia Funções Lógicas

Sistemas Digitais Circuitos Aritméticos e Representação de Números com Sinal

Arquitetura de Computadores I

Sistemas Digitais (SD) Lógica Programável

Organização de Computadores

Arquitectura de Computadores I

INSTITUTO SUPERIOR TÉCNICO. Arquitectura de Computadores (ACom)

Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos. Circuitos Aritméticos

Álgebra Booleana. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

PCS 3115 Sistemas Digitais I

Microprocessadores. Arquitecturas Aritméticas Controladores

1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO Bases de Numeração Representação de Números em Base 2 5

PCS 3115 (PCS2215) Sistemas Digitais I. Módulo 03a Aritmética Binária. Prof. Dr. Marcos A. Simplicio Jr. versão: 3.0 (Jan/2016) Conteúdo

Sistemas Digitais / Sistemas Digitais I 6 Representação de números com sinal

SSC0112 Organização de Computadores Digitais I

Eletrónica Digital. Fundamentos e Projeto. Acxcro MANUEL RAPOSO AMARAL. EDIÇÕES SíLABO

Aula 10. Circuitos Aritméticos. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Representação Digital de Informação Aritmética

SISTEMAS DIGITAIS (SD)

Circuitos Digitais. Conteúdo. Soma de Números Binários. Soma de Números Binários. Exemplos. Exemplos. Aritmética Binária

Prof. Leonardo Augusto Casillo

Aritmética Binária e Complemento a Base. Introdução ao Computador 2010/1 Renan Manola

Aula 9. Aritmética Binária. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

CIRCUITOS SOMADORES = = =

ARITMÉTICA BINÁRIA. Adão de Melo Neto

REFERENCIAIS DO CURSO CERTIFICADO DE NÍVEL 4 ELECTRÓNICA DIGITAL (75 H)

Sistemas Digitais (SD)

Capítulo 2. Representação de dados em sistemas computacionais

Módulo 3 Circuitos Combinatórios

Sistemas de Numeração e Códigos

Curso Profissional de Técnico de Gestão de Equipamentos Informáticos 10º ANO

Eletrônica Digital I (EDL I)

Introdução à Computação

Antes de começar o exame leia atentamente esta folha de rosto

Circuito de dados e circuito de controlo

Sistemas Digitais Módulo 8 Introdução aos Circuitos Aritméticos

Introdução à Computação

*********************

Teste 1 Sistemas Digitais - MEEC 2011/12 1

Operações Aritméticas Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

Sistemas Binários. José Delgado Arquitetura de Computadores Sistemas binários 1

Componente de Formação Técnica. Disciplina de

1 Introdução à Lógica Digital. Arquitectura de Sistemas Computacionais

Circuitos Digitais - Somadores e Subtradores SOMADORES E SUBTRADORES

Circuitos Lógicos Aula 22

Sistemas Digitais. Prof.Doutor Victor Lobo. Preparação básica necessária à compreensão de:

1 Introdução à Lógica Digital

Disciplina de. Organização de Computadores Digitais

Disciplina de. Organização de Computadores Digitais

Circuitos aritméticos

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Ciências da Computação & Engenharia Eletrônica

Sistemas Digitais LETI, LEE (2014/15 1º Sem.)

Sistemas Digitais Planificação das aulas teóricas e aulas práticas Ano Lectivo 2006/ 2007

Antes de começar o exame leia atentamente esta folha de rosto

Introdução: Objetivos:

Sistemas Digitais LETI, LEE (2016/17 1º Sem.)

Laboratório 1 (Trabalho sem Relatório) Semana 20 de Setembro a 24 de Setembro

Introdução a Sistemas Digitais

Computação e Programação

Arquitectura de Computadores (ACom)

Transcrição:

Sistemas Digitais (SD) Circuitos combinatórios: somadores, subtractores e comparadores

Aula Anterior Na aula anterior: Circuitos combinatórios típicos: Descodificadores Codificadores Multiplexers Demultiplexers 2

Planeamento SEMANA TEÓRICA 1 TEÓRICA 2 PROBLEMAS/LABORATÓRIO 20/Fev a 24/Fev Introdução Sistemas de Numeração 27/Fev a 03/Mar CARNAVAL Álgebra de Boole 06/Mar a 10/Mar Elementos de Tecnologia Funções Lógicas P0 13/Mar a 17/Mar Minimização de Funções Minimização de Funções L0 20/Mar a 24/Mar Def. Circuito Combinatório; Análise Temporal Circuitos Combinatórios P1 27/Mar a 31/Mar Circuitos Combinatórios Circuitos Combinatórios L1 03/Abr a 07/Abr Circuitos Sequenciais: Latches Circuitos Sequenciais: Flip-Flops P2 10/Abr a 14/Abr FÉRIAS DA PÁSCOA FÉRIAS DA PÁSCOA 17/Abr a 21/Abr Caracterização Temporal Registos L2 24/Abr a 28/Abr 01/Mai a 05/Mai 08/Mai a 12/Mai 15/Mai a 19/Mai 22/Mai a 26/Mai 29/Mai a 02/Jun 25 DE ABRIL Contadores P3 Síntese de Circuitos Sequenciais Síncronos Síntese de Circuitos Sequenciais Síncronos Exercícios Teste 1 Síntese de Circuitos Sequenciais Síncronos P4 Máq. Estado Microprogramadas: Circuito de Memórias Dados e Circuito de Controlo Circuitos de Controlo, Transferência e Máq. Estado Microprogramadas: Microprograma Processamento de Dados de um Processador Lógica Programável P6 L5 L3 L4 P5 3

Sumário Tema da aula de hoje: Circuitos combinatórios típicos: Somadores / Subtractores Comparadores Bibliografia: M. Mano, C. Kime: Secções 4.2 a 4.4 G. Arroz, J. Monteiro, A. Oliveira: Secções 5.1 a 5.3 4

Somadores Circuito para soma aritmética Exemplo: Somador de 2 números de 4 bits cada. 0 1 1 0 Carry 7 0 1 1 1 + 2 + 0 0 1 0 9 1 0 0 1 A estrutura mais simples resolve 1 bit de cada vez: C4 C3 C2 C1 A3 A2 A1 A0 + B3 B2 B1 B0 C4 S3 S2 S1 S0 A 3 B 3 A 2 B 2 A 1 B 1 A 0 B 0 + + + + C 4 S 3 C 3 S 2 C 2 S 1 C 1 S 0 5

Somadores Circuito semi-somador O circuito semi-somador (em inglês, half-adder) soma 2 bits de entrada (sem transporte anterior) e produz 1 bit da soma e 1 bit de transporte. A B + Carry-out Sum Corresponde p.ex. ao 1º passo do algoritmo de soma: soma os 2 bits de menor peso e obtém 1 bit S0 da soma e o transporte C1 para o passo seguinte. C4 C3 C2 C1 A3 A2 A1 A0 + B3 B2 B1 B0 C4 S3 S2 S1 S0 C 1 A 0 B 0 + S 0 6

Somadores Circuito semi-somador A B C out S 0 0 0 0 C out S A B A B 0 1 0 1 1 0 0 1 1 1 1 0 A B 1 S & C out 7

Somadores Circuito somador completo O circuito somador completo (em inglês, full-adder) soma 3 bits de entrada (incluindo o transporte anterior) e produz 1 bit da soma e 1 bit de transporte. A B Carry-in + Carry-out Sum P.ex. no 2º passo: soma 3 bits A1 e B1 e o transporte C1 do passo anterior, e obtém 1 bit S1 da soma e o transporte C2 para o passo seguinte. C4 C3 C2 C1 C 2 A 1 B 1 C 1 A3 A2 A1 A0 + B3 B2 B1 B0 + C4 S3 S2 S1 S0 S 1 8

Somadores Somador completo A B C in C out S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 A B C in A B 00 01 11 10 C in 00 01 11 10 0 0 1 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 1 S C C in C in A B C in in A B C A B C out A B C in A B C in in A B A B A C in A B B 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 A B 1 1 S 1 1 1 1 1 & & 1 C out C in 9

Somadores Somador em cascata (ripple carry adder) B N A N B 3 A 3 B 2 A 2 B 1 A 1 B 0 A 0 C N FA C N-1 C C FA 3 C 4 FA 2 C FA 1 FA 0 S N S 3 S 2 S 1 S 0 A velocidade máxima de execução é limitada pela necessidade de propagar o Carry desde a soma do primeiro bit até à soma do bit mais significativo. No pior caso, o tempo de propagação do Carry será N x t PFA. Exemplo: 0 0 0 0 1 1 1 1 0 0 0 0 + 1 1 1 1 1 1 1 1 A 0 comuta de 0 para 1 A i = 0, i 0 B i = 1, i 0 0 0 1 + 1 1 1 1 0 0 0 0 10

Somadores Somador em cascata (ripple carry adder) B N A N B 3 A 3 B 2 A 2 B 1 A 1 B 0 A 0 C N FA C N-1 C C FA 3 C 4 FA 2 C FA 1 FA 0 S N S 3 S 2 S 1 S 0 O Ripple Carry Adder é o somador mais simples possível (que requer menos portas lógicas). Existem inúmeros circuitos alternativos para diversos compromissos velocidade/área. 11

Somadores Somador de 4 bits Somador de 4 bits completo: Soma: o 2 números de 4 bits cada o 1 bit de carry-in. Gera: o Resultado da soma, com 4 bits o 1 bit de carry-out. TTL 74LS283 0 }P 1 2 3 0 1 } 2 0 3 1 2 Q 3 CI CO 12

Representação de números com sinal Representação de números negativos Módulo + Sinal O bit mais significativo representa o sinal, e os restantes bits representam o seu valor absoluto. Ex.: -9 = 10001001 O valor zero tem duas representações Módulo Decimal + Sinal +7 0111 +6 0110 +5 0101 +4 0100 +3 0011 +2 0010 +1 0001 +0 0000-0 1000-1 1001-2 1010-3 1011-4 1100-5 1101-6 1110-7 1111-8 -? 13

Representação de números com sinal Representação de números negativos Complemento para 1 O complemento para 1 de N, em n bits, é definido como (2 n - 1) - N. 2 n 1 é um número constituído por n 1 s. Subtrair de 1 equivale a inverter o bit: 1 0 = 1 e 1 1 = 0. Portanto, complementar para 1 corresponde a inverter todos os bits (0 1 e 1 0). Ex.: -9 = 11110110 ( = 11111111 00001001 = 255 (10) 9 (10) ). O valor zero tem duas representações Complemento Decimal para 1 +7 0111 +6 0110 +5 0101 +4 0100 +3 0011 +2 0010 +1 0001 +0 0000-0 1111-1 1110-2 1101-3 1100-4 1011-5 1010-6 1001-7 1000-8 -? 14

Representação de números com sinal Representação de números negativos Complemento para 2 O complemento para 2 de N, em n bits, é definido como 2 n N para N 0, e 0 para N = 0. Portanto, complementar para 2 corresponde a complementar para 1 e somar 1. Ex.: -9 = 11110111 ( = 100000000 00001001 = 256 (10) 9 (10) ). Na prática, o complemento para 2 pode ser formado do seguinte modo: mantêm-se todos os 0 s menos significativos e o primeiro 1, e invertemse todos os outros bits mais significativos. Uma única representação para o valor zero. Complemento Decimal para 2 +7 0111 +6 0110 +5 0101 +4 0100 +3 0011 +2 0010 +1 0001 +0 0000-0 - -1 1111-2 1110-3 1101-4 1100-5 1011-6 1010-7 1001-8 1000? 15

Representação de números com sinal Números binários com sinal As operações usando o sistema de sinal e valor são mais complicadas, devido à necessidade de gerir separadamente o sinal e o valor. Por isso, são normalmente utilizadas representações em complemento. A representação em complemento para 2 é habitualmente preferida em sistemas digitais por ter uma única representação para o valor zero, e por as operações envolvidas serem mais simples. Decimal Complemento para 2 Complement o para 1 Módulo + Sinal +7 0111 0111 0111 +6 0110 0110 0110 +5 0101 0101 0101 +4 0100 0100 0100 +3 0011 0011 0011 +2 0010 0010 0010 +1 0001 0001 0001 +0 0000 0000 0000-0 - 1111 1000-1 1111 1110 1001-2 1110 1101 1010-3 1101 1100 1011-4 1100 1011 1100-5 1011 1010 1101-6 1010 1001 1110-7 1001 1000 1111-8 1000 - -? 16

Representação de números com sinal Extensão do sinal (complemento para 2) Representação de um número utilizando um determinado número de bits, através da adição/remoção de bits à esquerda iguais ao bit de sinal Exemplos: 0100 = +4 (4 bits) 00000100 = +4 (8 bits) 1011 = - 5 (4 bits) 11111011 = - 5 (8 bits) 0010 = +2 (4 bits) 010 = +2 (3 bits) 1010 = - 6 (4 bits)??? = - 6 (3 bits) 17

Representação de números com sinal Soma aritmética de números com sinal usando complemento para 2 A soma aritmética de dois números binários com sinal, representados em complemento para 2, é obtida pela simples adição dos dois números incluindo os bits de sinal. O último carry out não é considerado. Exemplos: 0 0 0 0 4 0 1 0 0 + 3 + 0 0 1 1 7 0 1 1 1 1 1 0 0 4 0 1 0 0 + ( 3) + 1 1 0 1 1 0 0 0 1 0 0 0 0 4 1 1 0 0 + 3 + 0 0 1 1 1 1 1 1 1 1 1 0 0 4 1 1 0 0 + ( 3) + 1 1 0 1 7 1 0 0 1 18

Subtractores Subtracção de números com sinal A subtracção de 2 números binários com sinal, representados em complemento para 2, é realizada de forma idêntica ao que acontece na representação decimal: Exemplo: 5 0 1 0 1 2 0 0 1 0 3 0 0 1 1 0 0 0 1 0 Borrow O bit de empréstimo (borrow) é um valor que vai ser retirado ao bit de peso seguinte. 19

Subtractores Subtracção de números com sinal usando complemento para 2 A subtracção de dois números binários com sinal, representados em complemento para 2, é obtida do seguinte modo: forma-se o complemento para 2 do subtractor soma-se ao subtraendo. Exemplo: 4 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 + ( 3) + 1 1 0 1 1 0 0 0 1 1 0 1 0 0 + 1 1 0 0 0 0 0 1 (através de complemento para 2) (através de complemento para 1) 20

Subtractores Subtracção de números com sinal usando complemento para 2 Complemento para 2 = (Complemento para 1) + 1 A complementação para 1 é realizada invertendo todos os bits do subtractor. A adição de 1 é efectuada pondo o Carry inicial a 1. B 3 A 3 B 2 A 2 B 1 A 1 B 0 A 0 C C FA 3 C 4 FA 2 C FA 1 FA 1 S 3 S 2 S 1 S 0 21

Circuito somador/subtractor Circuito somador/subtractor As operações de adição e subtracção são habitualmente combinadas num único somador genérico, através da inclusão de 1 porta ou-exclusivo em cada Full-Adder. Quando o sinal de controlo SUBTRACT = 0, é realizada a adição A + B (os operandos B i não são invertidos e C 0 = 0). Quando o sinal de controlo SUBTRACT = 1, é realizada a subtracção A B (os operandos B i são invertidos e C 0 = 1). B 3 A 3 B 2 A 2 B 1 A 1 B 0 A 0 SUBTRACT C 3 C 2 C 1 C 4 FA FA FA FA S 3 S 2 S 1 S 0 22

Excesso Excesso (overflow) 0 1 0 0 4 0 1 0 0 + 5 + 0 1 0 1??? 1 0 0 1 23

Excesso Excesso (overflow) Para se obter um resultado correcto, na adição e na subtracção, é necessário assegurar que o resultado tem um número de bits suficiente. Se somarmos dois números de N bits e o resultado ocupar N+1 bits diz-se que ocorreu um overflow. As unidades aritméticas digitais usam um número fixo de bits para armazenar os operandos e os resultados, sendo necessário detectar e sinalizar a ocorrência de um overflow. Exemplo: um overflow pode ocorrer na adição se os dois operandos são ambos positivos ou se são ambos negativos. 24

Excesso Excesso (overflow) A condição de overflow pode ser detectada por inspecção dos dois bits de carry mais significativos. Exemplo: Overflow CarryOut N CarryOut 1 N 2 0 1 0 0 4 0 1 0 0 + 5 + 0 1 0 1 ovfl. 1 0 0 1 1 0 0 0 4 1 1 0 0 + ( 5) + 1 0 1 1 ovfl. 0 1 1 1 25

Excesso Qual a diferença entre os sinais de carry e overflow? Representação CO = CO N-1 = 1 O = 1 SEM sinal Excedeu a capacidade de representação Sem significado COM sinal Sem significado Excedeu a capacidade de representação 26

Circuito Comparador Comparador de números de 4 bits Este circuito faz a comparação de 2 números binários de 4 bits. A comparação é realizada através de uma operação de subtracção e análise do resultado. O circuito pode ser ligado em cascata, para realizar comparações entre números de N > 4 bits, utilizando os 3 bits de entrada suplementares. TTL 74LS85 COMP 0 }P 1 2 3 > = < 0 }Q 1 2 3 P>Q P=Q P<Q 27

Próxima Aula Tema da Próxima Aula: Unidade Lógica e Aritmética (ULA) 28

Agradecimentos Algumas páginas desta apresentação resultam da compilação de várias contribuições produzidas por: Nuno Roma Guilherme Arroz Horácio Neto Nuno Horta Pedro Tomás 29