Você está na página 1de 8

EPUSP — PCS 2011/2305/2355 — Laboratório Digital

CALCULADORA SIMPLES COM ULA


Versão 2012

RESUMO1
Esta experiência tem por objetivo a utilização de circuitos integrados de operações lógicas e aritméticas
para o desenvolvimento de circuitos que executam operações aritméticas básicas. A parte experimental
inclui o projeto de uma calculadora simples que executa as operações de soma e subtração, além de
multiplicação e divisão por 2 para valores em complemento de dois, utilizando o circuito integrado 74181
(ULA de 4 bits).

1. PARTE TEÓRICA
1.1. Soma / Subtração Usando Complemento de Dois
Sabe-se que numa operação aritmética em complemento de dois, não se corrige o resultado como no
caso da notação em complemento de um. É necessário, porém, somar-se 1 ao complemento bit a bit do
número:

(Complemento de 2) = (Complemento de 1) + 1.

Numa subtração, portanto, costuma-se “forçar” um “vem-um” na coluna de bits menos significativos dos
operandos:
Exemplos:

7 - 3 = 4 4 - 6 = -2

1 “vem-um” forçado 1 “vem-um” forçado


0 1 1 1 7 0 1 0 0 4
1 1 0 0 -3 (complemento de 1) 1 0 0 1 -6 (complemento de 1)
0 1 0 0 4 1 1 1 0 -2 (complemento de 2)

Numa soma de dois números de mesmo sinal (positivos ou negativos), a complementação não é
necessária e, portanto, não há “vem-um” forçado.
Exemplo:
-2 + (-3) = -5

1 1 1 0 -2 (complemento de 2)
1 1 0 1 -3 (complemento de 2)
1 0 1 1 -5 (complemento de 2)

A figura 1.1 mostra um circuito de soma/subtração em complemento de 2 usando um somador binário.

1
Esta experiência foi baseada nas experiências “Somadores binários” e “Calculadora Simples”, desenvolvidas para o Laboratório
Digital.

Calculadora Simples com ULA (2012) 1


EPUSP — PCS 2011/2305/2355 — Laboratório Digital

X Y ou Y'

4 4
SUBTR = 1

S
Figura 1.1 - Circuito de Soma / Subtração em Complemento de 2 com somador binário.

1.2. Multiplicação e Divisão


As operações de multiplicação e divisão podem ser implementadas em um circuito digital através de um
processo iterativo que envolve diversos passos computacionais (Midorikawa, 2004) (Tocci & Widmer,
2007). Por exemplo, a figura 1.2 abaixo ilustra um exemplo de multiplicação.

13 1101 multiplicando
11 1011 multiplicador
0000 valor inicial do produto parcial
+ 1101 soma multiplicando, bit do multiplicador é 1
1101
0110 1 desloca para a direita
+ 1101 soma multiplicando, bit do multiplicador é 1
1 0011 1
1001 11 desloca para a direita
0100 111 só desloca para a direita, bit do multiplicador é 0
+ 1101 soma multiplicando, bit do multiplicador é 1
1 0001 111
1000 1111 desloca para a direita

143 10001111 produto

Figura 1.2 – Exemplo de Multiplicação Binária.

Embora estas operações sejam complexas, certas situações podem levar a simplificações no circuito
digital que as implementa. Uma destas situações é a da divisão por dois, onde, no caso de números
positivos sem sinal, a operação pode ser implementada apenas por um deslocamento de bits de uma
posição à direita.
Exemplos:

6 / 2 = 3 5 / 2 = 2

0 1 1 0 6 0 1 0 1 5

desloca à direita de uma posição desloca à direita de uma posição

0 0 1 1 3 0 0 1 0 2

O mesmo pode ser aplicado para a multiplicação de números inteiros positivos por dois, onde esta
operação pode facilmente ser implementada com um deslocamento de bits de uma posição à esquerda.

Calculadora Simples com ULA (2012) 2


EPUSP — PCS 2011/2305/2355 — Laboratório Digital

1.3. Unidade Lógica e Aritmética (ULA)


A Unidade Lógica e Aritmética (ULA) é um circuito combinatório responsável pela execução de somas,
subtrações e funções lógicas, em um sistema digital. Na figura 1.3 é mostrado um esquema simplificado
de uma ULA.

A B

S
F

Figura 1.3 - Esquema Simplificado de uma ULA.

A operação que deve ser executada com os dados (A e B) é determinada pelos sinais de controle (S) e o
resultado é obtido na saída (F). A complexidade da ULA é proporcional à complexidade do sistema em
que será utilizada; assim, sistemas simples permitem ULAs simples, e sistemas sofisticados exigem ULAs
sofisticadas.
Uma vez estabelecido o porte do sistema, existe também o compromisso entre velocidade e preço. Por
exemplo, as calculadoras eletrônicas exigem ULAs que permitem operações complexas, porém com
velocidade de operação baixa, reduzindo-se o custo; já os computadores de grande porte exigem
velocidade de operação elevada, aumentando o custo da ULA.
Atualmente têm-se várias alternativas de circuitos integrados que incluem uma ULA. Entre elas estão o
74181, 74381 e 74LS881.
A seguir será apresentada uma descrição de uma ULA integrada, o circuito integrado 74181.

1.4. Circuito Integrado 74181 – uma ULA de 4 bits


O circuito integrado MSI 74181 é uma ULA de 4 bits que tem possibilidade de executar 16 operações
aritméticas binárias e 16 operações lógicas. A figura 1.4 apresenta um diagrama simplificado deste
circuito integrado.

M S3 S2 S1 S 0 Cn

A3 F3

A2 F2

A1 F1

A0 F0
74181
B3 G

B2 T

B1 A=B

B0 Cn+4

Figura 1.4 - Diagrama Simplificado da ULA 74181.


As tabelas I e II a seguir apresentam a descrição dos pinos e as operações da ULA.

Calculadora Simples com ULA (2012) 3


EPUSP — PCS 2011/2305/2355 — Laboratório Digital

Tabela I - Descrição dos pinos da ULA 74181.

Pinos Tipo Descrição

A0 a A3 e B0 a B3 Entrada Dados

Cn Entrada Bit de "vem um"

S0 a S3 Entrada Seleção da operação

Modo de operação:
M Entrada M=0 - para operações aritméticas
M=1 - para operações lógicas

F0 a F3 Saída Dados (resultado)

Cn+4 Saída Bit de "vai-um"

GeT Saídas Utilizadas para expansão utilizando carry look-ahead

A=B Saída Indica igualdade das duas entradas

Tabela II - Sinais e Operações da ULA 74181.

Seleção Funções Funções Aritméticas ( M = 0 )


Lógicas
S3 S2 S1 S0 (M=1) Cn = 1 (sem carry) Cn = 0 (com carry)

0 0 0 0 F = A F=A F=A+1

0 0 0 1 F = (A OR B) F = A OR B F = (A OR B) + 1

0 0 1 0 F = A⋅B F = A OR B F = A OR B + 1

0 0 1 1 F=0 F = -1 (*) F=0

0 1 0 0 F = A.B F=A+ A⋅B F = A + A⋅B+ 1

0 1 0 1 F = B F = (A OR B) + A ⋅ B F = (A OR B) + A ⋅ B + 1

0 1 1 0 F=A⊕B F=A-B-1 F=A-B

0 1 1 1 F = A⋅B F = A⋅B-1 F = A⋅B

1 0 0 0 F = A OR B F = A + A.B F = A + A.B + 1

1 0 0 1 F = (A ⊕ B) F=A+B F=A+B+1

1 0 1 0 F=B F = A OR B + A . B F = A OR B + A . B + 1

1 0 1 1 F=A.B F=A.B-1 F=A.B


1 1 0 0 F=1 F=A+A F=A+A+1
1 1 0 1 F = A OR B F = (A OR B) + A F = (A OR B) + A + 1

1 1 1 0 F = A OR B F = A OR B + A F = A OR B + A + 1

1 1 1 1 F=A F=A-1 F=A

* (-1)10 é representado por (1111)2 em C2.

As saídas G e T são os sinais "gerador de vai-um", correspondentes ao bit mais significativo e, utilizando-
se o circuito integrado 74182, look-ahead carry generator, permitem a expansão da largura da palavra a
ser manipulada.

Calculadora Simples com ULA (2012) 4


EPUSP — PCS 2011/2305/2355 — Laboratório Digital

As operações de subtração são executadas em complemento de dois (C2). Por exemplo, (-1) é
representado por (1111). As operações lógicas são executadas bit a bit. Por exemplo, se a operação AND
é aplicada às entradas A = 1011 e B = 0110, resulta F = 0010.
O resultado de uma operação de comparação é apresentado na saída A = B. Para tanto, deve-se executar
a operação A - B - 1 com Cn = 1; se as duas entradas são iguais, a saída A = B toma o valor 1. Esta saída
tem a configuração open-colector para que seja possível implementar uma função wired-and dentre duas
ou mais saídas deste tipo pertencentes a diferentes ULAs, quando se deseja expandir a largura da
palavra a ser manipulada.
A saída Cn+4 representa o sinal de vai-um do último bit da palavra. Ela pode ser usada para propagar o
vai-um para o próximo estágio quando não há preocupação com a velocidade do circuito. O sinal Cn+4
também pode ser usado em conjunto com a saída A = B para indicar as condições A>B e A<B.

OBSERVAÇÃO: Na realidade, em se tratando de um circuito combinatório, a ULA 74181 pode trabalhar


com operandos representados em lógica positiva ou negativa. A Tabela II acima mostra o significado dos
bits de seleção de operações quando se considera o uso de lógica positiva. Consulte o manual
(datasheet) do componente para o caso do uso de lógica negativa.

Calculadora Simples com ULA (2012) 5


EPUSP — PCS 2011/2305/2355 — Laboratório Digital

2. PARTE EXPERIMENTAL
2.1. Especificação do Projeto
Projetar o circuito da Calculadora Simples com ULA, onde a figura 2.1 ilustra os sinais de entrada e saída
do circuito.
D3 D2 D1 D0

I2
I1 Calculadora
I0
Simples
com ULA
Execute

S3 S2 S1 S0
Figura 2.1 – Circuito da Calculadora Simples com ULA.

O circuito deve realizar uma função, determinada pela entrada I (3 bits), sobre o dado de entrada D
de 4 bits e o conteúdo do registrador interno A de 4 bits. A tabela 2.1 apresenta as funções a serem
implementadas. O resultado deve ser armazenado em A apenas no acionamento do sinal EXECUTE.
O circuito da Calculadora Simples com ULA deve trabalhar com valores de 4 bits em notação de
complemento de dois.

Tabela 2.1 – Tabela de funções da Calculadora Simples com ULA.


Código
Função
I2 I1 I0
0 Soma (A ← A+D)
0
1 Subtração (A ← A-D)
0
0 Multiplicação por 2 (A ← A×2)
1
1 Divisão por 2 (A ← A÷2)
0 Carga de valor (A ← D)
0
1 Reset (A ← 0)
1
0 Reservado
1
1 Reservado

Para o projeto do circuito devem ser usados componentes básicos como portas lógicas, decodificadores,
multiplexadores, somadores binários, registradores, deslocadores e flip-flops.

2.2. Montagem e Depuração do Circuito


Nesta etapa, o grupo deve planejar os procedimentos de montagem modular, testes e depuração dos
módulos do circuito da Calculadora Simples com ULA.

a) A montagem deve ser realizada e testes iniciais devem ser planejados pelo grupo.
b) O grupo deve propor um roteiro para a demonstração do correto funcionamento deste circuito.

Calculadora Simples com ULA (2012) 6


EPUSP — PCS 2011/2305/2355 — Laboratório Digital

2.3. Programas de Teste do Circuito Completo


Agora o grupo deve desenvolver “programas” para realizar algumas computações abaixo.
c) Executar a seguinte sequência de instruções:
RESET
CARGA 6 em A
Subtrai 11112
Divide por 2

Qual deve ser o resultado final em A após a execução desta sequência?


d) Desenvolver um plano de execução para os seguintes cálculos:
i. F = (A + B) - C
ii. F = ((A * 2) – B) + C
iii. F = (A + B – C) / 2
e) Elaborar uma tabela contendo todos os sinais que devem ser ativados para a execução de cada
plano.
f) Executar cada plano para pelo menos um conjunto de valores positivos e negativos.

Perguntas:
1. Explique como a operação de multiplicação por 2 poderia ser implementado usando a ULA.
2. Mostre como outras operações (p.ex. operações lógicas) poderiam ser acrescentadas no circuito.
3. Como seria o projeto do circuito da Calculadora se ao invés de uma ULA, fosse usado um
somador binário?

3. BIBLIOGRAFIA
• FREGNI, Edson e SARAIVA, Antonio M. Engenharia do Projeto Lógico Digital: Conceitos e Prática.
Editora Edgard Blucher Ltda, 1995.
• WAKERLY, John F. Digital Design Principles & Practices. 4th edition, Prentice Hall, 2006.
• Fairchild Semiconductor. TTL Data Book. Mountain View, California, 1978.
• MIDORIKAWA, E. T. Multiplicador binário. Apostila de Laboratório Digital, versão de 2004.
• PCS/EPUSP. Somadores binários. Apostila de Laboratório Digital, 2001.
• PCS/EPUSP. Calculadora simples. Apostila de Laboratório Digital, 2008.
• Texas Instruments. TTL Logic Data Book, 1994.
• TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Digital Systems: principles and applications. 11th ed.,
Prentice-Hall, 2011.

4. MATERIAL DISPONÍVEL
• Circuitos Integrados TTL:
7400 – portas NAND de 2 entradas 7486 – portas XOR
7402 – portas NOR de 2 entradas 74157 – multiplexadores de 2 para 1
7404 – portas inversoras 74175 – registrador de 4 bits
7408 – portas AND de 2 entradas 74181 – ULA de 4 bits
7410 – portas NAND de 3 entradas 74193 – contador síncrono up/down de 4 bits
7420 – portas NAND de 4 entradas 74194 – registrador deslocador bidirecional de 4 bits
7474 – flip-flops tipo D 74195 – registrador deslocador de 4 bits

Calculadora Simples com ULA (2012) 7


EPUSP — PCS 2011/2305/2355 — Laboratório Digital

5. EQUIPAMENTOS NECESSÁRIOS
• 1 painel de montagens experimentais.
• 1 fonte de alimentação fixa, 5V ± 5%, 4A.
• 1 osciloscópio digital.
• 1 multímetro digital.
• 1 gerador de pulsos.

Histórico de Revisões
E.T.M./2003 – revisão e adaptação.
M.D.M. e E.T.M./2005 – revisão.
E.T.M./2008 – revisão.
E.T.M./2012 – versão inicial com ULA.

Calculadora Simples com ULA (2012) 8

Você também pode gostar