CPU do Zero

De Garoa Hacker Clube
Revisão de 17h51min de 15 de agosto de 2016 por Juca (discussão | contribs)
Ir para navegação Ir para pesquisar

CPU do Zero.svg

Venha construir uma CPU discreta, do zero!

Terças-feiras 20h

2016-AGO-16

Está confirmado!
Tema principal a ser discutido:
Geração de sinal de vídeo

2016-AGO-09

Tivemos uma conversa longa sobre o início do projeto discreto da CPU. Juca mostrou os circuitos do sequenciador de micro-código (gerador de sinais de controle), barramento de dados, ULA, etc... Também foi apresentado o script em python para descrição dos algorítmos de micro-instruções, para implementação do instruction set desejado.

2016-AGO-02

No nosso primeiro encontro foi apresentada a proposta do desafio de se construir uma CPU discreta capaz de executar bytecode da máquina vitrual do jogo Another World. Para contextualizar, assistimos o vídeo completo da abertura do jogo no youtube e depois foi dada uma visão geral sobre o objetivo a ser alcaçado (construir uma placa JAMMA para o jogo Another World) e os subsistemas que precisarão ser projetados. Foram também apresentadas as pranchas de esquemático da CPU do computador Patinho Feio que servem de referência para técnicas de projeto lógico digital para a implementação das diversas partes de uma CPU (como unidades de controle, fluxo de dados, registradores, etc).

Nosso próximo encontro está agendado para 3a feira, 09 de Agosto e decidimos focar no estudo do subsistema de som, lendo o datasheet do chip MSM6295 e avaliando se ele é suficiente para as necessidades do jogo em questão.

Recursos Relevantes

  • Página wiki do projeto da placa AnotherWorld JAMMA
  • livro TOCCI - Disponível na biblioteca do Garoa
  • livro do Edson Fregni (contém esquemas do Patinho Feio) "Projeto de Computadores Digitais 2a edição": PDF
  • tese de mestrado de Edson Fregni "Projeto Logico da Unidade de Controle de um Minicomputador" : PDF
  • Blogpost sobre disasm do bytecode do jogo Another World: blogpost
  • Página do autor do jogo descrevendo a máquina virtual: website
  • Reimplementação livre da máquina virtual do jogo: Another-World-Bytecode-Interpreter
  • Port da VM para rodar no MAME: AnotherWorld-MAME
  • Datasheet do MSM6295 (chip de som usado em máquinas arcade): datasheet
  • Pinagem do conector JAMMA