projeto ula
Post on 18-Jun-2015
1.947 Views
Preview:
TRANSCRIPT
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.
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.
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)
top related