Multiplicador Binário com Sinal



Documentos relacionados
Multiplicador Binário com Sinal

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS 2011/2305/2355 Laboratório Digital CALCULADORA SIMPLES

EPUSP PCS 3335 Laboratório Digital A. Um Circuito Digital

Exemplo 1 de Projeto de Circuito Síncrono: Multiplicador Binário

Capítulo VI Circuitos Aritméticos

EPUSP PCS 2011/2305/2355 Laboratório Digital SOMADORES DECIMAIS

Montagem, testes, depuração e documentação de circuitos digitais

CALCULADORA SIMPLES COM ULA

EPUSP PCS2355 Laboratório Digital SOMADORES DECIMAIS

UM PROCESSADOR SIMPLES

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Exemplo 2 de Projeto de Circuito Síncrono. Contador de Uns

EPUSP PCS 2021/2308/2355 Laboratório Digital GERADOR DE SINAIS

Aritmética Computacional. Prof. Leonardo Barreto Campos 1

Módulos Combinatórios

Calculadora Simples em VHDL

Projeto com Linguagens de Descrição de Hardware

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

Somadores Binários E.T.M./2005 (revisão)

Circuitos Combinacionais Básicos

Banco de Registradores

EPUSP PCS 2355 Laboratório Digital. Contadores em VHDL

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

FLIP FLOPS. EXPERIMENTS MANUAL Manual de Experimentos Manual de Experimentos M-1113A

Disciplina de Laboratório de Elementos de Lógica Digital I SSC-0111

EPUSP PCS 2011/2305/2355 Laboratório Digital. Frequencímetro

Introdução ao Projeto de Sistemas Digitais com Dispositivos Programáveis

Organização e Arquitetura de Computadores I

EPUSP PCS 3335 Laboratório Digital A. Introdução ao VHDL

12 de Março de Aula 5

Uma Introdução às Linguagens de Descrição de Hardware

Circuitos Aritméticos

Circuito de Recepção Serial Assíncrona

LÓGICA PROGRAMÁVEL II

ÁLGEBRA BOOLEANA- LÓGICA DIGITAL

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples

EPUSP PCS 3335/3635 Laboratório Digital. Circuito em VHDL

EPUSP PCS 3635 Laboratório Digital I. Trena Digital

Figura 8: modelo de Von Neumann

Laboratório de Circuitos Digitais 1

EPUSP PCS 2011 Laboratório Digital I. Uma ULA Simples

Processador nanopcs-3

Circuito Decodificador BCD para Display de Sete Segmentos

Sistemas Digitais II. Interface com o mundo analógico. Prof. Marlon Henrique Teixeira Abril/2014

Faculdades Integradas de Caratinga PROGRAMA DE DISCIPLINA ANO: 2012 SEMESTRE: 1º

Projeto de Circuitos Aritméticos

APOSTILA DE ELETRÔNICA DIGITAL II

Organização e Arquitetura de Computadores I

CRONÔMETRO DIGITAL PROJETO

UTILIZAÇÃO DE CIRCUITOS BIESTÁVEIS

Arquitetura de Computadores - Operação da Unidade de Controle. por Helcio Wagner da Silva

UM PROCESSADOR SIMPLES

Turma PCS2304. Objetivos. Site da disciplina. Professor Edson Midorikawa Edson T. Midorikawa 25/02/2008.

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS

SSC0112 Organização de Computadores Digitais I

Capítulo 6. Aritmética Computacional. 6.1 Números com Sinal e Números sem Sinal

Estruturas de Repetição

TECNOLOGIA EM MECATRÔNICA INDUSTRIAL CONTROLADORES LÓGICOS PROGRAMÁVEIS

Comunicação Serial Assíncrona

UTILIZAÇÃO DE CIRCUITOS BIESTÁVEIS

Projetando um Computador Parte II Arquitetura do Processador BIP

7. Funções de Lógica Combinacional. 7. Funções de Lógica Combinacional 1. Somadores Básicos. Objetivos. Objetivos. Circuitos Digitais 03/11/2014

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

Relatório Circuitos Lógicos. Calculadora 4 bits

BC-0504 Natureza da Informação

EPUSP PCS 3335 Laboratório Digital A. Trena Digital

Caminho de Dados e Controle. Prof. Leonardo Barreto Campos 1

Arquitetura e Organização de Computadores. Profa. Débora Matos

SIMULAÇÃO DE CIRCUITOS E DISPOSITIVOS PROGRAMÁVEIS

EPUSP PCS 2011 Laboratório Digital GERADOR DE SINAIS

Processador nanopcs-4

Interface com Displays de 7 Segmentos. Interface com Displays

Figura 1 - Somador para dois números de 4 bits com extensores lógicos (EL) e Aritméticos(EA).

Projetando um Computador

CONTROLE PARA SEMÁFOROS DE UM CRUZAMENTO

SIMULAÇÃO DE CIRCUITOS

Interface com Sensor Ultrassônico de Distância

LISTA COMPLEMENTAR DE DAC E ADC DO LIVRO DO TOCCI

Unidade Lógica e Aritmética

Arquitetura e Organização de Computadores

Transcrição:

Multiplicador Binário com Sinal Edson T. Midorikawa/2010 RESUMO Nesta experiência será implementado circuito para multiplicação binária com sinal. Deve ser aplicada a metodologia para projeto estruturado de sistemas digitais apresentada em experiências anteriores. A parte experimental será desenvolvida com o auxílio da ferramenta de software Quartus II da Altera e depois implementada com o dispositivo lógico Altera EPM7128SLC84-7. 1. PARTE TEÓRICA 1.1. Revisão sobre Multiplicação Binária Na experiência anterior, vimos como a operação de multiplicação binária pode ser implementada para números sem sinal. Baseado na descrição da operação de multiplicação, pudemos desenvolver um circuito digital que implementa sua funcionalidade. A figura 1.1 mostra um diagrama de blocos do circuito do multiplicador binário e a figura 1.2, uma possível implementação da unidade de controle. Figura 1.1 - Diagrama de blocos do multiplicador binário. O circuito relativo à implementação da unidade de controle e mostrado na figura 1.2 foi desenvolvido a partir do diagrama ASM do multiplicador binário (figura 1.3). O circuito da unidade de controle ilustrado segue o modelo registrador de estado e decodificador. Para mais informações sobre este e outros modelos possíveis de implementação, consulte as referências (Ranzini, 2004) e (Mano e Kime, 2004). Multiplicador Binário com Sinal (2010) 1

Figura 1.2 - Uma implementação da unidade de controle do multiplicador binário. A unidade de controle do multiplicador binário tem 3 estados (PARADO, MUL0 e MUL1), e gera sinais de controle para o fluxo de dados para acionar seus componentes (registradores deslocadores A e Q, flipflop C e contador P) Figura 1.3 - Diagrama ASM da unidade de controle do multiplicador binário. Multiplicador Binário com Sinal (2010) 2

1.2. Multiplicação Binária com Sinal Quando consideramos números com sinal, o algoritmo usado na experiência anterior não pode ser aplicado. Considere a multiplicação de 11 (1011 2 ) com 13 (1101 2 ), onde obtemos o resultado 143 (10001111 2 ). Se considerarmos estes valores binários como números em complemento de dois, teríamos a multiplicação de -5 (1011 2 ) com -3 (1101 2 ) resultando em -113 (10001111 2 ), que é um valor diferente de 15 (00001111 2 ). Para mais detalhes consulte (Stallings, 2002). Uma forma de levar em consideração o sinal dos operandos na operação de multiplicação binária é usar o algoritmo de Booth. A figura 1.4 mostra fluxograma para o algoritmo de Booth. INÍCIO A 0, Q -1 0 M multiplicando Q multiplicador Contador n = 10 Q 0,Q -1 = 01 A A M = 00 = 11 A A + M Deslocamento aritmético para a direita de A,Q,Q -1 Contador Contador -1 NÃO Contador = 0? SIM FIM Figura 1.4 Fluxograma do algoritmo de Booth. Convém apontar alguns aspectos a serem considerados no projeto do fluxo de dados do multiplicador binário com sinal: presença do bloco somador/subtrator; presença do flip-flop F à direita do multiplicador para armazenar Q -1 ; o deslocamento do acumulador deve ser aritmético (o que isto significa e o que muda no circuito em relação ao multiplicador sem sinal?); a decisão de soma ou subtração depende do bit menos significativo do multiplicador (Q 0 ) e do flip-flop F (Q -1 ). Estes sinais de estado são enviados à unidade de controle; a unidade de controle é bem parecida com a do multiplicador binário de números sem sinal. Multiplicador Binário com Sinal (2010) 3

A figura 1.5 mostra o diagrama de blocos básico do multiplicador binário com sinal. O flip-flop F mantém o dado que é identificado como Q -1 no fluxograma da figura 1.4. IN n registra_m Multiplicando M Contador P Detetor de Zero soma/subtrai Somador / Subtrador ZERO desloca desloca registra_q registra_a Acumulador A Multiplicador Q Q 0 Flip- Flop F Q -1 Unidade de Controle... OUT Sinais de controle Figura 1.5 Diagrama de blocos básico do multiplicador binário com sinal. Algumas dicas sobre o projeto do Multiplicador Binário com Sinal: 1) o bloco somador/subtrador pode ser facilmente projetado com um somador binário e portas OU EXCLUSIVO (XOR). O sinal que indica a operação (0=soma, 1=subtração) é conectado em uma das entrada das portas e também na entrada de vem-um do somador binário; 2) O sinal acima para soma ou subtração pode vir direto do bit menos significativo do registrador Q (sinal Q 0 ): quando Q 0 =0, deve ocorrer uma soma, e quando Q 0 =1, uma subtração. 3) Na unidade de controle do multiplicador binário sem sinal, era realizada a soma somente se o sinal Q 0 fosse igual a 1. Caso contrário, havia somente o deslocamento dos registradores. Na unidade de controle do multiplicador binário com sinal, se Q 0 F (ou seja, Q 0 F=1) ocorre a soma ou subtração, dependendo do valor de Q 0, e depois o deslocamento dos registradores. Caso Q 0 =F (ou seja, Q 0 F=0), deve ocorrer somente o deslocamento. Deste modo, acredito que a unidade de controle não deve ser mudada quanto a este aspecto. 4) Para mais informações sobre a metodologia de projeto a ser considerada consulte referência (Ranzini et al, 2002). Multiplicador Binário com Sinal (2010) 4

1.3. Exemplos do Algoritmo de Booth Ilustramos aqui vários exemplos de multiplicação binária para números em complemento de dois com representação binária de 4 bits. Sejam os números: 6 = 0110 e -6 = 1010. Nos exemplos abaixo, a legenda das tabelas indicam: acum. = acumulador A mult. = multiplicador Q F = flip-flop a direita do multiplicador (Q -1 ) a) 6 x 6 PASSO ACUM. MULT. F. Condição (Q 0,F) -> Ação 0 1 2 3 0000 0110 0 00 -> não faz nada 0000 0011 0 shift aritmético 0000 0011 0-1010 0110 0011 0 10 -> subtrai 0011 0001 1 shift aritmético 0011 0001 1 11-> não faz nada 0001 1000 1 shift aritmético 0001 1000 1 +1010 1011 1000 1 01 -> soma 1101 1100 0 shift aritmético fim 1101 1100 resultado = -36 b) 6 x -6 PASSO ACUM. MULT. F. Condição (Q 0,F) -> Ação 0 1 2 3 0000 1010 0 00 -> não faz nada 0000 0101 0 shift aritmético 0000 0101 0-0110 1010 0101 0 10 -> subtrai 1101 0010 1 shift aritmético 1101 0010 1 +0110 0011 0010 1 01 -> soma 0001 1001 0 shift aritmético 0001 1001 0-0110 1011 1001 0 10-> subtrai 1011 1100 1 shift aritmético fim 1011 1100 resultado = -36 Multiplicador Binário com Sinal (2010) 5

c) 6 x 6 PASSO ACUM. MULT. F. Condição (Q 0,F) -> Ação 0 1 2 3 0000 0110 0 00 -> não faz nada 0000 0011 0 shift aritmético 0000 0011 0-0110 1010 0011 0 10 -> subtrai 1101 0001 1 shift aritmético 1101 0001 1 11-> não faz nada 1110 1000 1 shift aritmético 1110 1000 1 +0110 0100 1000 1 01 -> soma 0010 0100 0 shift aritmético fim 0010 0100 resultado = 36 d) -6 x -6 PASSO ACUM. MULT. F. Condição (Q 0,F) -> Ação 0 1 2 3 0000 1010 0 00 -> não faz nada 0000 0101 0 shift aritmético 0000 0101 0-1010 0110 0101 0 10 -> subtrai 0011 0010 1 shift aritmético 0011 0010 1 +1010 1101 0010 1 01 -> soma 1110 1001 0 shift aritmético 1110 1001 0-1010 0100 1001 1 10-> subtrai 0010 0100 1 shift aritmético fim 0010 0100 resultado = 36 Multiplicador Binário com Sinal (2010) 6

2. PARTE EXPERIMENTAL Nesta experiência será desenvolvido um circuito baseado no multiplicador binário desenvolvido na experiência anterior. O projeto pode ser feito usando os componentes discretos básicos MSI e SSI ou com a linguagem VHDL. 2.1. Especificação do Multiplicador Binário com Sinal O circuito Multiplicador Binário com Sinal (MBcS) é responsável pela realização de uma multiplicação de dois números binários com sinal de 4 bits, introduzidos separadamente no circuito através de uma única via de dados (CH0 a CH3). A operação é iniciada com o acionamento do sinal INICIAR (botão B1), e o resultado da operação com 8 bits (OUT) deve ser conectado a dois displays de saída. Os operandos da multiplicação são especificados para o MBcS pelos sinais ENTRA_MULTIPLICANDO (CH6) e ENTRA_MULTIPLICADOR (CH7). O sinal PRONTO indica o final da multiplicação. Os sinais de entrada e saída do Multiplicador Binário são os seguintes: IN - via de dados de entrada, com quatro bits; INICIAR - sinal de controle utilizado iniciar a multiplicação; ENTRA_MULTIPLICANDO - especifica o multiplicando da operação; ENTRA_MULTIPLICADOR - especifica o multiplicador da operação; OUT - via de dados de saída, com oito bits; PRONTO indica final da operação. A figura 2.1 abaixo mostra o MBcS com os sinais descritos anteriormente: INICIAR ENTRA_MULTIPLICANDO ENTRA_MULTIPLICADOR IN[3:0] MBcS OUT[7:0] PRONTO Figura 2.1 Sinais de entrada e de saída do Multiplicador Binário com Sinal a ser desenvolvido. A operação do circuito deve seguir os seguintes passos: 1. Acertar um valor binário na vida de dados de entrada (IN); 2. Ativar o sinal ENTRA_MULTIPLICANDO; 3. Colocar outro valor na via de dados de entrada; 4. Ativar o sinal ENTRA_MULTIPLICADOR; 5. Acionar o botão INICIAR para a execução da multiplicação binária; 6. Verificar resultado na via de dados de saída (OUT, PRONTO). Caso se deseje repetir um valor anteriormente ajustado no circuito MBcS, os passos 1 e 2 ou os passos 3 e 4 podem ser ignorados, visto que um registrador interno deve manter os valores do multiplicador e do multiplicando da operação anterior. Multiplicador Binário com Sinal (2010) 7

DICAS: 1. Para auxiliar a depuração do circuito do MBcS, determine alguns sinais internos do circuito projetado para serem monitorados durante os testes e depuração do circuito. Estes sinais devem ser ligados nos leds disponíveis no painel de montagens. 2. Apresentar o diagrama ASM do circuito do MBcS, explicando os sinais de estado e de controle usados. 3. A depuração da máquina de estados da unidade de controle pode ser feita com uma indicação (sinal externo) do estado atual do circuito. 4. O fluxo de dados do projeto deve armazenar tanto o multiplicando como o multiplicador para poderem ser reaproveitados entre multiplicações consecutivas. Que alterações devem ser feitas no fluxo de dados apresentado na figura 1.5? 5. Trazer o arquivo do projeto para o Laboratório Digital (bdf ou vhd). 2.2. Montagem e Depuração a) O projeto do MBcS deve ser programado na pastilha da placa MAX7-PCS e os sinais de entrada e saída devem ser conectados no painel de montagens experimentais (botões, chaves, leds e displays). b) Execute testes iniciais do circuito usando os casos de teste dos exemplos da seção 1.3. 2.3. Avaliação a) Elabore uma tabela contendo todos os códigos binários de 4 bits em complemento de dois e o seu respectivo valor equivalente. Por exemplo, o código 0001 é a representação do valor +1 e 1111 é a representação do valor -1. b) Escolha mais casos de teste para avaliar o correto funcionamento do MBcS. c) Execute os casos de teste escolhidos e avalie os resultados. Perguntas 1. Explique a diferença entre deslocamento e deslocamento aritmético. Exemplifique. 2. Como é implementado o deslocamento aritmético no fluxo de dados? 3. Decreva detalhadamente o funcionamento e a implementação da unidade de controle do MBcS. 4. Que fatores influenciaram na escolha do grupo no projeto do MBcS (componentes discretos ou VHDL)? Que vantagens e desvantagens vocês poderiam ressaltar para cada alternativa? Multiplicador Binário com Sinal (2010) 8

3. BIBLIOGRAFIA 1. MANO, M. M.; KIME, C. R. Logic and computer design fundamentals. 3 rd edition, New Jersey: Prentice-Hall, 2004. 2. MIDORIKAWA, E.T. Lógica programável II. Apostila de Laboratório Digital. Escola Politécnica da USP, 2004. 3. PARHAMI, B. Computer arithmetic: algorithms and hardware designs. Oxford: Oxford University Press, 2000. 4. PATTERSON, D. A. & HENNESSY, J. L. Computer organization and design: the hardware/ software interface. 2nd edition, San Francisco: Morgan Kaufmann, 1998. 5. RANZINI, E.; HORTA, E. L. Lógica programável. Apostila de Laboratório Digital. Escola Politécnica da USP, 2000. 6. RANZINI, E.; HORTA, E. L.; MIDORIKAWA, E. T. Projeto de circuitos com MAX+PLUS II. Apostila de Laboratório Digital. Escola Politécnica da USP, 2002. 7. RANZINI, E. Exemplo 1 de projeto de circuito síncrono: multiplicador binário. Resumo da disciplina PCS2304 - Projeto Lógico Digital. Escola Politécnica da USP, 2004. 8. STALLINGS, W. Arquitetura e organização de computadores. 5ª edição, Prentice-Hall, 2002. 4. EQUIPAMENTOS NECESSÁRIOS 1 fonte de alimentação fixa, 5V 5%, 4A. 1 osciloscópio digital. 1 multímetro digital. 1 gerador de pulsos. 1 painel de montagens experimentais. 1 placa MAX7-PCS, com cabo para interface paralela. 1 computador PC com programa Altera Quartus II. Histórico de Revisões E.T.M./2004 primeira versão da experiência. E.T.M./2010 revisão geral e atualização do texto. Multiplicador Binário com Sinal (2010) 9