CPU do Zero

De Garoa Hacker Clube
Revisão de 11h50min de 16 de agosto de 2016 por Juca (discussão | contribs) (→‎2016-AGO-16)
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

Vamos conversar sobre o estágio final do circuito de geração de sinalização de vídeo. Ou seja, o Color-DAC (conversor digital-analógico dos sinais RGB), o registrado seletor de paleta de cores, as ROMs de paletas, a VRAM (memória RAM de vídeo), o oscilador que gera o sinal de pixel clock, os contadores de varredura X e Y e as portas lógicas que controlam o timing da sinalização de sincronismo vertical e horizontal (HSync e VSync).

Será abordado também o conector JAMMA e as estratégias para a fabricação de um primeiro protótipo da placa de vídeo, assim como um brainstorming geral sobre quais os próximos passos no projeto dos outros blocos de circuitos da placa 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