Projeto de Somador com e sem Sinal. Qualificadores

Documentos relacionados
Projeto de Circuito Combinacional

Exercícios Referentes à Prova P1

Fundamentos de sistemas digitais. Test-bench. prof. Dr. Edson Ifarraguirre Moreno

Exercícios Referentes à Prova P1

Módulo 4 Introdução ao VHDL

Arquitetura de Computadores. Tiago Alves de Oliveira

VHDL Circuitos Combinacionais

Aula 2 Semântica de VHDL

PSI-3451 Projeto de CI Lógicos Integrados. Aula 4

CIRCUITOS COMBINACIONAIS

low): Descreve o que o sistema deve fazer utilizando expressões lógicas.

Revisão: Projeto de Processadores em VHDL

VHDL - VHSIC Hardware Description Language. Exemplo prático. Raiz Quadrada

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I. Introdução ao VHDL. César A. M. Marcon

Sistemas Digitais Unidade Lógica e Aritmética - ULA

Registradores. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva

Exercícios de Fixação

CIRCUITOS COMBINACIONAIS

Introdução à Simulação em VHDL. Ney Laert Vilar Calazans

Exercícios Referentes à Prova P2

Descrição por fluxo de dados (Data-Flow): Descreve o que o sistema deve fazer utilizando expressões lógicas.

Arquitetura e Organização de Computadores. Sistemas Numéricos

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Ciências da Computação & Engenharia Eletrônica

Universidade Federal de Santa Catarina Centro Tecnológico Departamento de Informática e Estatística Curso de Graduação em Ciências da Computação

VHDL. Descrição e Projeto de Circuitos Utilizando VHDL

Arquitetura de Computadores. Conjunto de Instruções

Introdução ao VHDL. Circuitos Lógicos. DCC-IM/UFRJ Prof. Gabriel P. Silva. Original por Ayman Wahba

Introdução à Linguagem VHDL

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

VHDL é uma linguagem bastante complexa!

Profa. Luiza Maria Romeiro Codá 2

Organização e Arquitetura de Computadores I

Operações Aritméticas Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 2h/60h

Descreva em VHDL, simule no simulador logico e sintetize usando uma ferramenta de CAD para FPGA :

NEANDERWIN. Algumas características do processador Neander são:

Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR

Introdução à Linguagem VHDL

Capítulo 6 Aritmética Digital: Operações e Circuitos

Aritmética Binária e Caminho de Dados. Aritmética Binária Caminho de Dados

SIMULAÇÃO DE CIRCUITOS

Introdução à Linguagem VHDL

Arquitetura de Computadores Aula 10 - Processadores

Tópicos Especiais 2 Capítulo 3 Introdução ao VHDL, sintaxe básica, tipo de dados e atribuições

Técnicas Digitais para Computação

Organização de Computadores

Aula 4 Conjunto de Instruções do Microprocessador 8085 Grupo Aritmético

Operações com números binários

Introdução. VHDL: VHSIC Hardware Description Language. Origem: VHSIC: Very High Speed Integrated Circuits. Departamento de Defesa EUA

Prof. Leonardo Augusto Casillo

Livro texto: VHDL- Descrição e Síntese de Circuitos Digitais Roberto D Amore Editora LTC

Arquitetura de Computadores I

Aritmética Binária e Complemento a Base. Introdução ao Computador 2010/1 Renan Manola

Representação de Inteiros

*********************

4. Modelo de Programação do DLX Introdução

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária

Organização de Sistemas de Computadores

ARQUITECTURA DE COMPUTADORES

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

Funções de Lógica Combinacional

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 10/03/2017 Prof. Alexandre - ELP1DLP1 / DEE

Circuitos aritméticos

Sistemas de Computação

Para se criar um subtrator e somador, necessitaremos de três componentes, o Somador de 8 bits, o multiplexador e inversor.

MICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1

ARITMÉTICA BINÁRIA. Adão de Melo Neto

SISTEMA DE NUMERAÇÃO. Introdução a Informática. Vinícius Pádua

Processador: Conceitos Básicos e Componentes

Aula 16: UCP: Conceitos Básicos e Componentes

Circuitos Lógicos. Capítulo 9 Aritmérica Digital: Operações e Circuitos

Microprocessadores. Introdução ao Prof. Henrique

Exercícios de Laboratório 3

Técnicas Digitais para Computação

Descrição e Projeto de Circuitos Utilizando VHDL

Projeto com Linguagens de Descrição de Hardware

MÓDULO. Conjunto de Instruções do 8086/88 Aritméticas, lógicas, deslocamento e rotação M 02

Sistemas Digitais Circuitos Aritméticos e Representação de Números com Sinal

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Transcrição:

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Projeto de Somador com e sem Sinal Qualificadores César A. M. Marcon

Planejando a Descrição de um Somador 2 Como descrever uma soma? S <= A + B; Como esta soma pode ser realizada em hardware? Dividir as entradas e saídas em vetores de bits Exemplo: A e B são vetores de 4 bits A contém 5 e B contém 3 + 0 1 0 1 0 0 1 1 A B 1 0 0 0 S S igual a 8

Dividindo para Conquistar (Somador de 1 bit) 3 O que fazer com cada bit? Descrever em hardware uma função que implementa a operação de soma deste bit Qual é a função? Supondo a soma de dois bits, para cada par de bit somado existem duas saídas: o vai um (carry) e o resultado da soma Como implementar a função? Por exemplo uma tabela verdade a b s (soma) carry 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

Dividindo para Conquistar (Somador de 1 bit) 4 Qual é o próximo passo? Extrair as funções da tabela verdade E agora? s = a xor b carry = a and b Descrever as funções em Hardware Qual recurso utilizar? Linguagem VHDL

Dividindo para Conquistar (Somador de 1 bit) 5 INTERFACE EXTERNA: entity Especifica somente a interface Não contém definição do comportamento a b HalfAdd s carry entity HalfAdd is port ( a, b: in std_logic; s, carry: out std_logic ); end HalfAdd;

Dividindo para Conquistar (Somador de 1 bit) 6 COMPORTAMENTO : architecture Especifica o comportamento da entity Deve ser associada a uma entity específica Uma entity pode ter associada várias architectures (diferentes formas de implementar um mesmo módulo) architecture HA of HalfAdd is begin s <= a xor b; carry <= a and b; end HA;

Somador de 1 bit Completo 7 A arquitetura HD, apresentada é suficiente para descrever uma soma de um estágio? Não, falta considerar o vai um do estágio anterior Exercício: Fazer um novo par entidade-arquitetura que implementa uma soma completa. Fazer a tabela verdade e a entidade e a arquitetura. Chame esta entidade de Add (será usada mais adiante) a b cin Add s cout Como fazer agora para conseguir implementar todo o vetor? Uma possibilidade é implementar vários módulos de 1 bit em um par entidadearquitetura

Somador Completo de 4 Bits 8 B 3 A 3 B 2 A 2 B 1 A 1 B 0 A 0 Cout Cout 3 Add 3 Cout 2 Cin 3 Add 2 Cout 1 Cin 2 Add 1 Cout 0 Cin 1 Add 0 0 S 3 S 2 S 1 S 0 entity Adder4Bits is port ( A, B: in std_logic_vector(3 downto 0); cout: out std_logic; S : out std_logic_vector(3 downto 0) ); end Adder4Bits;

Somador Completo de 4 Bits 9 library IEEE; use IEEE.std_logic_1164.all; architecture Somador of Adder4Bits is signal c: std_logic_vector(3 downto 0); begin A0: entity Add port map(cin=>'0', A=>A(0),B=>B(0),cout=>c(0),s=>S(0)); A1: entity Add port map(cin=>c(0),a=>a(1),b=>b(1),cout=>c(1),s=>s(1)); A2: entity Add port map(cin=>c(1),a=>a(2),b=>b(2),cout=>c(2),s=>s(2)); A3: entity Add port map(cin=>c(2),a=>a(3),b=>b(3),cout=>c(3),s=>s(3)); cout <= c(3); end Somador; Perguntas e exercícios: A descrição acima é estrutural ou comportamental? Porque? Para que serve o cout do somador de 4 bits, já que não há mais estágios Faça um somador de 8 bits, tendo como base o somador de 4 Bits descrito acima

Qualificadores 10 Como operações aritméticas podem informar o fluxo de controle sobre o resultado de suas operações? Com qualificadores! Mas o que é isto? Note: Comandos de alto nível são compilados para operações suportadas pela arquitetura alvo. Estas operações são executadas por unidades tais como os somadores descritos aqui. Exemplo: if(x!= Y) X++; Y++; Em uma linguagem de montagem do processador MIPS poderia ser implementado como beq X, Y, Salta inc X Salta: inc Y

Qualificadores 11 Como a instrução de montagem é implementada em hardware? Uma comparação, tal como descrito abaixo, pode ser implementada com uma subtração! Caso subtração resulte em 0, então os valores subtraídos são iguais beq X, Y, Salta Como implementar uma subtração em hardware? Utilizando circuitos somadores e considerando operandos com sinal Voltando e reformulando a pergunta inicial. Como, neste caso, os somadores podem informar o fluxo de controle sobre o resultado de suas operações? Utilizando uma porta de um bit, que informe se a operação resultou, ou não, em 0 Este bit é um qualificador, também chamado de bit de status, ou flag. Neste caso, a flag de ZERO

Qualificadores 12 Com qualificadores poderíamos reler a descrição C/Java, descrita a seguir, com uma de linguagem de montagem equivalente no MIPS if(x!= Y) X++; Y++; beq X, Y, Salto inc X Salto: inc Y Da seguinte forma Atribui 1 para Z se X + ( Y) der zero, senão atribui 0 Se Z for igual a 1 vai para Salto, senão segue o código X recebe X mais 1 Salto: Y recebe Y mais 1 Neste caso Z é um qualificador que indica que a operação deu 0

Qualificadores 13 Existem mais qualificadores possíveis. Aqui analisaremos apenas 4, com suas abreviaturas Resultado da operação é zero (Z) Qualificador Z recebe 1 quando todos os bits do resultado de uma operação forem 0, senão recebe 0 Resultado da operação é um número negativo (N) Qualificador N recebe 1 quando o bit mais significativo do resultado de uma operação for 1, (representação de um número negativo em complemento de 2) senão recebe 0 Não foi possível representar o resultado da operação com números sem sinal (carry, ou apenas C) Qualificador C recebe 1 quando o último estágio do somador gerar um vai um Não foi possível representar o resultado da operação com números com sinal (overflow, ou apenas Ov, ou também V) Qualificador V recebe 1 quando a soma de dois positivos der negativa, a soma de dois negativos der positiva, um positivo subtraído de um negativo der negativo, um negativo subtraído de um positivo der positivo, senão recebe 0 Conforme os tipos de dados que estamos trabalhando em alto nível, a informação dos qualificadores pode ser utilizada pelos compiladores para gerar linguagem de montagem adequada Qualificadores Z e C são usados em operações aritméticas de números sem sinal Qualificadores Z e N são usados em operações lógicas Qualificadores Z, N e V são usados em operações aritméticas de números com sinal

Revendo Representações Numéricas 14 Representação de números sem sinal Notação posicional Cada bit tem exatamente o peso de sua posição O valor do bit (b = 0, 1) é multiplicado pela base (2) elevada na posição (p) b * 2 p O valor do número é obtido com a soma de todos os bits com seus pesos parciais Exercício: Calcule o intervalo de representação numérico de um inteiro de 16 bits Verifique se é possível armazenar o número 1034 em 10 bits Realize as seguintes somas em 8 bits (primeiro converta para número binário): a. 129 + 76 b. 150 + 200 Como saber se uma operação de número sem sinal teve um resultado correto? Analisando o qualificador carry

Revendo Representações Numéricas 15 Representação de números com sinal Em complemento de 2, temos a mesma notação posicional, porém o bit mais significativo vale menos, enquanto os demais valem mais Exercício: -b * 2 p, para o primeiro bit; b * 2 p, para demais bits Calcule o intervalo de representação numérico de um inteiro de 16 bits Verifique se é possível armazenar os seguintes números em 10 bits a. -512 b. 345 Realize as seguintes somas em 8 bits (primeiro converta para número binário): a. -129-76 b. 150-200 Como saber se uma operação de número com sinal teve um resultado correto? Analisando o qualificador overflow

Planejando Construir um Somador com Sinal 16 O que deve ser alterado no hardware de um somador, quando é considerado o sinal? Deve ser inserido o cálculo do qualificador de overflow (V) Entendendo melhor Overflow significa que uma operação aritmética com sinal não teve o resultado correto, pois não foi possível representar todo o número. Situações em que isto pode acontecer: Soma de dois inteiros positivos e resultado um inteiro negativo Soma de dois inteiros negativos e resultado um inteiro positivo Subtrair um inteiro positivo de um inteiro negativo e o resultado der negativo Subtrair um inteiro negativo de um inteiro positivo e o resultado der positivo Como obter o cálculo deste qualificador? Com ou exclusivo entre o carry do último estágio e do penúltimo estágio

Exercício 17 1. Implementar um somador de 4 bits com sinal, levando em consideração os qualificadores necessários 2. Implementar um somador de 4 bits com e sem sinal, levando em consideração os qualificadores necessários