CALCULADORA SIMPLES COM ULA Versão 2012 RESUMO 1 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
X Y ou Y' 4 4 SUBTR = 1 1 4 Figura 1.1 - Circuito de Soma / Subtração em Complemento de 2 com somador binário. 1.2. Multiplicação e Divisão S 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
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 A 3 A 2 A 1 S 3 S 2 S 1 S 0 Cn F3 F2 F1 A 0 B3 B2 B1 B0 74181 F0 G T A = B C n+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
Tabela I - Descrição dos pinos da ULA 74181. Pinos Tipo Descrição A 0 a A 3 e B 0 a B 3 Entrada Dados C n Entrada Bit de "vem um" S 0 a S 3 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 F 0 a F 3 Saída Dados (resultado) C n+4 Saída Bit de "vai-um" G e T 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 S 3 S 2 S 1 S 0 ( M = 1 ) C n = 1 (sem carry) C n = 0 (com carry) 0 0 0 0 F = A F = A F = A + 1 0 0 0 1 F = (AORB) F = A OR B F = (A OR B) + 1 0 0 1 0 F = A B F = AORB F = AORB+ 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 = AORB 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 = AORB+ A. B F = AORB+ 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 = AORB F = (A OR B) + A F = (A OR B) + A + 1 1 1 1 0 F = A OR B F = AORB+ A F = AORB+ 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, utilizandose 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
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 C n = 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 C n+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 C n+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
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. D 3 D 2 D 1 D 0 I 2 I 1 I 0 Execute Calculadora Simples com ULA S 3 S 2 S 1 S 0 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 I 2 I 1 I 0 Função 0 1 0 1 0 1 0 Soma (A A+D) 1 Subtração (A A-D) 0 Multiplicação por 2 (A A 2) 1 Divisão por 2 (A A 2) 0 Carga de valor (A D) 1 Reset (A 0) 0 Reservado 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
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 1111 2 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. 4 th 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 7402 portas NOR de 2 entradas 7404 portas inversoras 7408 portas AND de 2 entradas 7410 portas NAND de 3 entradas 7420 portas NAND de 4 entradas 7474 flip-flops tipo D 7486 portas XOR 74157 multiplexadores de 2 para 1 74175 registrador de 4 bits 74181 ULA de 4 bits 74193 contador síncrono up/down de 4 bits 74194 registrador deslocador bidirecional de 4 bits 74195 registrador deslocador de 4 bits Calculadora Simples com ULA (2012) 7
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