Projeto de Circuito Combinacional

Documentos relacionados
Projeto de Somador com e sem Sinal. Qualificadores

Exercícios Referentes à Prova P1

Exercícios Referentes à Prova P1

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

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

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

Módulo 4 Introdução ao VHDL

CIRCUITOS COMBINACIONAIS

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

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

Aula 2 Semântica de VHDL

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I. Qualificadores. prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno

Funções de Lógica Combinacional

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

Técnicas Digitais para Computação

VHDL Circuitos Combinacionais

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

Exercícios de Fixação

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

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

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

CIRCUITOS COMBINACIONAIS

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

Projeto com Dispositivos Programáveis

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

Tipos enumerados definem uma lista de valores, e são especialmente úteis na

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

PCS Sistemas Digitais I. Circuitos Combinatórios Blocos Básicos: (De)Multiplexadores e Dispositivos tri-state. Prof. Dr. Marcos A. Simplicio Jr.

Exercícios Referentes à Prova P2

Revisão: Projeto de Processadores em VHDL

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

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

Circuitos Seqüenciais

Introdução à Linguagem VHDL

Prof. Leonardo Augusto Casillo

arquitetura de computadores

Profa. Luiza Maria Romeiro Codá 2

TIPO INTEGER. Profa. Luiza Maria Romeiro Codá 2

DISPOSITIVOS LÓGICOS PROGRAMÁVEIS - DLP. 18/04/2016 Prof. Alexandre - ELP1DLP1 / DEE

Introdução à Linguagem VHDL

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

LABORG. VHDL Máquina de estados finitos

CMP238 Projeto e Teste de Sistemas VLSI

Lógica Reconfigurável

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

Microprocessadores. Introdução ao Prof. Henrique

Circuitos Combinacionais Básicos

Processador. Processador

Disciplina de SSC Elementos de Lógica Digital II (Prática)

Descrição e Projeto de Circuitos Utilizando VHDL

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

Suporte de funcionamento e interacção com o teclado

Sistemas Digitais (SD) Unidade Lógica e Aritmética

Disciplina de SSC Elementos de Lógica Digital II (Prática)

Laboratório sobre Implementação de Sistemas Digitais com HDLs Ferramentas de Captura e Validação

LABORG. Parte 5 Projeto de um circuito digital de média complexidade. Fernando Gehm Moraes Matheus Trevisan

2006, António Esteves, Sistemas Digitais 1, UM-DI. Módulo 6. Sistemas sequenciais

SISTEMAS DIGITAIS (SD)

Introdução a Sistemas Digitais

Lógica Reconfigurável

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

SISTEMAS DIGITAIS (SD)

Plano de Aula 26/8/13. VHDL - Visão Geral. Obje%vos: VHDL - Visão Geral. Descrição de circuito digital em VHDL

LABORG. Parte 5 Projeto de um circuito digital de média complexidade Parte 2. Fernando Gehm Moraes Matheus Trevisan

Arquitetura de Computadores

Processadores

Sistemas Digitais (SD) Unidade Lógica e Aritmética

12/11/13. Obje%vos do laboratório. SST20707 Síntese de Sistemas de Telecomunicações. Síntese de máquinas de estado (FSM) Finite State Machine (FSM)

ISE com VHDL estrutural

SISTEMAS DIGITAIS (SD)

FSM em VHDL e Verificação Funcional. CMP de junho de 2006

Arquitetura de Computadores I

PCS3225. Sistemas Digitais II. Biestáveis em VHDL. Biestáveis em VHDL. Marcos A. Simplicio Jr.

DIGITAR AQUI OS COMANDOS

Organização e Arquitetura de Computadores II

Eletrônica Digital para Instrumentação. Prof: Herman Lima Jr

Lógica Reconfigurável

Algumas questões de prova recentes com seus gabaritos

Organização e Arquitetura de Computadores I

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Circuitos Digitais. Conteúdo. Soma de Números Binários. Soma de Números Binários. Exemplos. Exemplos. Aritmética Binária

Fundamentos de Sistemas Digitais. Lógica Sequencial. Prof. Dr. Alexandre M. Amory Prof. Dr Edson I. Moreno

Laboratório sobre Implementação de Sistemas Digitais com VHDL Acesso à Memória Externa na Plataforma de Prototipação XS40/XST-1

IMPLEMENTAÇÕES POR EQUAÇÃO DE ESTADOS E DE SAÍDA DOS MODELOS DE MEALY E DE MOORE 1 BIT POR ESTADO.

Gustavo G. Parma. Objetivos: O aluno deverá ser capaz de compreender os conceitos básicos de VHDL.

Arquitetura de Computadores Aula 9 Portas Lógicas

VHDL. Prof. Maurício A Dias Laboratório de Lógica Digital

Lógica Reconfigurável

Exercícios de Laboratório 3

CIRCUITOS SEQUENCIAIS parte 2 Máquina de Estados Finita (FSM)

Eletrônica Digital para Instrumentação

TRABALHO FINAL FSD 2018/2: Cronômetro de Xadrez

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

PCS3515 Sistemas Digitais. Blocos Básicos

CIRCUITOS SEQUENCIAIS parte 1

Lógica Reconfigurável

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

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

Transcrição:

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Projeto de Circuito Combinacional Unidade Lógica e Aritmética (ULA) prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno

2 / 12 ULA Unidade Lógica e Aritmética (ULA) é um circuito que realiza funções lógicas e aritméticas É um dos componentes de transformação de dados principais de um processador Normalmente implementado de forma combinacional Representação: Vetor de entrada A Seleção (comando) Vetor de saída Vetor de entrada B Qualificadores (flags)

3 / 12 ULA - Funcionalidades Lógicas Diversas são as funcionalidades lógicas. Dentre as mais comuns estão: E lógico das entradas Ou lógico das entradas Ou exclusivo lógico das entradas Complemento de uma das entradas A seleção de qual operação será realizada é obtida pela porta de comando Normalmente controlada pela unidade de controle do processador onde se encontra a ULA Operações lógicas usam normalmente apenas os qualificadores Z (zero) e N (negativo) Qualificadores de V (overflow) e C (carry) não são considerados, pois operações lógicas não alteram o valor dos mesmos

4 / 12 ULA - Funcionalidades Aritméticas Dentre as funcionalidades aritméticas mais comuns estão: Soma das entradas Subtração das entradas Deslocamento de uma das entrada Rotação de uma das entradas E variações das funcionalidades acima utilizando a flag C A seleção de qual operação será realizada é obtida pela porta de comando Operações aritméticas fazem uso dos quatro qualificadores vistos até então (Z, N, V, C)

5 / 12 Especificação de uma ULA de 4 Bits Projetar uma ULA em VHDL com as seguintes funcionalidades: Soma Subtração Incremento Decremento E lógico Ou lógico Ou exclusivo lógico Complemento Para dar suporte a funcionalidade completa do processador, esta ULA deve ter os seguintes qualificadores: Carry Negativo Zero Overflow A ULA deve ter as portas de entrada e saída com 4 bits

6 / 12 Especificação de uma ULA de 4 Bits Definição da relação entre a codificação e a seleção de comandos: Operação Codificação Soma 000 Subtração 001 Incremento 010 Decremento 011 E lógico 100 Ou lógico 101 Ou exclusivo lógico 110 Complemento 111 A implementação da ULA deve ser feita utilizando uma descrição comportamental

7 / 12 Implementação de uma ULA de 4 Bits (Entidade) library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity Ula4bits is port ( A, B: in STD_LOGIC_VECTOR(3 downto 0); oper: in STD_LOGIC_VECTOR(2 downto 0); N, Z, C, V: out STD_LOGIC; S: out STD_LOGIC_VECTOR(3 downto 0) ); end Ula4bits;

8 / 12 Implementação de uma ULA de 4 Bits (Arquitetura) architecture ula4bits of ula4bits is signal ia, ib, i_s: STD_LOGIC_VECTOR(4 downto 0); signal SS: STD_LOGIC_VECTOR(3 downto 0); begin ia <= A(3) & A; -- Extensão de sinal ib <= B(3) & B; SS <= i_s(3 downto 0); S <= SS; with op select i_s <= ia + ib when 000, ia - ib when 001, ia + 1 when 010, ia - 1 when 011, ia and ib when 100, ia or ib when 101, ia xor ib when 110, not ia when others; N <= '1' when SS < 0 else '0'; Z <= '1' when SS = 0 else '0'; C <= i_s(4); V <= '1' when ((op= 000 ) and ((ia>0 and ib>0 and SS<0) or (ia < 0 and ib < 0 and SS > 0))) or ((op= 010 or op= 011 ) and ((ia > 0 and SS < 0) or (ia < 0 and SS > 0))) or ((op= 001 ) and ((ia>0 and ib<0 and SS<0) or (ia < 0 and ib > 0 and SS > 0))) else '0'; end ula4bits;

9 / 12 Implementação de uma ULA de 4 Bits Exercício: Faça alguns exemplos de vetores e teste se os quatro qualificadores estão implementados corretamente Pergunta: A descrição comportamental apresentada poderia ser mais clara? Sim. Bastaria usar uma definição do que é cada operação. Isto pode ser obtido com uma definição de um tipo em um pacote Exemplo: Definição do tipo OP_ULA no pacote ULA, conforme a especificação package ULA is type OP_ULA is ( soma, subtracao, incr, decr, op_and, op_or, op_xor, op_not ); end ULA;

10 / 12 Implementação de uma ULA de 4 Bits library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; use work.ula.all; -- Inclusão do pacote ULA entity Ula4bits is port( A, B: in STD_LOGIC_VECTOR(3 downto 0); oper: in OP_ULA; N, Z, C, V: out STD_LOGIC; S: out STD_LOGIC_VECTOR(3 downto 0) ); end Ula4bits;

11 / 12 Implementação de uma ULA de 4 Bits (Arquitetura) architecture ula4bits of ula4bits is signal ia, ib, i_s: STD_LOGIC_VECTOR(4 downto 0); signal SS: STD_LOGIC_VECTOR(3 downto 0); begin ia <= A(3) & A; ib <= B(3) & B; SS <= i_s(3 downto 0); S <= SS; with op select i_s <= ia + ib when soma, ia - ib when subtracao, ia + 1 when inc, ia - 1 when dec, ia and ib when op_and, ia or ib when op_or, ia xor ib when op_xor, not ia when others; N <= '1' when SS < 0 else '0'; Z <= '1' when SS = 0 else '0'; C <= i_s(4); V <= '1' when ((op=soma) and ((ia>0 and ib>0 and SS<0) or (ia < 0 and ib < 0 and SS > 0))) or ((op=inc or op=dec) and ((ia > 0 and SS < 0) or (ia < 0 and SS > 0))) or ((op=subtracao) and ((ia>0 and ib<0 and SS<0) or (ia < 0 and ib > 0 and SS > 0))) else '0'; end ula4bits;

12 / 12 Exercício Projete a mesma especificação de ULA, mas agora de forma estrutural. Para tanto, utilize as descrições de circuitos aritméticos descritos nas aulas anteriores e complemente os mesmos com as novas funcionalidades Complemente o projeto da ULA inserindo instruções de multiplicação e divisão. Para tanto, refaça a ULA de forma a esta ter uma saída com o dobro de bits. Organize estes bits para ter funcionalidade adequada para ponto flutuante na divisão e ter um número inteiro maior na multiplicação. Faça, também, uma codificação adequada para as novas instruções