Universidade Federal de Ouro Preto Departamento de Computação e Sistemas (DECSI) Organização e Arquitetura de Computadores II Trabalho Prático I – Prof. Vicente Amorim O que é? Durante a primeira parte do semestre, vimos em sala diversas peculiaridades associadas aos processadores. Em particular, estudamos a fundo a implementação de um processador da família MIPS. À partir disso, é possível concluir que em suma, os processadores executam comandos bem simples -‐‑ contrastando com sua implementação interna. Neste trabalho você deverá colocar em prática alguns dos conceitos que estudamos até agora para a implementação de um processador MIPS simples. O que deve ser feito? Sua tarefa nesse trabalho prático é implementar uma versão simplificada do processador MIPS utilizando a linguagem de descrição de hardware Verilog. Sua implementação deverá ser separada por módulos considerando o processador apresentado na Figura 1. As seguintes instruções devem ser suportadas: add, sub, and, or, beq, bne, lw, sw, slt e j. O que deve ser entregue? 1) Documentação descrevendo o seu código para a solução do problema; 2) Código do fonte do seu programa em Verilog junto com instruções para compilação e execução – Makefiles são bem-‐‑vindos! J ; 3) Documentação e código-‐‑fonte devem ser enviados como anexo para: [email protected]. Título do e-‐‑mail deve estar no formato: [OACII][<Numero_matricula_1,Nome_aluno_1,Numero_matricula_2,N ome_aluno_2>][TPI] Quem? Quando? Valor? 1) Quem: Grupos de 2 alunos. 2) Quando: Entregas até o dia 10/05/2015 (23:59). 3) Valor: 15Pts. 4) Bônus: +3Pts. a. Soluções mais criativas e/ou inovadoras; b. Avaliação “altamente subjetiva” aos critérios de “criatividade e inovação” do professor. J Restrições: Atrasos: a. Notas = 15/(n+1), Onde n: Número de semanas de atraso; 1 semana atraso == (1minuto <= X <= 7 dias). Cópias: • A consulta a documentações, manuais e tutorias na web é válida, desde que partes não venham a ser copiadas para seu trabalho e tenham as fontes devidamente citadas; • Ao ser constatado plágio entre os trabalhos entregues ou mesmo com trechos ou documentos na web, as seguintes medidas serão tomadas: a) for (i=0; i < numero_alunos_envolvidos; i++) nota_aluno[i] = 0; b) for (i=0; i< numero_trabalhos_plagiados; i++) valor_trabalhoI -‐‑= (valor_trabalhoI/4); c) valor_proxima_prova += 15-‐‑valor_trabalhoI; • O item c) acima se aplicará somente ao restante da turma – não envolvido nas cópias dos trabalhos. Dicas 1) Modularize seu código e posteriormente crie um testbench para a validação geral de sua implementação Verilog. 2) Crie códigos de exemplo em MIPS para dar como entrada para seus testes. 3) Certifique-‐‑se de que os módulos funcionam de forma isolada antes de fazer a junção dos mesmos. Referências [1] MIPS Instruction set. http://en.wikipedia.org/wiki/MIPS_instruction_set [2] PATTERSON, D. A., HENNESSY, J. L., Organização e Projeto de Computadores: A Interface Hardware/Software, Ed. Campus, 3ª ed., 2005. [3] Verilog Tutorial. http://www.asic-‐‑world.com/verilog/index.html. [4] Processadores Programáveis – Como projetar um processador em VERILOG. http://www.embarcados.com.br/processadores-‐‑programaveis-‐‑verilog-‐‑ arquitetura-‐‑1/