Sie sind auf Seite 1von 59

Universidade Federal de Santa Catarina

Centro Tecnológico
Departamento de Informática e Estatística
Curso de Graduação em Ciências da Computação

Sistemas Digitais
INE 5406

Aula 1-T
1. Projeto de Unidade Lógico-Aritmética (ULA). Representação
de números inteiros em binário e circuitos digitais. Adição de
números sem sinal, adição de números com sinal, o somador
paralelo carry-ripple, o subtrator e o somador-subtrator,
overflow.
Prof. José Luís Güntzel
guntzel@inf.ufsc.br
www.inf.ufsc.br/~guntzel/ine5406/ine5406.html
1. Projeto de Unidade Lógico-Aritmética
Circuitos Digitais e Níveis de Abstração
Nível Lógico:
• Circuitos vistos como associações de portas lógicas,
latches e flip-flops (conforme visto em EEL5105).
• Variáveis binárias de um bit cada.
R
a0 Q
C
S Q
s0

b0
D Q

C Q
c1

INE/CTC/UFSC slide 1T.2 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuitos Digitais e Níveis de Abstração
Nível RT (Register Transfer):
• Circuitos vistos como associações de componentes,
feitos de portas lógicas (objeto desta disciplina).
entB entA
registradores n multiplexador
n
0 1 mA
n
RstP
P B CB A CA 1
CP

Bz Az
somador n n n n n
subtrator
+ -
n n

saída
INE/CTC/UFSC slide 1T.3 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuitos Digitais e Níveis de Abstração
Nível RT (Register Transfer):
• Operações lógicas e aritméticas sobre vetores de bits,
os quais representam números.
• Sinais de controle e de status.
valor
set
dec cont
início Cac 3
BC Rac
acum
Reset 8 8 =0?
(controle) zero
ck overflow
+
8
pronto overflow
soma dados

Sinais de controle e
de status
INE/CTC/UFSC slide 1T.4 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuitos Digitais e Níveis de Abstração
Matéria Nível de abstração Componentes
• Portas lógicas
Circuitos Digitais Lógico • Latches
• Flip-flops
• Somadores
• Subtratores
• ULAs (= unidades
funcionais compostas)
RT
Sistemas Digitais • Registradores
(register-transfer) • Memórias
• Multiplexadores
• Decodificadores
• Bloco de controle

INE/CTC/UFSC slide 1T.5 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representação de Inteiros em Binário
Números Inteiros sem Sinal (Naturais)
• assumindo-se números com 4 bits

binário decimal
Menor número 0000 0
Maior número 1111 15

Intervalo de representação: [ 0 , 15 ]

INE/CTC/UFSC slide 1T.6 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representação de Inteiros em Binário
Números Inteiros sem Sinal (Naturais)
Observe que:
11112 = 1x20 + 1x21 + 1x22 + 1x23 =
=1+2+4+8 =
= 15
Observe também que:
100002 = 0x20 + 0x21 + 0x22 + 0x23 + 1x24 =
= 0 + 0 + 0 + 0 + 16 =
= 16 (= 15 + 1)
Então, podemos nos referir ao 15 como “24 - 1”, para
efeitos de generalização.
INE/CTC/UFSC slide 1T.7 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representação de Inteiros em Binário
Números Inteiros sem Sinal (naturais)
• assumindo-se números com 8 bits

binário decimal
Menor número 00000000 0
Maior número 11111111 255

Intervalo de representação: [ 0 , 255 ]

INE/CTC/UFSC slide 1T.8 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representação de Inteiros em Binário
Números Inteiros sem Sinal (Naturais)
Observe que:
111111112 =
= 1x20 + 1x21 + 1x22 + 1x23 + 1x24 + 1x25 + 1x26 + 1x27=
= 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255
Observe também que:
1000000002 =
= 0x20 + 0x21 + 0x22 + 0x23 + 0x24 + 0x25 + 0x26 + 0x27 + 1x28 =
= 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 256 = 256 (= 255 + 1)
Então, podemos nos referir ao 255 como “28 - 1”, para
efeitos de generalização.
INE/CTC/UFSC slide 1T.9 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representação de Inteiros em Binário
Números Inteiros sem Sinal (naturais)
• Generalizando-se para n bits

binário decimal
Menor número 0000...0 0
Maior número 1111...1 2n-1

Intervalo de representação: [ 0 , 2n-1]

INE/CTC/UFSC slide 1T.10 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representando Dados em Circuitos Digitais
Exemplo: um circuito somador.
• Neste caso, cada operando tem 8 bits e o resultado é
calculado com precisão de 8 bits. (Há um indicador de
estouro de campo, overflow)
Indicação do
número de bits
8 8

overflow
+
8

INE/CTC/UFSC slide 1T.11 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representando Dados em Circuitos Digitais
Exemplo: um circuito mais complexo.
• Fios que representam variáveis de mais de um bit
devem ser identificados!
valor
set
dec cont
início Cac 3
BC acum
Rac =0?
Reset (controle) 8 8
zero
ck overflow
+
8
pronto overflow
soma

INE/CTC/UFSC slide 1T.12 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representando Dados em Circuitos Digitais
Convenções

Somador-subtrator para Indicando como um número de


operandos com n bits cada n+1 bits é composto

n n
n n
overflow
overflow
+/- +/-
n
n

n+1 Convenção para


indicar que o bit
menos significativo
está mais à direita

INE/CTC/UFSC slide 1T.13 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representando Dados em Circuitos Digitais
Convenções (continuação)

Indicando como um
número de n+1 bits é “Decompondo” um número
composto (outro exemplo) de n+1 bits em um número
de n bits e mais um sinal
n
“0”
n+1

overflow n
n+1
S

INE/CTC/UFSC slide 1T.14 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuitos Aritméticos
São Circuitos Combinacionais que operam sobre
dados numéricos.
Exercício 1: Projetar um circuito combinacional capaz de
testar se um número de 8 bits vale zero ou não. Este
circuito deve operar conforme descrito na tabela abaixo.
Tabela de funcionamento: Interfaces: S
8
zero significado =0?
0 S≠0
1 S=0 zero

INE/CTC/UFSC slide 1T.15 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuitos Aritméticos
Exercício 2: Projetar um circuito combinacional que
compara dois números de 4 bits cada. Este circuito deve
operar conforme descrito na tabela abaixo.

Tabela de funcionamento: Interfaces:


A B
4 4
iguais significado
0 A≠B =?
1 A=B
iguais

INE/CTC/UFSC slide 1T.16 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuitos Aritméticos
Exercício 2: solução...

Função XOR (Exclusive OR, “OU” Exclusivo)


• Resulta “1” se as duas entradas forem iguais...

X Y X⊕
⊕Y X⊕
⊕Y = X·Y + X·Y
0 0 0 Circuito em soma de produtos
0 1 1 X
Porta lógica
1 0 1 X
1 1 0 Y
Y

INE/CTC/UFSC slide 1T.17 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuitos Aritméticos
Exercício 3: Projetar um circuito combinacional que
compara dois números de 4 bits cada. Este circuito deve
operar conforme descrito na tabela abaixo.

Tabela de funcionamento: Interfaces:


A B
maior significado 4 4
0 A <= B A>B?
1 A>B

maior

INE/CTC/UFSC slide 1T.18 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão de Adição Binária
Adição de Números Sem Sinal
Exemplo 1:
Notação genérica Análise supondo A e B com 4 bits

0100 transportes (carries)


A 0110 (6)
+ B + 0100 (4)

S 1010 (10) resultado

Supondo um somador que trabalhe com operandos de 4 bits,


então o resultado S deverá pertencer ao intervalo [ 0, 15 ]
INE/CTC/UFSC slide 1T.19 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão de Adição Binária
Adição de Números Sem Sinal
Exemplo 2:
overflow
1100 transportes (carries)
A 1100 (12)
+ B + 0110 (6)

S 0010 (18) resultado

Caso o resultado não puder ser representado com 4 bits, o sinal de


overflow deve indicar que houve um “estouro de representação”.

INE/CTC/UFSC slide 1T.20 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão de Adição Binária
Generalizando a Adição de Números Sem Sinal

Notação genérica Análise detalhada

… c4 c3 c2 c1 transportes (carries)
A … a3 a 2 a 1 a 0
+ B + … b3 b 2 b 1 b 0

S … s3 s2 s1 s0 resultado

INE/CTC/UFSC slide 1T.21 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão de Adição Binária
Adicionando os bits menos significativos

… c4 c3 c2 c1
… a3 a 2 a 1 a 0 a0
+
+ adição de 2 bits
… b3 b 2 b 1 b 0 b0
resultado em
… s3 s2 s1 s0 c1 s0 2 bits

carry resultado

INE/CTC/UFSC slide 1T.22 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão de Adição Binária
Porém, a partir do 2a coluna …

… c4 c3 c2 c1
c1
… a3 a 2 a 1 a 0 a1 adição de 3 bits

+
+
… b3 b 2 b 1 b 0 b1
resultado em
… s3 s2 s1 s0 c2 s1 2 bits

carry resultado

INE/CTC/UFSC slide 1T.23 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Revisão de Adição Binária
Generalizando, a partir do 2a coluna …

… c4 c3 c2 c1
ci
… a3 a 2 a 1 a 0 ai adição de 3 bits

+
+
… b3 b 2 b 1 b 0 bi
resultado em
… s3 s2 s1 s0 ci+1 si 2 bits

carry resultado

Obs: i >= 1

INE/CTC/UFSC slide 1T.24 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Esquema da Adição Paralela
Considerando dois números (A e B) com 4 bits cada
a3 b3 a2 b2 a1 b1 a0 b0

c4 c3 c2 c1

s3 s2 s1 s0

Note que:
• há um elemento para cada coluna da soma
• o sinal de overflow será o carry mais significativo (c4)

INE/CTC/UFSC slide 1T.25 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Somador Para a Primeira Coluna
a0 b0

Este circuito é conhecido por “Meio Somador”


(Half-Adder, em inglês) c1

Criação da tabela-verdade: s0

• Listar todas as combinações entradas saídas


de entradas ( a0, b0 )
a0 • Preencher os valores das
a0 b0 c1 s0
+ saídas s0 e c1 baseado no
b0 resultado da adição entre a0 0 0 0 0
e b0
c1 s0 0 1 0 1
1 0 0 1
1 1 1 0

INE/CTC/UFSC slide 1T.26 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Meio Somador
entradas saídas
a0
a0 b0 c1 s0
s0
0 0 0 0
0 1 0 1
b0
1 0 0 1
1 1 1 0 c1

s0 = a0·b0 + a0·b0 = a0 ⊕ b0 Obs: circuito independente de


c1 = a0·b0 tecnologia de fabricação

INE/CTC/UFSC slide 1T.27 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Meio Somador
Redesenhando, usando porta XOR
a0 b0
a0 b0

c1
MS

c1 s0

s0 = a0·b0 + a0·b0 = a0 ⊕ b0
c1 = a0·b0
s0

INE/CTC/UFSC slide 1T.28 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Somador Para as Demais Colunas
a3 b3 a2 b2 a1 b1 a0 b0
Projetando um tipo de circuito
para as demais colunas: c4 c3 c2 c1

s3 s2 s1 s0

… c4 c3 c2 c1
Generalizando… ci
… a3 a 2 a 1 a 0 ai adição de 3 bits

+
+
… b3 b 2 b 1 b 0 bi
resultado em
… s3 s2 s1 s0 ci+1 si 2 bits

carry resultado Com i >= 1

INE/CTC/UFSC slide 1T.29 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Somador Para as Demais Colunas
Este circuito é conhecido como “Somador Completo”
(Full-Adder, em inglês) entradas saídas

Criação da tabela-verdade: ci ai bi ci+1 si


• Listar todas as combinações 0 0 0 0 0
de entradas ( ci, ai, bi )
ci 0 0 1 0 1
• Preencher os valores das
ai saídas si e ci+1 baseado no 0 1 0 0 1
+ resultado da adição entre ai, bi
bi e ci
0 1 1 1 0
1 0 0 0 1
ci+1 si
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
INE/CTC/UFSC slide 1T.30 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Completo
entradas saídas

ci ai bi ci+1 si
Mapa de Karnaugh para Ci+1
0 0 0 0 0
ci+1 ai bi ai bi ai bi ai bi ai·bi
0 0 1 0 1
0 1 0 0 1 ci 0 0 1 0
0 1 1 1 0 ci 0 1 1 1 ai·ci
1 0 0 0 1
bi·ci
1 0 1 1 0
1 1 0 1 0 ci+1 = ai·bi+ ai·ci+ bi·ci
1 1 1 1 1

INE/CTC/UFSC slide 1T.31 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Completo
entradas saídas
Mapa de Karnaugh para si
ci ai bi ci+1 si si ai bi ai bi ai bi ai bi
0 0 0 0 0
ci 0 1 0 1
0 0 1 0 1
ci 1 0 1 0
0 1 0 0 1
0 1 1 1 0
Não é possível simplificar, logo, usaremos
1 0 0 0 1 todos os produtos do tipo mintermo!
1 0 1 1 0
si = ai·bi·ci + ai·bi·ci + ai·bi·ci + ai·bi·ci
1 1 0 1 0
1 1 1 1 1

INE/CTC/UFSC slide 1T.32 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Completo
Manipulando a expressão para si

si = ai·bi·ci + ai·bi·ci + ai·bi·ci + ai·bi·ci

= ci ( ai·bi+ ai·bi ) + ci ( ai·bi+ ai·bi )

= ci ( ai ⊕ bi ) + ci ( ai ⊕ bi )

= ci ⊕ ai ⊕ bi

Normalmente, se assumem portas xor com duas entradas, as quais


podem ser fabricadas diretamente usando tecnologia CMOS.

INE/CTC/UFSC slide 1T.33 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Completo
ai bi
ai bi

ci+1 ci
SC

ci+1 ci
si

si = ci ⊕ ai ⊕ bi

ci+1 = ai·bi+ ai·ci+ bi·ci


si

INE/CTC/UFSC slide 1T.34 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Completo
Uma Outra Versão, usando dois MS…
ai bi
ai bi ci pi xi gi ci+1 si MS

0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 1 gi pi
0 1 0 1 0 0 0 1 ci+1
ci
0 1 1 1 1 0 1 0 xi
MS
1 0 0 1 0 0 0 1
1 0 1 1 1 0 1 0 si
1 1 0 0 0 1 1 0
Vantagem: necessita
1 1 1 0 0 1 1 1 menos portas lógicas

INE/CTC/UFSC slide 1T.35 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Paralelo Carry-Ripple (de 4 Bits)
Considerando dois números (A e B) com 4 bits cada
a3 b3 a2 b2 a1 b1 a0 b0

c3 c2 c1
c4 SC SC SC MS

s3 s2 s1 s0

• Note que c4 e s3 somente estabilizam depois que c1, c2 e c3


estabilizarem
• Dentre os somadores paralelos, o Carry-ripple (CRA) é o mais lento!
Existem diversos outros tipos de somadores paralelos mais rápidos.

INE/CTC/UFSC slide 1T.36 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Paralelo Carry-Ripple (de 4 Bits)
Símbolo no nível RT

A B
n n

overflow
+
n

INE/CTC/UFSC slide 1T.37 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Paralelo Carry-Ripple (de 4 Bits)
Versão 2: somente com somadores completos

a3 b3 a2 b2 a1 b1 a0 b0

c3 c2 c1 c0
c4 SC SC SC SC

s3 s2 s1 s0

INE/CTC/UFSC slide 1T.38 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Paralelo Carry-Ripple (de 4 Bits)
Versão 2, generalizada: carry-in configurável

a3 b3 a2 b2 a1 b1 a0 b0

c3 c2 c1 c0 = cin
c4 SC SC SC SC

s3 s2 s1 s0

INE/CTC/UFSC slide 1T.39 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Paralelo Carry-Ripple (de 4 Bits)
Símbolo no nível RT

A B
n n

overflow
+ cin

INE/CTC/UFSC slide 1T.40 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representação de Inteiros em Binário
Números Inteiros com Sinal
• Para facilitar a construção de circuitos aritméticos, os
negativos são representados em complemento de dois
• Assumindo-se números com 4 bits

binário decimal
Menor número 1000 -8
Zero 0000 0
Maior número 0111 +7

Intervalo de representação: [ -8 , +7 ]

INE/CTC/UFSC slide 1T.41 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representação de Inteiros em Binário
Números Inteiros com Sinal
Observe que:
01112 = 1x20 + 1x21 + 1x22 + 0x23 =
=1+2+4+0 =
= +7
Observe também que:
11112 = 1x20 + 1x21 + 1x22 - 1x23 =
=1+2+4-8=
= -1
O bit mais à esquerda representa o sinal: se ele valer 1, o
número é negativo. Caso contrário, o número é positivo
ou zero.
INE/CTC/UFSC slide 1T.42 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representação de Inteiros em Binário
Números Inteiros com Sinal
• assumindo-se números com 8 bits

binário decimal
Menor número 10000000 -128
Zero 00000000 0
Maior número 01111111 +127

Intervalo de representação: [ -128 , +127 ]

INE/CTC/UFSC slide 1T.43 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Representação de Inteiros em Binário
Números Inteiros com Sinal
• Generalizando-se para n bits

binário decimal
Menor número 1000...0 -2n-1
Zero 0000...0 0
Maior número 0111...1 +(2n-1-1)

Intervalo de representação: [ -2n-1 , +(2n-1-1) ]

INE/CTC/UFSC slide 1T.44 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Paralelo Carry-Ripple (de 4 Bits)
Adaptação para Operar Sobre Números com Sinal
Desde que os negativos estejam em complemento de 2

a3 b3 a2 b2 a1 b1 a0 b0

c4 c3 c2 c1
SC SC SC MS

overflow s3 s2 s1 s0

esquemático de blocos
INE/CTC/UFSC slide 1T.45 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Paralelo Carry-Ripple (de 4 Bits)
Adaptação para Operar Sobre Números com Sinal
Desde que os negativos estejam em complemento de 2

a3 b3 a2 b2 a1 b1 a0 b0

c4 c3 c2 c1 c0
SC SC SC SC

overflow s3 s2 s1 s0

esquemático de blocos
INE/CTC/UFSC slide 1T.46 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
O Somador Paralelo Carry-Ripple (de 4 Bits)
Símbolo no nível RT
A B
n n

overflow
+
n

Dado que o símbolo do somador é único (independente de ser um


somador para números com ou sem sinal), como saber se ele é
capaz de operar sobre números com sinal?

INE/CTC/UFSC slide 1T.47 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuitos Aritméticos
Exercício 4: Usando o somador carry-ripple, projetar um
circuito combinacional que troca o sinal de um número
inteiro de 4 bit.

Interfaces:
B
4

Troca sinal

–B

INE/CTC/UFSC slide 1T.48 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuitos Aritméticos
Exercício 4: Solução

Trocar o sinal significa aplicar as regras do complemento


de dois ao número, ou seja:
1.Negar bit a bit o número
2.Somar uma unidade ao resultado do passo anterior

INE/CTC/UFSC slide 1T.49 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Circuitos Aritméticos
Exercício 4: Solução

b3 b2 b1 b0 B

0 0 0 0

c3 c2 c1 c0 1
c4 SC SC SC SC

r3 r2 r1 r0 -B

INE/CTC/UFSC slide 1T.50 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Subtração de Números Inteiros em Binário
Princípio

A - B = A + (- B )

onde -B é o número B de sinal trocado!


Ora, que coincidência!! (Ou não?)

INE/CTC/UFSC slide 1T.51 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Subtrator Paralelo (de 4 bits)
A - B = A + (- B )

b3 b2 b1 b0

a3 a2 a1 a0
0 0 0 0

c4 c3 c2 c1 c0 1
SC SC SC SC

overflow s3 s2 s1 s0

INE/CTC/UFSC slide 1T.52 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Subtrator Paralelo (de 4 bits)
b3 b2 b1 b0
Esquemático
de blocos a3 a2 a1 a0

c4 c3 c2 c1 c0 1
SC SC SC SC

overflow s3 s2 s1 s0

A B
Símbolo no n n

nível RT
- 1

INE/CTC/UFSC slide 1T.53 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Subtrator/Subtrator Paralelo (de 4 bits)
a3 b3 a2 b2 a1 b1 a0 b0
Somador

c3 c2 c1 c0
c4 SC SC SC SC 0

s3 s2 s1 s0

b3 b2 b1 b0

a3 a2 a1 a0 Subtrator

c3 c2 c1 c0
c4 SC SC SC SC 1

s3 s2 s1 s0

INE/CTC/UFSC slide 1T.54 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Subtrator/Subtrator Paralelo (de 4 bits)
Como uni-los em um único circuito, configurável?

b3 b2 b1 b0

a3
a3 b3 a2
a2 b2 a1
a1 b1 a0
a0 b0

c3 c2 c1 c0
c4
c4 SC
SC c3 SC
SC
c2 SC
SC
c1 SC
SC
c0
10

s3
s3 s2
s2 s1
s1 s0
s0

INE/CTC/UFSC slide 1T.55 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Subtrator/Subtrator Paralelo (de 4 bits)
Resposta!!!
b3 b2 b1 b0

a3 a2 a1 a0
c3

c4 c3 c2 c1 c0 controle
SC SC SC SC

overflow s3 s2 s1 s0
controle operação

0 S=A+B
1 S=A-B

INE/CTC/UFSC slide 1T.56 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Subtrator/Subtrator Paralelo (de 4 bits)

Símbolo no Tabela de
nível RT Operação

A B
n n controle operação
0 S=A+B
overflow controle
+/- 1 S=A-B
n

INE/CTC/UFSC slide 1T.57 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Análise do Atraso do Somador Carry-Ripple
a3 b3 a2 b2 a1 b1 a0 b0

c3 c2 c1
c4 c0

s4 s2 s1 s0

Suponha que no tempo t=0 um par de valores é aplicado às entradas (A,B):


• O resultado só estará pronto quando todas as saídas tiverem estabilizado
• si e ci+1 só estabilizam após ci estabilizar
• Em particular, s3 e c4 só estabilizam depois que c3, c2 e c1 tiverem
estabilizados…
INE/CTC/UFSC slide 1T.58 Prof. José Luís Güntzel
Sistemas Digitais - semestre 2009/2
1. Projeto de Unidade Lógico-Aritmética
Análise do Atraso do Somador Carry-Ripple
Os caminhos críticos em somadores Ripple-Carry
passam pela cadeia de propagação do carry
a3 b3 a2 b2 a1 b1 a0 b0

c3 c2 c1
c4 c0

s4 s2 s1 s0

INE/CTC/UFSC slide 1T.59 Prof. José Luís Güntzel


Sistemas Digitais - semestre 2009/2

Das könnte Ihnen auch gefallen