Você está na página 1de 4

EA773 -Projeto Final

2 Sem./2015 Turmas S e T

Motivao
O objetivo deste projeto desenvolver a arquitetura de um micro-processador com ULA de
4bits, com a mesma organizao implementada no experimento 4, figura 1, instrues de 8 bits,
com 21 tipos de instrues, executando sobre uma memria ROM com capacidade para 16
posies de 8 bits (16x8) e podendo acessar uma memria RAM de 16 posies de 4 bits
(16x4).
Utilizando esse micro-processador, deve-se desenvolver 2 programas (1 para cada elemento do
grupo) que devem testar todas as 21 instrues implementadas. Cada programa deve ter pelo
menos 12 instrues diferentes.

Preparao
1. Leia e analise as especificaes do projeto.
2. Apresente e detalhe as diferenas entre este projeto e os desenvolvidos nos experimentos 4 e 5.
3. Prepare um diagrama de blocos, nos moldes dos apresentados na figura 1 e 2 do Roteiro 4,
mostrando os principais blocos do projeto, a interligao entre os mesmos e os sinais de
controle.

Especificao do Projeto
1. Utilize como base para o projeto, as arquiteturas desenvolvidas nos Experimento 4 e 5 deste
laboratrio.
2. Desenvolva um mdulo de memria de programa ROM com 16 instrues de 8 bits. Adeque
para esta especificao o mdulo de memria utilizado no experimento 5.
3. Considere que as instrues so codificadas do seguinte modo:
bit

7
0
1

5
INSTR.

3
2
1
0
INSTRUO
OPERANDO/ ENDEREO

e que o conjunto de instrues apresentado na tabela 1 deve ser implementado.


4. Desenvolva um mdulo de memria RAM com 16 posies de 4 bits (16x4). (Sugesto: veja o
componente SN74670).
5. Inclua no circuito um Contador de Programa (PC). Utilize um contador mdulo 16, configurado
como no experimento 5.
6. Utilize a ULA do Experimento 4 (SN74181).

Cdigo (8 bits)
0xxx (0 + grupo) %16
0xxx (1 + grupo) %16
0xxx (2 + grupo) %16
0xxx (3 + grupo) %16
0xxx (4 + grupo) %16
0xxx (5 + grupo) %16
0xxx (6 + grupo) %16
0xxx (7 + grupo) %16
0xxx (8 + grupo) %16
0xxx (9 + grupo) %16
0xxx (10 + grupo) %16
0xxx (11 + grupo) %16
0xxx (12 + grupo) %16
0xxx (13 + grupo) %16
1000
OPERANDO
1001
OPERANDO
1010
ENDEREO
1011
ENDEREO
1100
ENDEREO
1110
ENDEREO
1111
OPERANDO

Funo
ADD
SUB
INC
DEC
INPUT
MOVA
MOVB
MOVAc
CLR
NEG
AND
OR
XOR
STP
LDAI
LDBI
LDA
LDB
STAc
JMP
BNZ

Descrio
Ac A plus B
Ac A minus B
Ac A plus 1
Ac A minus 1
A input (sw9sw6 do protoboard)
A Ac
B Ac
Ac A
Ac 0
Ac ~A
Ac A . B
Ac A + B
Ac A ^ B
PC PC
A OPERANDO
B OPERANDO
A [ENDEREO]
B [ENDEREO]
[ENDEREO] Ac
PC ENDEREO
PC PC+OPERANDO se Z = 0

Tabela 1
7. Projete o circuito necessrio para a execuo do conjunto de instrues especificado. Este
circuito ter como entradas os oito bits da instruo lida da memria ROM e como sadas as
entradas necessrias para a seleo da funo na ULA, alm de R/W, GA e GB e demais sinais
necessrios para transferncia de dados entre o acumulador, o operando/endereo, os
registradores e a memria RAM. O projeto deste circuito at certo ponto similar aos projetos
dos circuitos desenvolvidos nos experimentos 4 e 5.
Observe que h 4 grandes grupos de instruo:
1. Instrues Lgico-Aritmticas: ADD, SUB, INC, DEC, CLR, NEG, AND, OR e XOR
2. Instrues de Carregamento:
a) Registradores: MOVA, MOVB, MOVAc, INPUT
b) Imediato: LDAI, LDBI
c) Memria RAM: LDA, LDB e STAc
3. Instruo de Parada: STP
4. Instrues de Desvio de Programa: JMP, BZ
Cada grupo/subgrupo de instrues demandar uma estratgia diferente para viabilizar a sua
implementao. Pense em cada grupo de maneira separada, buscando reunir os elementos
necessrios implementao de cada instruo.
Observe que ser necessrio utilizar as duas bordas do clock para o funcionamento do
sistema:
Na borda de descida, o contador de programa deve ser incrementado, disponibilizando a
nova instruo a ser executada, habilitando os enables dos registradores e os tri-states
necessrios.

Na borda de subida, a instruo deve ser executada, ativando os sinais de clock de dos
registradores.
Observe que as instrues com o bit 7 igual a 1 demandam que um operando ou endereo
seja extrado da prpria instruo. necessrio implementar um pequeno circuito para essa
finalidade.
Observe que o OPERANDO nas instruo de desvio condicional (BNZ) (branch on not
zero) so nmero inteiros com sinal em complemento de 2.
Faa a integrao dos mdulos desenvolvidos e verifique o funcionamento do circuito na placa
de desenvolvimento Cyclone II FPGA Starter Development Board.
o Utilize o seguinte mapeamento na Cyclone II FPGA Starter Development Board
Registrador A
Registrador B
Acumulador
Barramento
Sada da memria ROM
Contador de Programa (PC)
Input
Clock
Reset

HEX3
HEX2
HEX1
HEX0
LEDG7....LEDG0 (LEDG0 bit menos significativo)
LEDR3....LEDR0 (LEDR0 bit menos significativo)
SW9 .SW6 (SW6 bit menos significativo)
Pushbutton 3
Pushbutton 2

Implemente um roteiro de testes considerando cada uma das instrues. Planeje os testes
necessrios para que cada instruo possa ter seu comportamento devidamente validado.
Observe que algumas instrues (e.g. instrues condicionais) precisaro de mais de um
teste para ter seu comportamento validado.
8. Implemente dois programas demonstrativos do funcionamento do circuito, utilizando
(considerando os dois programas) todas as instrues, de forma que um deles tenha pelo menos
um loop, controlado pela instruo BNZ. Cada programa deve ter pelo menos 10 instrues
diferentes.
Cada membro do grupo ficar responsvel pela demonstrao de um dos programas. Mesmo
que haja diviso de trabalho, durante a apresentao do programa, sero feitas perguntas
genricas a respeito do circuito implementado, e ambos os membros do grupo ficaro
responsveis por compreender TODAS as partes do circuito (no sero aceitas respostas
como: essa parte no fui eu que implementei).
Para a apresentao dos programas, cada aluno deve preparar, em folha separada, um roteiro
de testes, contendo o programa passo a passo e os resultados esperados. Os alunos devem
realizar todos os testes ANTES de chamar o professor para a apresentao. O roteiro de
testes, com o nome e RA do aluno e as anotaes do professor ser recolhido pelo professor
aps a apresentao. Os alunos devem providenciar uma cpia dos roteiros de testes para
serem includos no relatrio do projeto.
A apresentao do projeto deve ser feita exclusivamente com o professor. Os monitores no
podero validar a apresentao do projeto. Junto com a apresentao do projeto, ser feita a
arguio final, individual para cada componente do grupo, onde sero avaliados os
conhecimentos necessrios para o desenvolvimento do projeto, de acordo com o critrio de
avaliao do curso. Maiores dvidas podem ser esclarecidas diretamente com o professor.

EA773 Laboratrio de Circuitos Lgicos


FEEC-UNICAMP - 2 Semestre de 2015 Turmas S e T
Turma:______________

Grupo:__________________ Data:______________

RA:_________________

Nome:______________________________________

RA:_________________

Nome:______________________________________

Experincia 6: Projeto de um Microprocessador


Preparao
Visto:

Data:

Apresentao de resultados parciais do desenvolvimento do projeto - final da aula 6


Visto:

Data:

Integrao dos mdulos


Visto:

Data:

Programao
Aluno 1:

Data:

Aluno 2:

Data:

Relatrio e programas depositados no portflio do grupo em: _____/_____/2015

Comentrios / avaliao

Você também pode gostar