Vous êtes sur la page 1sur 8

Departamento de Engenharia Electrotécnica e de Computadores

Instituto Superior Técnico - Universidade Técnica de Lisboa

Arquitectura de Computadores 2º sem 10/11

MEEC

ARQUITECTURA DE COMPUTADORES

3º Trabalho de Laboratório

Processador Ciclo Múltiplo

Objectivo: Pretende-se que os alunos compreendam a metodologia usada na síntese, implementação e programação de um processador de ciclo múltiplo com arquitectura CISC. O trabalho terá uma duração de 2 semanas, devendo o relatório ser entregue na aula de laboratório da segunda semana. O trabalho deverá ser preparado fora do horário de laboratório; as 3 horas de laboratório destinam-se à resolução de eventuais problemas e demonstração do trabalho.

1

INTRODUÇÃO

Pretende-se projectar um processador do tipo CISC, cuja execução de cada instrução é feita em múltiplos ciclos. O processador a implementar é baseado na arquitectura da figura 1.

0 1 Controlo de Reposição de interrupções contexto TA|AA TA|AA TB|BA Flags ENI DSI SL
0
1
Controlo de
Reposição de
interrupções
contexto
TA|AA
TA|AA
TB|BA
Flags
ENI
DSI
SL
DMEM
TA|AA
TB|BA
UUCC
UUPP
SET
RESET
Saved
F(Z,N,C,O)
LD
CLK
CLK
CLK
CLK
S(E)
S(E)
Context
UA:
FW
WE
StateRegister
TD|DA
S(Z,N,C,O)
S(E)
Unidade Unidade de de
TD|DA
Unidade Unidade de de
Unidade de
WE
WE
controlo controlo
Armazenamento
processamento processamento
INT
3
D
2
Flags
1
NextPC
A
B
CLK
CLK
0
1
Program Counter
PL
WE
PC
S
F
INT
0
PC
UCS: Unidade de
MS
MS
0
mem_data
Controlo de Salto
PC
1
ML
Instruction
CLK
CLK
IR: Instruction Register
WE
IL
MA
MB
MM
Operands
OpCode
NA
0,OPC(6:0)
Mem_address
DATA_B
MC
A
B
Data_in
Address
OpData
D
CLK
CLK
Select
SA,
CAR
Operand Select
SB,
LD/CNT
CLK
CLK
UF:
DATA_MEM:
SK
uCode
DA
AA
KNS
BA
Unidade
Memória
Funcional
Z
de dados
MW
WE
N
DA
AA
BA
KNS
C
FS
FS
Address
D
V
Data_out
Memória de descodificação
DUF
DMEM
Data
TA,TB,TD,WE,MA,MB,FS,MM,MD,MW,
MD
FW,ENI,DSI,SL,PL,IL,NA,MC,MS,SA,SB,SK,
0
IntClear
1
DATA_B=Mem_Din
Legenda:
Legenda:
Din
CLK
CLK
Periféricos
Mem_address
=FFFEh?
Load
Lógica
Armazenamento
Down Counter
(unidade sincrona e
(unidades assincronos)
(Unidades sincronas)
IntClear
Clear
externa ao processador)
END
Count
INT
Count
StateBits
PC
DATA_A
PC
KNS
StateBits
Flags(3:0)

Figura 1 Arquitectura do processador de ciclo multiplo.

Departamento de Engenharia Electrotécnica e de Computadores

Instituto Superior Técnico - Universidade Técnica de Lisboa

Arquitectura de Computadores 2º sem 10/11

MEEC

Para a realização do laboratório são fornecidos todos os blocos presentes na figura 1. Em relação ao laboratório 2, foram realizadas as seguintes alterações ao nível da arquitectura:

A unidade de armazenamento foi alterada de forma a que a selecção dos registos auxiliares seja feita directamente a partir dos sinais TA,TB e TD, de acordo com a tabela 1.

Tabela 1 Sinais de controlo para acesso aos novos registos da UA.

TD/TA/TB

DA/AA/BA

Registo acedido

00

n

Rn

01

X

SP

10

X

AR0

11

X

AR1

Todos os registos, a Unidade Funcional e a memória de dados manipulam agora palavras de 16 bits.

A unidade funcional mantém o funcionamento do trabalho de laboratório 2, tal como indicado na tabela 2.

Tabela 2 - Funcionamento da Unidade Funcional.

Tipo

Operação

Entradas

 

Saídas

(mnemónica)

 
   
 

Operandos

FS

Dados (D)

 

Flags validas

 

ADD

A , B

0000

A + B

Z

N

C

V

SUB

A , B

0001

A - B

Z

N

C

V

INC

A

0010

A + 1

Z

N

C

V

Aritmética

DEC

A

0011

A 1

Z

N

C

V

MOV

B

0100

B

Z

N

C

V

NEG

B

0101

-B

Z

N

C

V

 

SHLA

B

0110

B(14:0),0

Z

N

C

V

SHRA

B

0111

B(15),B(15:1)

Z

N

C

V

 

AND

A , B

1000

A & B

Z

N

OR

A , B

1001

A |

B

Z

N

NOT

B

1010

!B

Z

N

Lógica

XOR

A , B

1011

A B

Z

N

SHL

B

1100

B(14:0),0

Z

N

C

 

SHR

B

1101

0,B(15:1)

Z

N

C

ROL

B

1110

B(14:0),B(15)

Z

N

C

ROR

B

1111

B(0),B(15:1)

Z

N

C

Existe agora um registo de instrução (IR: Instruction Register) que guarda a operação que está a ser executada em qualquer instante. O comando deste registo é feito pelo sinal IL (Instruction Load).

Foi adicionada uma unidade de seleção de operandos, a qual traduz os operandos da instrução nos sinais AA, BA, DA, e KNS tal como indicado na tabela 3.

Tabela 3 - Funcionamento da Unidade de Selecção de Operandos.

SA AA SB BA DA 0 I(5:3) 0 I(2:0) D(8:6) 1 I(8:6) 1 I(8:6)
SA
AA
SB
BA
DA
0
I(5:3)
0 I(2:0)
D(8:6)
1
I(8:6)
1 I(8:6)

SK

KNS

0

D(5),

,D(5),D(5:0)

1

D(8),

,D(8),D(8:0)

Departamento de Engenharia Electrotécnica e de Computadores

Instituto Superior Técnico - Universidade Técnica de Lisboa

Arquitectura de Computadores 2º sem 10/11

MEEC

A unidade de descodificação de instruções, é agora substituída por uma Unidade de Descodificação de μ- código, a qual é responsável por gerar os sinais de controlo apropriados para cada uCode, i.e., valor do registo CAR. Esta unidade é realizada com recurso a uma memória com palavras de 44 bits.

O registo de estado possuí agora mais um bit S(E) o qual controla a activação de interrupções geradas por dispositivos externos. A activação ou desactivação do bit de estado é feita por software colocando um dos sinais ENI (Enable Interrupts) ou DSI (Disable Interrupts) a 1. Assim, quando ENI=1 o bit S(E) é activado com o valor 1; de forma semelhante, quando DSI=1 o bit S(E) é desactivado ficando com o valor lógico 0. O registo de estado possui ainda um modo auxiliar de reposição de contexto. Assim, quando o sinal LD=1, o registo de estado é carregado com o valor de “SavedContext” independentemente dos restantes sinais de controlo. A operação do registo de estado é descrito na tabela 4.

Tabela 4 - Funcionamento do registo de estado

 

LD

ENI

DSI

FW(3:0)

Operação

RESTORE STATE

1

X

X

XXXX

StateBits SavedContext

ENABLE INTERRUPTS

0

1

X

XXXX

S(4) 1

DISABLE INTERRUPTS

0

0

1

XXXX

S(4) 0

ZERO FLAG LOAD

0

X

X

1XXX

S(3) Flags(3)

NEGATIVE FLAG LOAD

0

X

X

X1XX

S(2) Flags(2)

CARRY FLAG LOAD

0

X

X

XX1X

S(1) Flags(1)

OVERFLOW FLAG LOAD

0

X

X

XXX1

S(0) Flags(0)

NO OPERATION

0

0

0

0000

-

A Unidade de Controlo de Salto foi alterada de forma a permitir saltos ao nível do μ-código. Assim, a nova unidade controla o sinal de LD/CNT do registo CAR. Quando a saída da unidade é 1, o registo CAR realiza um carregamento em paralelo; quando a saída da unidade é 0, o registo CAR incrementa de valor. O valor carregado no registo CAR (no caso de LD) depende da entrada de controlo MC; quando MC=0 o valor a carregar corresponde ao OpCode da intrução (guardada no registo IR); quando MC=1, valor a carregar corresponde ao sinal NA (Next Address).

Para controlar o sinal de LD/CNT do registo CAR é usado um multiplexer de acordo com a tabela 5, onde o sinal F(x) representa o bit x das Flags, e S(y) representa o bit y dos bits de estado. Por exemplo, F(P) corresponde à

flag de positive a qual é calculada a partir das flags de zero e negative, F(Z) e F(N), F(P)=

.

Tabela 5 - Funcionamento da Unidade de Controlo de Salto (UCS).

Entrada de

Sinal de saída

Entrada de

Sinal de saída

Entrada de

Sinal de saída

Selecção (MS)

(ML)

Selecção (MS)

(ML)

Selecção (MS)

(ML)

00000

0

01001

10010

S(C)

00001

1

01010

F(V)

10011

00010

F(Z)

01011

10100

S(V)

00011

01100

S(Z)

10101

00100

F(N)

01101

10110

00101

01110

S(N)

10111

00110

F(P)

01111

11000

00111

10000

S(P)

11001

01000

F(C)

10001

outros

Departamento de Engenharia Electrotécnica e de Computadores

Instituto Superior Técnico - Universidade Técnica de Lisboa

Arquitectura de Computadores 2º sem 10/11

MEEC

Externamente existe um contador decrescente com a seguinte funcionalidade. Quando a operação de LOAD é efectuada (Load=1), é carregado em Count o valor de Din (Count Din). Uma vez desactivada a operação de LOAD (Load=0), o contador começa a contar de forma decrescente. Quando o valor do contador chegar a zero (Count=0), a contagem termina e o sinal END é activado (END=1), permanecendo neste estado até que seja activada a operação de CLEAR (Clear=1).

2 CONJUNTO DE INSTRUÇÕES

O conjunto de instruções da arquitectura do processador de ciclo múltiplo é descrita na tabela 6. De notar as

seguintes diferenças em relação ao laboratório anterior:

A

grande maioria das instruções tem agora menos operandos, sendo o registo de destino usado quase sempre

também como destino de origem.

As instruções de MOV, MOVI, LOAD e STORE são agora representadas com a mnemónica MOV. No entanto cada uma destas instruções tem um OpCode específico.

Tabela 6 - Formato das instruções suportadas pelo processador de ciclo múltiplo.

 

Formato da instrução (bits)

   

Bits de estado a actualizar

Exemplo de

Mnemónica

15

-

9

8

-

6

5

-

3

2

-

0

Descrição

Utilização

+

NOP

1111111

 

-

No Operation

- NOP

 

Instruções de Processamento de Dados

 

+ MOV

0000000

DR

   

-

SB

 

R[DR] R[SB]

 

- MOV R1,R0

+ MOV

0000001

 

-

SA

 

SB

 

M[R[SA] R[SB]

 

- MOV M[R1],R0

+ MOV

0000010

DR

 

SA

   

R[DR] M[R[SA]]

 

- MOV R1,M[R0]

+ MOV

0000011

DR

   

OP

 

MOV R[DR] OP

 

- MOV R1,-8

+ MOV

0000100

 

-

 

-

SB

 

MOV SP R[SB]

 

- MOV SP,R4

+ MOV

0000101

DR

   

-

 

-

MOV R[DR] SP

 

- MOV R4,SP

+ NEG

0000110

DR

   

-

 

-

R[DR] - R[DR]

Z,N,C,V

NEG R3

+ INC

0000111

DR

   

-

 

-

R[DR] R[DR] + 1

Z,N,C,V

INC R2

+ DEC

0001000

DR

   

-

 

-

R[DR] R[DR] 1

Z,N,C,V

DEC R2

+ ADD

0001001

DR

   

-

SB

 

R[DR] R[DR] + R[SB]

Z,N,C,V

ADD R3,R4

+ SUB

0001010

DR

   

-

SB

 

R[DR] R[DR] R[SB]

Z,N,C,V

SUB R2,R1

+ AND

0001011

DR

   

-

SB

 

R[DR] R[DR] and R[SB]

Z,N

AND R5,R7

+ OR

0001100

DR

   

-

SB

 

R[DR] R[DR] or R[SB]

Z,N

OR R2,R6

+ XOR

0001101

DR

   

-

SB

 

R[DR] R[DR] xor R[SB]

Z,N

XOR R7,R2

+ NOT

0001110

DR

   

-

SB

 

R[DR] not R[SB]

Z,N

NOT R0

- SHL §

0001111

DR

   

OP

 

R[DR] SHL R[DR],OP

Z,N,C

SHL R1,3

- SHR §

0010000

DR

   

OP

 

R[DR] SHR R[DR],OP

Z,N,C

SHR R2,4

- ROL §

0010001

DR

   

OP

 

R[DR] ROL R[DR],OP

Z,N,C

ROL R3,7

- ROR §

0010010

DR

   

OP

 

R[DR] ROR R[DR],OP

Z,N,C

ROR R4,31

- SHLA §

0010011

DR

   

OP

 

R[DR] SHLA R[DR],OP

Z,N,C,V

SHLA R1,2

- SHRA §

0010100

DR

   

OP

 

R[DR] SHRA R[DR],OP

Z,N,C,V

SHRA R1,2

     
           

M[SP] R[DR]

   

- PUSH

0010101

DR

 

-

 

-

SP SP + 1

-

PUSH R3

         

SP SP 1

   

- POP

0010110

DR

   

-

 

-

R[DR] M[SP]

-

POP R7

Departamento de Engenharia Electrotécnica e de Computadores

Instituto Superior Técnico - Universidade Técnica de Lisboa

Arquitectura de Computadores 2º sem 10/11

MEEC

Instruções de Controlo

 

+ BR

1000000

AD

PC PC + AD

-

BR 3

- BR.Z

1000001

AD

PC PC + AD se S(Z)=1

-

BR.Z -7

- BR.NZ

1000010

AD

PC PC + AD se S(Z)=0

-

BR.NZ -3

- BR.N

1000011

AD

PC PC + AD se S(N)=1

-

BR.N 4

- BR.NN

1000100

AD

PC PC + AD se S(N)=0

-

BR.NN 3

- BR.P

1000101

AD

PC PC + AD se S(P)=1

-

BR.P -1

- BR.NP

1000110

AD

PC PC + AD se S(P)=0

-

BR.NP -2

- BR.C

1000111

AD

PC PC + AD se S(C)=1

-

BR.C 7

- BR.NC

1001000

AD

PC PC + AD se S(C)=0

-

BR.NC 7

 

+ BR.V

1001001

AD

PC PC + AD se S(V)=1

-

BR.V 3

+ BR.NV

1001010

AD

PC PC + AD se S(V)=0

-

BR.NV -3

 
     

M[SP] PC

   

- CALL

1001011

AD

SP SP + 1 PC PC + AD

-

CALL 30

     

SP SP 1

   

- RET

1001100

-

PC M[SP]

-

RET

     

M[SP] StateBits SP SP + 1

   

M[SP] PC

- INT

1001110

-

SP SP + 1 StateBits(4) 0 PC FFFFh

E

INT

     

SP SP 1

   

PC M[SP]

- RTI

1001101

-

SP SP - 1 StateBits M[SP]

E,Z,N,C,V

RTI

- ENI

1010000

-

StateBits(4) 1

E

ENI

- DSI

1010001

-

StateBits(4) 0

E

DSI

§ As operações SHR,SHL,ROL,ROR,SHLA e SHRA apresentam nesta arquitectura dois argumentos; o segundo argumento, aqui designado por OP, corresponde ao número de deslocamentos/rotações. Para estas operações o valor dos bits de estado deve ser determinado pelo último deslocamento/rotação.

+ Instruções previamente implementadas.

- Instruções para implementar no laboratório.

Memória de

Nota:

Em geral, é possível ao programador aceder a qualquer μ-instrução dentro da gama de opcodes 00000000 a 01111111. Tal como indicado na figura ao lado, os opcodes na gama superior (10000000 a 11111111) são privados. Assim, estes opcodes estão apenas disponíveis para a μ-programação de instruções complexas (i.e., que requiram mais de uma μ-instrução, para além de IF e EX0). Sempre que necessitar de implementar uma instrução complexa, deverá usar opcodes na gama privada, i.e., (10000000 a 11111111).

Na implementação fornecida, o opcode das μ-instruções IF e EX0 correspondem a 10000000 e 10000001, respectivamente. O opcode 10000010 está reservado para o ponto 3.4 do trabalho de laboratório.

CAR

0 1 2 127
0
1
2
127

Usar na

programação

de instruções

complexas,

sempre que

Usar na programação de instruções complexas, sempre que necessário 128 129 130 255 descodificação NOP IF

necessário

128

129

130

255

descodificação

NOP

IF

EX0

Reservada (parte 2)

Zona pública: Endereços do OpCode Zona privada: Endereços μ-instruções
Zona pública:
Endereços
do OpCode
Zona privada:
Endereços
μ-instruções

acessíveis através

acessíveis apenas

através de outras

NA,MC,MS,IL,PL,SA,TA,SB,TB,SK,TD,WE,MW,

MA,MB,MD,MM,FS,FW,ENI,DSI,SL,IntClear

Palavra de controlo correspondente à

μ-instrução indicada no registo CAR

Departamento de Engenharia Electrotécnica e de Computadores

Instituto Superior Técnico - Universidade Técnica de Lisboa

3

PROJECTO

Arquitectura de Computadores 2º sem 10/11

MEEC

O objectivo deste trabalho consiste na implementação e teste das instruções descritas na tabela 7.

Tabela 7 - Tabela das intruções a implementar por turno de laboratório.

Semana

Segunda-Feira

Quarta-Feira

Quinta-Feira

Sexta-Feira

1

PUSH, POP

PUSH, POP

PUSH, POP

PUSH, POP

1

BR.Z, BR.NZ

BR.N, BR.NN

BR.P, BR.NP

BR.C, BR.NC

1

SHL,SHLA

SHR,SHRA

ROL,SHLA

ROR,SHRA

1

ENI, DSI

ENI, DSI

ENI, DSI

ENI, DSI

2

CALL, RET

CALL, RET

CALL, RET

CALL, RET

2

INT, RTI

INT, RTI

INT, RTI

INT, RTI

3.1 Análise do funcionamento do processador de ciclo múltiplo (6 Val.)

Desenhe fluxogramas ASM para as instruções descritas na tabela 7 (um fluxograma por instrução). Comente os fluxogramas indicando para cada estado os sinais de controlo necessários para execução desse estado. Inclua os estados de IF e EX0, indicando as operações realizadas por estes estados. Para a realização desta alínea não necessita de representar em binário os sinais de controlo. Pode usar (se preferir) uma representação funcional.

Sugestão: antes de responder a esta alínea, analise o funcionamento das instruções previamente implementadas (ex. BR.V), e das μ-instruções IF e EX0; se necessário construa o fluxograma ASM a partir da implementação no XILINX.

3.2 Implementação das instruções (4 Val.)

a) Implemente as instruções indicadas na tabela 7 na unidade de descodificação de μ-código. Para tal preencha os endereços da memória no ficheiro idecoder_mem.vhd correspondentes às instruções respectivas.

b) Teste cada uma das operações implementadas e verifique o seu funcionamento (não precisa de testar as instruções INT e RTI). Para tal, altere o ficheiro data_mem.vhd com um programa à sua escolha. Apresente no relatório simulações representativas dos testes efectuados.

3.3 Projecto de novas instruções (2ª Semana) (2 Val.)

Considere que pretende implementar novas instruções com constantes de 16 bits. Para tal o processador terá de suportar instruções de tamanho variável. Assim, tal como indicado na tabela seguinte, a primeira palavra de 16 bits da memória de instruções armazena o opcode da instruções; a segunda palavra (PC+1) armazena a constante de 16 bits.

Dia da

 

Palavra de

Instrução

Bits da palavra de instrução

   

Bits de

Exemplo de

Utilização

Mnemónica

       

Descrição

estado

semana

15

-

9

8

-

6

5

-

3

2

-

0

a actualizar

 

MOV

0

Opcode

 

DR

   

-

       

(MOV long

   

R[DR] OP

-

MOV R1,-1527

imediate)

1

 

OP

 
 

ADD

0

Opcode

 

DR

   

-

       

(ADD long

   

R[DR] OP

Z,N,C,V

ADD R3,4415

imediate)

1

 

OP

 
 

JMP

0

Opcode

   

-

     

(Jump)

1

 

AD

 

PC AD

- JMP 3443

 

CALL

0

Opcode

   

-

M[SP] PC+2 SP SP + 1 PC AD

   

(CALL long

   

- CALL 3443

imediate)

1

 

AD

 

Projecte (sem implementar) as operação acima indicada correspondente ao dia da semana do seu turno de laboratório. Apresente no relatório o Opcode escolhido, o fluxograma ASM e os sinais de controlo necessários à execução de cada estado. Se achar necessário pode sugerir alterações à arquitectura de forma a realizar a operação ou a aumentar a eficiência da execução.

Departamento de Engenharia Electrotécnica e de Computadores

Instituto Superior Técnico - Universidade Técnica de Lisboa

Arquitectura de Computadores 2º sem 10/11

MEEC

3.4 Alteração do fluxo de μ-instruções de forma a atender interrupções externas (2ª Semana)

Em muitos casos é necessário que o processador interrompa a normal execução do código de forma a atender uma interrupção gerada por um dispositivo externo. Um caso simples é a implementação de um relógio capaz de contar horas, minutos e segundos.

Figura 2 - Fluxograma para atendimento de interrupções. Note-se que, de acordo com o enunciado,
Figura 2 - Fluxograma para atendimento de interrupções.
Note-se que, de acordo com o enunciado, foram alteradas
as codificações dos estados de IF e EX0.

a) (4 Val.) Altere o fluxograma das instruções de forma a que, no final da execução de todas as instruções, verifique se existe uma interrupção activa (sinal INT=1). Assim, tal como está ilustrado na figura 3, caso não exista uma interrupção (INT=0) deve continuar para o passo de FETCH. Caso exista uma interrupção, deverá fazer executar a instrução INT. Apresente no relatório um fluxograma ASM com as alterações introduzidas; indique o número de estados (i.e., μ-instruções) que acrescentou ao fluxograma, assim como a palavra de controlo para todos os novos estados.

b) (4 Val.) Assume que tem um rotina de serviço de interrupções que realiza as seguintes operações (tal como indicado na figura 3):

1. Reinicialização do contador (TIMER) de forma a que as interrupções ocorram com intervalos de aproximadamente 1 s.

2. Escrita na posição de memória M[FFFDh] a existência de uma interrupções não atendidas por hardware. Assim, M[FFFDh] funciona como um contador que é incrementado de cada vez que uma interrupção ocorre.

Projecte o programa principal tendo atenção aos seguintes aspectos:

1. Deve começar por inicializar o TIMER (i.e., contador) para que as interrupções ocorram em intervalos de tempo de 1s; para a inicialização do TIMER considere que o contador é decrementado a cada 50 μs.

2. Deve inicializar a variável na posição de memória M[FFFDh].

3. Deve activar as interrupções usando a instrução ENI.

4. Após a inicialização deve entrar num ciclo infinito. Enquanto o M[FFFDh] for zero o programa mantém-se no ciclo; se M[FFFDh] for diferente de zero, deve (i) decrementar o valor de M[FFFDh] e (ii) incrementar o relógio. Considere que usa três registos para guardar horas, minutos e segundos, respectivamente.

No relatório apresente a sequência de instruções segundo o formato:

PC: Mnemónica <espaço> <destino>,<operando> ; comentário

Onde PC indica o endereço da instrução na memória.

Departamento de Engenharia Electrotécnica e de Computadores

Instituto Superior Técnico - Universidade Técnica de Lisboa

Arquitectura de Computadores 2º sem 10/11

MEEC

PUSH

R1

; salvaguarda do registo R1

MOV

R1,20000

MOV

M[FFFEh],R1

; Reinicialização do contador

MOV

R1,M[FFFDh]

; Lê a variável de contagem de interrupções geradas

INC

R1

; Incrementa o valor

INC

M[FFFDh],R1

; Actualiza a variaável de contagem de interrupções geradas

POP

R1

; Reposição do valor de R1

RTI

; Saída da rotina de serviço de interrupção

Figura 3 - Rotina de serviço de interrupções.

4 RELATÓRIO

No fim da aula deverá ser entregue o relatório (que deverá vir impresso e pronto a entregar com excepção de pontos referentes a alterações de última hora e conclusões). Este deverá ser sucinto (dispensam-se introduções teóricas), mas terá obrigatoriamente que conter:

As respostas a todas as perguntas efectuadas no guia.

Descrição do trabalho efectuado e as opções de projecto.

Todos os esquemáticos alterados/criados e simulações realizadas.

Conclusões: Comentários sobre o funcionamento do laboratório.

O relatório completo não deverá exceder as 10 páginas

5 AVALIAÇÃO

A avaliação do trabalho será realizada, ao longo das duas aulas de laboratório, de acordo com as cotações indicadas no enunciado e valoriza-se, em particular: (1) a participação e empenho dos alunos nas aulas; (2) as respostas às questões lançadas pelo docente sobre o projecto apresentado; (3) a originalidade da solução e dos testes realizados; (4) o grau de detalhe da solução; (5) a descrição do processo de síntese e justificação das diferentes opções de projecto; (6) a utilização intensiva de barramentos e símbolos na representação hierárquica e na simplificação de esquemáticos; (7) a boa estruturação, a escrita sucinta e objectiva e, ainda, a boa apresentação do relatório.

6

BIBLIOGRAFIA

[1]

N. Horta, “Arquitectura de Computadores – Unidade de Processamento”, Aulas Teóricas, 2010.

[2]

M. Morris Mano, Charles R. Kime, “Logic and Computer Design Fundamentals”, 4th Edition Updated, Prentice-

Hall International, 2008. [3] G. Arroz, J. Monteiro, A. Oliveira, “Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores”, IST Press, 2007.