Pular para o conteúdo principal

Como usar esta documentação

Àqueles que pretendem experimentar a criação de jogos ou quaisquer outros programas utilizando, ou construindo sobre, o projeto do Processador ICMC, esta documentação se pretende apresentar a todo o conhecimento e ferramental disponível para iniciar-se.

Para tal, faz-se necessário apenas:

  1. A instalação dos programas componentes deste projeto, assim como a leitura das suas instruções de uso.
  2. A leitura das especificações da linguagem assembly utilizada pelo projeto.

Não obstante, recomenda-se também a consulta aos guias e a biblioteca de referências, afim de obter alguns exemplos práticos e evitar alguns percalços.

Para expandir esta documentação

Esta documentação foi criada fazendo uso das ferramentas Docusaurus e GitHub Pages. Ao final de cada página encontra-se um link "Editar esta página" onde o usuário pode, em uma sequência de passos, realizar o envio de alterações propostas na forma de Pull Requests. Todas as páginas desta documentação são escritas e formatadas usando a linguagem de marcação markdown, um guia completo para a sintaxe desta pode ser encontrado aqui.

Não obstante, ao realizar um fork no repositório do projeto, muitas outras alterações da documentação, mesmo estruturais, podem ser propostas. Para tal, recomenda-se a leitura da documentação do Docusaurus, em especial seu tutorial.

Orientações específicas aos alunos

Estes matriculados na disciplina "Prática em Organização e Arquitetura de Computadores" (SSC0119)

Avaliação

Os alunos deverão organizar-se em duplas ou trios e, ao final do semestre, ter desenvolvido, publicado e apresentado um jogo implementado em uma placa FPGA. Cada integrante de cada grupo será avaliado individualmente, conforme atestada sua contribuição ao projeto na respectiva apresentação final.

A cada semestre, uma publicação referente a atual turma será acrescentada ao blog com links e instruções para os alunos inscreverem seus projetos. São os critérios de avaliação do projeto:

  1. Implementação das instruções de máquina: se as instruções básicas foram implementadas e, se sim, foram estendidas.
  2. Funcionalidade do jogo apresentado: se este é funcional e, se sim, exibe múltiplas ou elaboradas funcionalidades.
  3. Documentação do projeto: se esta cumpre com os requisitos e, se sim, é clara e concisa.
  4. Contribuições com o projeto do Processador ICMC: Se foram feitas e aprovadas Pull Requests ao repositório deste projeto.
Requisitos obrigatórios para obter nota
  1. A inscrição do projeto e o agendamento da apresentação deve ser realizado conforme as exigências descritas na publicação no blog.
  2. Cada integrante do grupo deve estar presente nesta apresentação final, ainda que remotamente com o uso de ferramentas de video-conferência, como o Jitsi.

Etapas de desenvolvimento do projeto

  1. Criação do repositório git para armazenamento do projeto.
  2. Implementação das instruções de máquina para manipulação do processador.
  3. Criação do jogo e realização de testes deste.
  4. Implementação do jogo na placa FPGA para sua subsequente apresentação.
  5. Atualização do repositório git e opcional atualização da documentação associada ao projeto do processador.

Requisitos para o repositório Git do projeto

Constar os nomes de todos os autores do projeto e respectivos números USP, e conter:

  1. O arquivo cpu.vhd contendo a descrição em linguagem VHDL da CPU;
  2. Os arquivos .asm e .mif referentes ao programa do jogo;
  3. O arquivo .mif para o charmap utilizado pelo jogo;
  4. Quaisquer outros arquivos relevantes a execução do jogo, especialmente quando este realiza modificações sobre o projeto do Processador ICMC.
  5. Todas as instruções necessárias a execução do jogo por terceiros, mesmo que isso seja meramente apontar para as porções relevantes da documentação do Processador ICMC
dica

Antes de propor-se a criar seu jogo, consulte os jogos recomendados na biblioteca de jogos. Atente-se a forma com que estes foram documentados, realize o download de seus arquivos e tente simulá-los, para se ter uma ideia das capacidades do processador ICMC.

TODO

Elaborar sobre os critérios de avaliação conforme julgar necessário. Por exemplo, acrescentando pesos aos diferentes requisitos.