Académique Documents
Professionnel Documents
Culture Documents
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
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
binário decimal
Menor número 0000 0
Maior número 1111 15
Intervalo de representação: [ 0 , 15 ]
binário decimal
Menor número 00000000 0
Maior número 11111111 255
binário decimal
Menor número 0000...0 0
Maior número 1111...1 2n-1
overflow
+
8
n n
n n
overflow
overflow
+/- +/-
n
n
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
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
maior
… 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
… 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
… 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
… 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
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)
Criação da tabela-verdade: s0
c1
MS
c1 s0
s0 = a0·b0 + a0·b0 = a0 ⊕ b0
c1 = a0·b0
s0
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
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
= ci ( ai ⊕ bi ) + ci ( ai ⊕ bi )
= ci ⊕ ai ⊕ bi
ci+1 ci
SC
ci+1 ci
si
si = ci ⊕ ai ⊕ bi
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
c3 c2 c1
c4 SC SC SC MS
s3 s2 s1 s0
A B
n n
overflow
+
n
a3 b3 a2 b2 a1 b1 a0 b0
c3 c2 c1 c0
c4 SC SC SC SC
s3 s2 s1 s0
a3 b3 a2 b2 a1 b1 a0 b0
c3 c2 c1 c0 = cin
c4 SC SC SC SC
s3 s2 s1 s0
A B
n n
overflow
+ cin
binário decimal
Menor número 1000 -8
Zero 0000 0
Maior número 0111 +7
Intervalo de representação: [ -8 , +7 ]
binário decimal
Menor número 10000000 -128
Zero 00000000 0
Maior número 01111111 +127
binário decimal
Menor número 1000...0 -2n-1
Zero 0000...0 0
Maior número 0111...1 +(2n-1-1)
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
Interfaces:
B
4
Troca sinal
–B
b3 b2 b1 b0 B
0 0 0 0
c3 c2 c1 c0 1
c4 SC SC SC SC
r3 r2 r1 r0 -B
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
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
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
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
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
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
c3 c2 c1
c4 c0
s4 s2 s1 s0
c3 c2 c1
c4 c0
s4 s2 s1 s0