“Projeto e implementação em VHDL para FPGAs de arquitetura para execução de um conjunto reduzido de instruções do MIPS”

UFSC/CTC/PPGEEL, 2015/1

EEL 510231 – Sistemas Digitais e Dispositivos Lógicos Reconfiguráveis

Prof. Eduardo Augusto Bezerra

Projetar e modelar a arquitetura MIPS descrita no Apêndice A do livro do Patterson, considerando o conjunto reduzido de instruções definido a seguir.

Implementar a arquitetura 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.

Conjunto de instruções a ser implementado (ver Appendix A do livro do Patterson):

  • Addition (with overflow) – add rd, rs, rt
  • Addition immediate (with overflow) – addi rt, rs, imm
  • AND – and rd, rs, rt
  • AND immediate – andi rt, rs, imm
  • NOR – nor rd, rs, rt
  • OR – or rd, rs, rt
  • OR immediate – ori rd, rs, imm
  • Shift left logical – sll rd, rt, shamt
  • Shift left logical variable – sllv rd, rt, rs
  • Shift right arithmetic – sra rd, rt, shamt
  • Shift right arithmetic variable – srav rd, rt, rs
  • Shift right logical – srl rd, rt, shamt
  • Shift right logical variable – srlv rd, rt, rs
  • Subtract (with overflow) – sub rd, rs, rt
  • Exclusive OR – xor rd, rs, rt
  • Exclusive OR immediate – xori rt, rs, imm
  • Set less than – slt rd, rs, rt
  • Set less than immediate – slti rd, rs, imm
  • Branch on equal – beq rs, rt, label
  • Branch on greater than zero – bgtz rs, label
  • Branch on less than zero – bltz rs, label
  • Branch on not equal – bne rs, rt, label
  • Jump – j target
  • Load word – lw rt, address
  • Store word – sw rt, address

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”.
  • Informações sobre o projeto dos blocos de dados e controle, foram discutidas nas aulas da disciplina, com base nos slides 1 a 29 do capítulo 4 do livro do Patterson.
  • 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.
  • 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 o professor da disciplina sobre a validade do algoritmo selecionado.
  • O programa de testes deve ser escrito em assembly, e o código binário para as instruções deverá ser gerado pela ferramenta SPIM (ver pg. A-38 do Appendix A).
  • O trabalho pode ser realizado em duplas, porém a avaliação é individual.
  • A entrega/apresentação do trabalho deverá ocorrer antes do dia 24 de junho, em data/hora a ser combinada com o professor (ver slots disponíveis no Moodle).
  • 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.