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:
- A instalação dos programas componentes deste projeto, assim como a leitura das suas instruções de uso.
- 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:
- Implementação das instruções de máquina: se as instruções básicas foram implementadas e, se sim, foram estendidas.
- Funcionalidade do jogo apresentado: se este é funcional e, se sim, exibe múltiplas ou elaboradas funcionalidades.
- Documentação do projeto: se esta cumpre com os requisitos e, se sim, é clara e concisa.
- Contribuições com o projeto do Processador ICMC: Se foram feitas e aprovadas Pull Requests ao repositório deste projeto.
- A inscrição do projeto e o agendamento da apresentação deve ser realizado conforme as exigências descritas na publicação no blog.
- 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
- Criação do repositório git para armazenamento do projeto.
- Implementação das instruções de máquina para manipulação do processador.
- Criação do jogo e realização de testes deste.
- Implementação do jogo na placa FPGA para sua subsequente apresentação.
- 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:
- O arquivo
cpu.vhd
contendo a descrição em linguagem VHDL da CPU; - Os arquivos
.asm
e.mif
referentes ao programa do jogo; - O arquivo
.mif
para o charmap utilizado pelo jogo; - Quaisquer outros arquivos relevantes a execução do jogo, especialmente quando este realiza modificações sobre o projeto do Processador ICMC.
- 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
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.
Elaborar sobre os critérios de avaliação conforme julgar necessário. Por exemplo, acrescentando pesos aos diferentes requisitos.