projeto ula

3
Projeto Digital de uma Unidade Lógica e Aritmética (ULA) de um Processador Tema Noções básicas de projeto de circuitos combinacionais e de circuitos aritméticos. Desenvolvimento de projetos lógicos desde a etapa inicial referente à especificação até a etapa de implementação e de simulação. Objetivos Compreender o funcionamento de uma ULA ; Desenvolver o projeto lógico (esquemático) de uma ULA de 6 bits; Analisar diferentes tipos de arquiteturas e alternativas para a construção da ULA; Utilizar a ferramenta de síntese de circuitos digitais Quartus II; Definir os vetores de simulação mais adequados para realizar a simulação da ULA projetada; Realizar testes de funcionalidades de forma adequada e utilizar o software Quartus II na geração dos arquivos de simulação; Escrever um relatório técnico, contendo a apresentação do problema, o projeto da arquitetura, as simulações realizadas, as decisões tomadas e as conclusões. Cronograma Data Atividade 28/10 Apresentação do trabalho 06/11 Desenvolvimento da ULA 20/11 Desenvolvimento da ULA 27/11 Avaliação final do trabalho Entrega do relatório Especificação da ULA Basicamente, um processador pode ser subdividido em duas grandes unidades, quais sejam: a unidade de controle e a unidade de processamento. A unidade de controle é responsável pelo gerenciamento do fluxo interno de dados através do envio de sinais de controle para a unidade de processamento. Por sua vez, a unidade de processamento é capaz de realizar, sobre os operandos de entrada, as operações requisitadas pela unidade de controle. Na unidade de processamento, encontra-se a ULA, a qual realiza operações lógicas e aritméticas sobre um ou mais operandos de entrada. Dentro desse contexto, este projeto refere-se à implementação no nível de portas lógicas de uma unidade lógica e aritmética específica. A seguir, apresenta-se, na figura 1, um diagrama de blocos de uma ULA de 6 bits de dados, a qual deverá ser implementada e devidamente simulada.

Upload: unifesptk

Post on 18-Jun-2015

1.947 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Projeto ula

Projeto Digital de uma Unidade Lógica e Aritmética (ULA) de um

Processador

Tema

Noções básicas de projeto de circuitos combinacionais e de circuitos aritméticos.

Desenvolvimento de projetos lógicos desde a etapa inicial referente à especificação até a etapa de

implementação e de simulação.

Objetivos

• Compreender o funcionamento de uma ULA ;

• Desenvolver o projeto lógico (esquemático) de uma ULA de 6 bits;

• Analisar diferentes tipos de arquiteturas e alternativas para a construção da ULA;

• Utilizar a ferramenta de síntese de circuitos digitais Quartus II;

• Definir os vetores de simulação mais adequados para realizar a simulação da ULA projetada;

• Realizar testes de funcionalidades de forma adequada e utilizar o software Quartus II na

geração dos arquivos de simulação;

• Escrever um relatório técnico, contendo a apresentação do problema, o projeto da arquitetura,

as simulações realizadas, as decisões tomadas e as conclusões.

Cronograma

Data Atividade

28/10 Apresentação do trabalho

06/11 Desenvolvimento da ULA

20/11 Desenvolvimento da ULA

27/11 Avaliação final do trabalho

Entrega do relatório

Especificação da ULA

Basicamente, um processador pode ser subdividido em duas grandes unidades, quais sejam:

a unidade de controle e a unidade de processamento. A unidade de controle é responsável pelo

gerenciamento do fluxo interno de dados através do envio de sinais de controle para a unidade de

processamento. Por sua vez, a unidade de processamento é capaz de realizar, sobre os operandos

de entrada, as operações requisitadas pela unidade de controle. Na unidade de processamento,

encontra-se a ULA, a qual realiza operações lógicas e aritméticas sobre um ou mais operandos de

entrada.

Dentro desse contexto, este projeto refere-se à implementação no nível de portas lógicas de

uma unidade lógica e aritmética específica. A seguir, apresenta-se, na figura 1, um diagrama de

blocos de uma ULA de 6 bits de dados, a qual deverá ser implementada e devidamente simulada.

Page 2: Projeto ula

Figura 1 – Diagrama de Blocos de uma ULA de 6 bits

A ULA esquematizada na figura 1 possui dois operandos de entrada (operandos A e B) de 6

bits cada um. Além disso, a ULA também possui os sinais de entrada Carry_in, Seleção da operação

e Seleção de Modo. O sinal Carry_in indica o bit inicial do carry (vai-um inicial). O sinal Seleção de

Modo indica se a ULA irá realizar uma operação lógica (AND, OR, OU-EXCLUSIVO e NOT) ou se irá

realizar uma operação aritmética (soma, subtração, incremento e decremento).

Como saída a ULA possui o sinal G de 6 bits, o qual é responsável por disponibilizar o

resultado da operação da ULA. Além disso, a ULA possui os sinais de saída Carry output, Negativo,

Zero e Overflow. O sinal de saída Carry output refere-se ao bit de vai-um final da operação. O sinal

Negativo indica se o resultado produzido em G é positivo ou negativo. Se G ≥ 0, então Negativo = “0”.

Se G < 0 então Negativo = “1”. O sinal de saída Zero deverá indicar se o resultado produzido na

saída G é zero ou não. Se G = 0, então Zero = “1”, caso contrário, Zero = “0”. O sinal Overflow deve

indicar se houve um estouro de representação na saída G quando os operandos A e B representarem

números com sinal em complemento de dois. Lembre-se, no entanto, que o sinal Carry output

também indica se houve overflow. No entanto, o sinal Carry output indicará overflow quando os

operandos A e B forem números sem sinal, enquanto o sinal de saída Overflow deverá indicar se

houve overflow quando os operandos A e B forem números com sinal representados em

complemento de dois.

Na tabela 1, encontram-se as respectivas operações que a ULA deverá realizar para cada

uma das entradas de controle relacionadas aos sinais S2, S1, S0 e Cin.

Page 3: Projeto ula

Tabela 1 – Códigos de operação da ULA

S2 S1 S0 Cin Operação Função

0 0 0 0 G = A + B soma

0 0 0 1 G = A + B + 1 soma com carry de entrada sendo igual a “1”

0 0 1 0 G = A + not(B) soma A com o inverso de B

0 0 1 1 G = A + not(B) + 1 subtração em complemento de dois

0 1 0 0 G = A - 1 decrementa A

0 1 0 1 G = A transfere A para a saída

0 1 1 0 G = A transfere A para a saída

0 1 1 1 G = A + 1 incrementa A

1 0 0 x G =ou-exclusivo(A, B) XOR entre A e B

1 0 1 x G = not(A) complementa A

1 1 0 x G = ou(A, B) OR entre A e B

1 1 1 x G = e(A, B) AND entre A e B

Neste trabalho, deve-se utilizar a técnica de vai-um antecipado (carry look-ahead) para todos

os circuitos somadores/subtratores especificados. Além disso, a ULA poderá trabalhar com números

sem e com sinal. A representação de números com sinal deverá ser, neste projeto, em complemento

de dois.

No relatório, os autores e desenvolvedores deste projeto deverão procurar responder a

seguinte pergunta: “Como é possível utilizar os sinais de saída da ULA especificada para realizarmos

comparações entre números sem sinal utilizando o complemento de dois?”.

Observações

Este projeto deverá ser realizado em grupo de, no máximo, três alunos. Não serão permitidas

cópias de relatórios e muito menos cópias, parcial ou integral, de projetos lógicos da ULA. Cada

grupo deverá desenvolver uma arquitetura própria para a ULA aqui especificada.

Recursos para Aprendizagem

• TOCCI, R. J., WIDMER, N. S., MOSS, G. L. Sistemas Digitais – Princípios e Aplicações, 10ª.

Edição, Editora Pearson Prentice Hall, 2007.

• FLOYD, T. L. Sistemas Digitais – Fundamentos e Aplicações, 9ª. Edição, Editora Bookman,

2007.

• PATTERSON, D. A., HENNESSY, J. L. Organização e Projeto de Computadores: A Interface

Hardware/Software. 2. Ed., Rio de Janeiro: LTC, 2000.

• STALLINGS, W. Arquitetura e Organização de Computadores. São Paulo: Makron Books,

2002.

• Software de síntese de sistemas digitais ALTERA (www.altera.com)