Cod. Disc: TURMA: GRUPO: NOME: Sistemas Digitais Relatório de Prática no LABORATORIO Aula 09 3ª Etapa: Projeto Prático Correção Código BCD e Sinal ANEXO: Teste de Simulação Soma e Subtração PROF. MSc. MÁRIO OLIVEIRA ORSI PROF. MSc. CARLOS ALEXANDRE FERREIRA DE LIMA ABRIL 2014 1
1. Projeto Final do Laboratório Trata-se do projeto de uma calculadora BCD (Bynare Coded Decimal Quatro bits representam um algarismo decimal) sendo dividido para a implementação em oito partes descritas abaixo e mostradas no diagrama de blocos funcionais Fig 1. Projeto Final: Calculadora BCD 1 a parte: Decodificador e Display 2 a parte: Somador e Subtrator 3 a parte: Correção BCD e Sinal 4 a parte: Seletor 5 a parte: Chaves sem Rebatimento Pulso 1 e Pulso 2 6 a parte: Contador BCD 7 a parte: Gerador de Sinais de Controle 8 a parte: Registrador A e B O projeto deverá ser implementado por grupos de no máximo 5 alunos, observando que o relatório é sempre individual. SINAL DISPLAY I DECODIFICADOR SELETOR 3:1 MONITOR SOMADOR / SUBTRATOR BCD REG B REG A GERADOR DE SINAIS DE CONTRÔLE MODO + / - PULSO 2 PULSO 1 CONTADOR BCD Fig 1 CALCULADORA BCD 2
AULA 9 Projeto final etapa 3 (Correção BCD e sinal) Objetivo: implementar a correção do código BCD (quatro bits decimais de 0 a 9) quando o resultado da soma for maior que 9 para visualização em decimal (display de 7 segmentos); visualização do sinal de negativo e obtenção do numero positivo (módulo) para resultados de subtração A B quando o número B > A. SINAL DISPLAY I fig 1 etapa 3 projeto final DECODIFICADOR SELETOR 3:1 MONITOR SOMADOR / SUBTRATOR BCD REG B REG A GERADOR DE SINAIS DE CONTRÔLE MODO + / - PULSO 1 PULSO 2 CONTADOR BCD 1. Fundamentos Teóricos: Nesta etapa fazemos a descrição de um exemplo de projeto de circuitos combinacionais e aritméticos através da solução do seguinte exercício: A partir de um Somador / Subtrator binário paralelo de dois números A e B de quatro bits (obtido na 2ª etapa); Projetar a Correção do código BCD na soma A+B > 9, a visualização do sinal de negativo e obtenção do numero positivo (módulo) na subtração A B quando o número B > A, para visualização do resultado em decimal considerando que: I Na Soma - Os algarismos decimais A e B a serem somados estão no intervalo de [0 a 9] - O resultado de cada soma será de 02 (dois algarismos) e deverá ser mostrado em displays de 7 segmentos prevendo dois casos: 1. Quando o resultado da soma for menor ou igual a 9 deve ser mostrado apenas o algarismo da direita. 2. Quando o resultado da soma for maior que 9 o algarismo da esquerda, deverá ser apenas 1 (ié o vai 1) e o algarismo da direita, deverá ser o resultado corrigido para visualização em BCD. II Na Subtração - Os algarismos decimais a serem subtraídos estão no intervalo de [0 a 9] - O resultado de cada subtração será de 1 algarismo que deverá ser mostrado no display da direita e quando este resultado for negativo deverá ser feito a sinalização com uso de SMC 2 e o sinal do resultado ( - ) mostrado no display da esquerda. 3
Solução: Considerando que os circuitos Somador / Subtrator binário paralelo de 4 bits (Aula 7) realizam a soma de dois números A e B de 4 bits fornecendo uma saída composta de 5 bits onde chamamos de soma os quatro bits menos significativos ( S 3 S 2 S 1 S 0 ) e o quinto bit S4 de estouro C4 conforme abaixo: C4 C3 C2 C1 C0 1 Para a Soma A3 A2 A1 A0 B3 B2 B1 B0 S4 ( S3 S2 S1 S0 ) Obtenção do algarismo da esquerda (acender ou não o n o. 1 ou seja, o vai 1 na soma) O algarismo da esquerda deve acender se e somente se estivermos fazendo uma soma E esta soma for maior que 9, portanto: - Passo 1: Podemos usar uma porta ( E ) AND com inversor numa entrada para habilitá-la a transmitir o nível que estiver na outra entrada, ou seja se K = C 0 = 0 (sendo K a chave modo (T/C) da soma no Somador / Subtrator projetados na etapa 2 (Aula 7) nível 0 invertido nível 1 libera a porta ( E ) AND para a outra entrada. - Passo 2: Na outra entrada da chave AND o nível deve ser 1 se a soma > 9 ( OU ) se a soma > 15 * (ocorre o estouro C 4 = 1) então usamos um (OR) que permitirá passar adiante o nível 1 para a saída do ( E ) que interligada convenientemente nos segmentos b e c do display da esquerda irá acender o algarismo da esquerda ( 1 ): * Observação: em circuito somador o resultado pode ser menor que 9 entretanto ser ao mesmo tempo maior que 15, por exemplo: Resultado = 17 1 0010 os 4 bits menos significativos da soma corresponde ao numero 2 < 9 e o quinto bit é o estouro C 4 = 1 significa que o numero em decimal é maior que quinze. Esquematizando conforme descrito acima: Ligar o C 0 na 1ª Entrada do AND se for soma (C 0 = 0) 1 libera Ligar na 2ª Entrada do AND a saída do OR se a soma passar de 9 (OU) passar de 15 se for soma Co = 0 1 libera se for subtração Co = 1 carry C'4 = 1 indica se passar de 15 0 trava 1 1 p/ display da esquerda acende algarismo da esquerda 1 quando soma passar de 9 4
Considerando o esquema do primeiro Somador/ subtrator que foi projetado na etapa 2 (Aula 7) acrescentamos abaixo a solução para o algarismo da esquerda. - Passo 3: Achar o circuito que vai indicar quando a soma passar de nove conforme abaixo: se for soma Co = 0 1 libera se for subtração Co = 1 0 trava 1 p/ display acende algarismo da carry C' 4 indica se passar de 15 esquerda 1 quando passar de 9 C' 4? A 3 1 14 CI 74283 A 2 3 7483 A 1 8 A 0 10 T/C 4 B 3 16 15 S 3 B 2 4 2 S 2 B 1 7 6 S 1 B 0 11 9 S 0 C 0 = 0 1 13 modo = 0 soma A+B modo = 1 subtração A - B Solução: o circuito que verifica se a soma ( S3 S2 S1 S0 ) é maior que 9 pode se obtido diretamente com o uso do Mapa de Kanought mostrado abaixo: S1S0 S3S2 0,0 0,1 1,1 1,0 0,0 0 0 0 1 0 3 0 2 0,1 0 4 0 5 0 7 0 6 1,1 1 12 1 13 1 15 1 16 Esquematizando a solução: S3.(S2 + S1) S 3 1,0 0 8 0 9 1 11 1 10 S3.S2 + S3.S1 S3.(S2 + S1) S 2 S 1 5
Acrescentando esta solução no esquema do circuito anterior obtermos: 1 se passar de 15 se for soma Co = 0 se for subtração Co= 1 1 libera 0 trava 1 quando passar de 9 S 3 1 p/ display esquerdo acende algarismo da esquerda segmentos b e c Display esquerdo S 2 carry C 4 S 1 A 3 1 CI 14 A 2 3 74283 A 1 8 7483 A 0 10 T/C 4 B 3 16 15 S 3 B 2 4 2 S 2 B 1 7 6 S 1 B 0 11 9 S 0 Display direito 13 C0 = 0 1 modo = 0 soma A+B modo = 1 subtração A - B Obtenção do algarismo da direita Quando a soma for maior que 9 precisamos corrigir o código BCD para visualização em decimal, para isto usamos um outro somador / subtrator binário de 4 bits interligando convenientemente os outros circuitos para somar 0110 (6)*, conforme mostrado na próxima figura. * o algarismo da direita deve ser mostrado no display de 7 segmentos (maior valor = 9); Numa soma decimal que ultrapassa a base (10), o algarismo da direita é o total subtraído da base (10) e o valor que ultrapassa é o transporte (ou seja o vai 1), portanto, temos que obter numero sinalizado (-10) usando o sistema de complemento a 2 (SMC2 = SMC 1 + 1) que corresponde a somar (6 ) 0110 em binário, como mostrado no exemplo abaixo: Exemplo: 9 1001 ou seja 9+3 =(12-10) = 2 e vai 1, entretanto 1010 (10) +3 +0011 SMC 1(inverte bit a bit) 0101 12 1100 (12) Código BCD inválido +0001 ( 1) + 0110 ( 6) SMC2 (6) 0110 (-10) 1 0010 (18) Algarismo da direita corrigido ( 2 ) 6
Se a soma for menor ou igual que 9 o segundo somador / subtrator com o C0 = 0 somará zero (0000) ao binário: S3 S2 S1 S0 que vai para o display da direita sem correção. se for soma Co = 0 se for subtração Co= 1 1 libera 0 trava 1 g b g f a b 1 se passar de 15 1 quando passar de 9 soma>9 ou soma >15 c. e d c. S 3 S 2 1 (soma>9 ou 15) carry C 4 A 3 1 CI 14 74283 A 2 3 A 1 A 0 8 10 7483 T/C 4 B 3 16 15 S 3 B 2 4 2 S 2 B 1 7 6 S 1 B 0 11 9 S 0 13 S 1 T/C C 4 7483 sem uso 1 14 3 15 3 dec 8 10 2 2 16 4 7 11 13 6 1 B C 9 0 D C0 = 0 1 modo = 0 soma A+B modo = 1 subtração A - B soma Para a Subtração: Obtenção de um DETECTOR DE SINAL DA SUBTRAÇÃO A B; Considerando os exemplos a seguir: A > B 8-5 = 3 0 0 1 1 5 0 1 0 1 1 0 1 0 c1 1 Q - 5 1 0 1 1 c2 8 1 0 0 0 1 0 0 1 1 positivo C 4 resultado A = B 4-4 = 0 0 0 0 0 4 0 1 0 0 1 0 1 1 c1 1 Q - 4 1 1 0 0 c2 4 0 1 0 0 1 0 0 0 0 positivo C 4 resultado A < B 4-9 = - 5 ` - 0 1 0 1 9 1 0 0 1 0 1 1 0 1 Q - 9 0 1 1 1 4 0 1 0 0 0 1 0 1 1 C 2 ` 0100 `010 1 C 4 negativo resultado = 0101 7
Conclusão: O sinal vai ser determinado pelo valor do estouro C 4, portanto, podemos obter o circuito que acende o segmento g do display da esquerda quando C 4 = 0 conforme solução para tabela verdade abaixo (o sinal de menos deve acender somente quando for subtração modo = 1 e o resultado é negativo C4 = 0) * Solução: C 4 MODO? 0 0 0 0 1 1 C 4. M * S olu ç ão 1 0 0 1 0 0 a) Da expressão da solução acima esquematizada conforme figura a seguir temos uma Porta AND como uma chave: que será Habilitada se a entrada MODO ( C 0 ) = 1 (Chave K do circuito T/C no modo subtração) e passa adiante o nível 1 quando invertemos C 4 = 0 (o resultado é negativo), e a saída interligada ao display esquerdo no segmento g irá acender o sinal de (negativo). Para som / sub de correção carry C 4 C 0 = 0 1 _ Para display esquerdo segmento g b) A saída interligada também na chave K do Circuito T/C e Co no segundo somador / subtrator binário de 4 bits aciona o complemento a 2 (SMC2) sobre o resultado negativo obtido da subtração do primeiro somador / subtrator binário de 4 bits corrigindo (executado o módulo do no. negativo) o resultado (algarismo da direita) que aparece no display da direita. c) O circuito do somador / subtrator usado para correção na soma deverá ser modificado (figura a seguir) para que a entrada do numero A seja (0000) ligada no nível 0 (terra), sempre que o resultado na saída do primeiro somador / subtrator for um no. negativo, 8
ou seja, C 4 = 0 e a operação que esta sendo realizada é uma subtração, ou seja, K = C 0 = 1, permitindo que este segundo somador some 0, e neste caso execute apenas o complemento a 2 necessário para a correção do numero negativo para ser mostrado no display da direita Esquema da correção de resultado negativo de subtração e para mostrar o sinal (menos) A - B CI 7483 CI 7483 A 3 1 14 Estouro 0 1 14 A 2 3 Carrier out C4 0 3 CI 74283 CI 74283 A 1 8 0 8 A 0 10 0 10 CI 7486 CI 7486 B 3 T / C T / C B 3 / B 3 16 S 3 / S 3 16 B 2 B 1 B 0 15 15 3 3 B 2 / B 2 4 2 S 2 / S 2 4 2 2 2 6 6 1 4 1 B 1 / B 1 7 9 S 1 / S 1 7 9 0 4 DISPLAY D B 0 / B 0 11 S 0 / S 0 11 0 13 13 0 1 DISPLAY E d) A correção considerada acima somente ocorrerá quando a operação que esta sendo realizada é uma subtração, ou seja, K = C0= 1, que resulta em saída 0 (terra) no circuito ligado no display da esquerda, podemos portanto interligar esta saída na entrada do numero A do circuito do somador / subtrator usado para correção na soma. No ANEXO está descrito os Procedimentos Experimentais e é mostrado os esquemas completos da 3ª Etapa. Observando as figuras do somador binário de 4 bits com a correção BCD descrita nesta etapa serão necessários os seguintes CIs 7408 AND, 7432 OR e 7404 Inversor, bem como o uso de mais um display. Podemos utilizar uma Unidade Lógica e Aritmética CI 74181 (mostrada no ANEXO á seguir) adaptando-a para fazer a soma e subtração dos números A e B, e um conjunto de CIs 7486 e 74283 de um circuito Somador/Subtrator para fazer a correção da soma/subtração. 9
Cod. Disc: TURMA: GRUPO: NOME: Sistemas Digitais PROCEDIMENTOS EXPERIMENTAIS ANEXO da Aula 09 ESQUEMAS COMPLETOS 3ª ETAPA Teste de Simulação Soma e Subtração PROF. MSc. MÁRIO OLIVEIRA ORSI PROF. MSc. CARLOS ALEXANDRE FERREIRA DE LIMA ABR 2014 10
Podemos utilizar uma Unidade Lógica e Aritmética CI 74181 (mostrada ABAIXO) adaptando-a para fazer a soma e subtração dos números A e B, e um conjunto de CIs 7486 e 74283 de um circuito Somador/Subtrator para fazer a correção da soma/subtração. CI 74181 Unidade Lógica e Aritmética ULA S 3 S 2 S 1 S 0 A=B ~P ~G A 3 A 2 A 1 A 0 B 3 B 2 B 1 B 0 3 4 5 6 14 15 17 19 21 23 2 18 20 22 1 16 7 C N +4 C N 24 12 13 11 10 9 8 +5V F 3 F 2 F 1 F 0 M 0 V NOME DOS PINOS Pino E/S Descrição A 3..A 0 entrada Primeiro operando B 3..B 0 entrada Segundo operando S 3..S 0 entrada Seleção da função M entrada Modo: 1=lógica; 0=aritmetica C N entrada /Cin transporte de entrada invertido F 3..F 0 saída Resultado da operação A=B saída Indica que A=B G saída Gerou transporte (para carry look-ahead) P saída Propagou transp.(para carry look-ahead) C N+4 saída /Cout transporte de saída invertido FIG 1 LAY-OUT FUNCIONAL 74181 Pinos 3 4 5 6 1 0 0 1 SOMA A + B Pinos 14, 15, 17 outras funções 0 1 1 0 SUBTRAI A - B Pinos 12, 24 alimentação Carry in: Cn = 1 SOMA Cn = 0 SUBTRAÇÃO Carry out: Cn+4 = 1 SOMA < 15 ou SUBTRAÇÃO < 0 Carry out: Cn+4 = 0 SOMA > = 15 ou SUBTRAÇÃO > 0 Considerando o esquema inicial e todas as modificações realizadas até agora é mostrado á seguir DOIS Esquemas completos da etapa 3 (um com dois circuitos somador/subtrator e outro usando uma ULA 74181 e um circuito somador/subtrator 11
Esquema 1: Etapa 3 COM DOIS circuitos somador/subtrator CC / AC CC / AC g f a b g f a b e d c. e d c. 7404 p/ display esquerdo segmentos b e c 7408 C 4 7432 S 2 74 32 7408 S 1 14 C' 4 C 4 sem uso A 3 1 7483 1 CI 74283 CI 7483 74283 A 2 3 3 15 3 A 1 8 8 A 0 10 10 2 2 7486 7486 T/C 14 5 4 T/C 14 5 4 1 B 3 1 3 16 15 S 3 1 3 16 B 2 4 6 4 2 S 2 4 6 4 9 0 B 1 10 8 7 6 S 1 10 8 7 B 0 13 11 11 9 S 0 13 11 11 2,5,9,12 13 2,5,9,12 13 6 2 1 7 7448 / 7 Decod. 15 14 13 12 11 10 9 f g a b c d e C 0 = 0 1 modo = 0 soma A+B modo = 1 subtração A - B branco 7404 p/ display esquerdo segmento g - Numerar todos os pinos DE TODOS OS CIs no ESQUEMA 1 ACIMA (considerando a numeração já executada nas etapas 1 e 2) - Numerar todos os pinos DE TODOS OS CIs no ESQUEMA 2 ABAIXO (considerando a numeração já executada nas etapas 1 e 2) + ULA 74181 7408 _ 12
Esquema 2: Etapa 3 COM uma ULA 74181 e um circuito somador/subtrator CI 74283 13
RELATORIO DE TESTES AULA 09 Testar o circuito apenas com SIMULAÇÃO (NAS FOLHAS A FRENTE) da seguinte forma: Descrevendo e executando as contas indicadas; ESCREVENDO todos os resultados intermediários destacando o que acontece ULA e no SOM/SUB de correção. No final desenhando o display o resultado esperado de cada conta TESTE DA SOMA S PARA AS TRES POSIBILIDADES: S=A+B PARA S<9 S=9 e S>9 TESTE DA SUBTRAÇÃO S PARA AS TRES POSIBILIDADES: S=A-B PARA A>B A=B e A<B 14
S = A + B S < 9 15
S = A + B S = 9 16
S = A + B S > 9 17
S = A - B A > B 18
S = A - B A = B 19
S = A - B A < B 20