Pular para o conteúdo principal

Introdução

O Processador ICMC trata-se de um projeto iniciado pelo Prof. Dr. Eduardo do Valle Simões para lecionar de forma principalmente prática, Organização e Arquitetura de Computadores aos alunos do Instituto de Ciências Matemáticas e Computacionais (ICMC) da Universidade de São Paulo.

O projeto permite a prototipação de um processador (CPU) em placas FPGA. Este implementa uma linguagem de montagem autoral com a qual estudantes podem programar uma aplicação (propõe-se jogos) a ser carregada diretamente na memória primária (RAM) da placa, e tê-la executada sem o intermédio de um sistema operacional. Pretende-se, com isto, que estes alcancem um conhecimento de aspectos gerais ao funcionamento de uma CPU tanto em seus quesitos lógicos quanto de implementação.

Este projeto é contempla os seguintes componentes:

  • O projeto do processador, descrito usando a linguagem VHDL, para sua implementação nas placas DE0-CV e DE2-115;

  • O software do montador, que lê a linguagem de montagem e gera o código binário necessário a sua execução;

  • O software do simulador, para simular o funcionamento do programa antes de submetê-lo ao (relativamente mais lento) processo de escrita na memória da placa;

  • Uma IDE configurada para programação na linguagem de montagem do projeto e integração com o simulador do mesmo.

  • Uma biblioteca de referência, contendo aulas gravadas, funções comentadas e jogos completos.

  • Uma coletânea de guias auxiliares, com orientações práticas para o desenvolvimento de jogos.

Do you want to know more?


Ao final da década de 70 mídias removíveis ainda eram relativamente caras e muitos computadores pessoais não estavam conectados a qualquer rede remota. Assim, para instalar jogos em seus computadores, entusiastas recorriam a compartilhar o código-fonte destes entre si diretamente ou por meio de publicações especializadas e reprogramá-los diretamente na memória de seus computadores.

TODO
  • Pegar a data em que este projeto foi iniciado;
  • Inserir imagem de alunos testando algum jogo;
  • Confirmar a variedade de placas compatíveis.