UFSC logo

Eduardo Augusto Bezerra, PhD
Embedded Systems and Space Applications

EEL logo

Home | Interests | Research | Teaching | Publications | Download

GSE | LISHA | Innalogics | Opportunities | Contact


EEL 4100 38 - Sistemas Digitais e Dispositivos Lógicos Reconfiguráveis

Prof. Eduardo Augusto Bezerra - Eduardo.Bezerra @ eel.ufsc.br

Prof. Djones Vinicius Lettnin - Lettnin @ eel.ufsc.br

Programa de Pós-Graduação em Engenharia Elétrica

Departamento de Engenharia Elétrica, CTC, UFSC, Florianópolis, SC, Brasil

Especificação do Trabalho Final - Período 2012/2


"Projeto e implementação em VHDL para FPGAs de arquitetura com conjunto super-reduzido de instruções"


A CPU de uma determinada arquitetura possui os seguintes componentes:
  • Registrador PC (program counter) - contém o endereço da próxima instrução a ser executada;

  • Registrador IR (instruction register) - contém a instrução de máquina em execução na arquitetura em um determinado instante;

  • Registrador A - armazena resultados intermediários de operações (acumulador);

  • Registrador B - armazena resultados intermediários de operações (auxiliar);

  • Memória de dados;

  • Memória de instruções;

  • Conjunto de instruções de 16 bits listadas na tabela a seguir, onde end representa um endereço de memória de 8 bits ou don't care para as instruções que não realizam acesso a memória.

Tipo
Código de máquina
Instrução
Operação
Descrição
I

00000001 end

LDA end

A <= memória[end]

Registrador A recebe o conteúdo da posição de memória end

I

00000010 end

STA end

memória[end] <= A

Posição de memória end recebe o conteúdo do registrador A

I

00000011 end

BLT end

PC <= (A < B ? end : PC + 2)

A execução do programa é desviada para o endereço end, se A for menor do que B

I

00000100 end

BEQ end

PC <= (A == B ? end : PC + 2)

A execução do programa é desviada para o endereço end, se A for igual a B

J

00000101 end

JMP end

PC <= end

A execução do programa é desviada incondicionalmente para o endereço end

R

00010000 end

ADD

A <= A + B

Registrador A recebe a soma de A com B (complemento de 2)

R

00100000 end

MUL

AB <= A * B

Multiplicação de A com B, sendo que o registrador A recebe a parte baixa do resultado, e o registrador B a parte alta

R

00110000 end

AND

A <= A AND B

Registrador A recebe o resultado da operação lógica AND de A com B

R

01000000 end

OR

A <= A OR B

Registrador A recebe o resultado da operação lógica OR de A com B

R

01010000 end

NOT

A <= NOT A

Registrador A recebe o conteúdo de A negado

R

01100000 const

LI const

A <= constante

LSB do registrador A recebe o valor constante contido na instrução, e MSB do A recebe 0 (zero)

R

01110000 end

SWP

A <= B, B <= A

O conteúdo do registrador A é copiado para o registrador B, e vice-versa (swap A, B)

11111111 end

HALT

Halt

Suspende a execução do processador

Na coluna "Tipo" são listados os seguintes tipos de instruções:

  • I - instruções do tipo I utilizam um endereço de memória para transferência de dados (STA e LDA) ou para desvio condicional do fluxo de execução do programa (BRN e BRZ)
  • J - instruções do tipo J realizam um desvio incondicional para o endereço especificado na própria instrução
  • R - instruções do tipo R realizam operações com operandos armazenados em registradores (não realizam acesso a memória)

Projetar e modelar a arquitetura em SystemC e, a seguir, implementá-la em VHDL visando síntese em FPGAs. Demonstrar o funcionamento da arquitetura por intermédio da execução de um programa nas plataformas de desenvolvimento disponíveis no laboratório.


Observações:
  • Utilizar como base a arquitetura MIPS multiciclo definida no livro do David A. Patterson e John L. Hennessy, “Computer Organization and Design: The Hardware/Software Interface”.

  • Definir uma faixa de endereços de memória para mapear, pelo menos, uma porta de entrada e uma porta de saída de 8 bits cada. Essas portas poderão representar, por exemplo, 8 chaves (entrada) e 8 LEDs (saída) do kit de desenvolvimento.

  • A ULA, além do resultado da operação realizada, deverá sinalizar também o resultado das operações de comparação realizadas.

  • Desenvolver um programa de teste, e executá-lo na arquitetura projetada. Esse programa de teste deve realizar algum processamento útil, sendo necessário consultar previamente os professores da disciplina sobre a validade do algoritmo selecionado.

  • O trabalho é individual.

  • A entrega/apresentação do trabalho será na aula do dia 13/09 (ou em data anterior a ser combinada entre aluno e professor).

  • Preparar uma documentação completa descrevendo a arquitetura do sistema, ferramentas utilizadas, e todos os componentes do VHDL. Descrever também o procedimento necessário para o desenvolvimento de programas para o microprocessador, incluindo detalhes sobre a definição dos conteúdos das memórias de dados e endereços. A documentação é parte fundamental da avaliação, e deverá ser preparada de forma a possibilitar futuras alterações no projeto.

  • A seguir estão incluídos alguns diagramas da arquitetura MIPS a ser utilizada como base para esse trabalho.



fig1


fig2


fig3


fig4