14 pontos por GN⁺ 26 일 전 | 1 comentários | Compartilhar no WhatsApp
  • Jogo em formato de simulação para aprender construindo passo a passo toda a pilha de computação, dos transistores à GPU
  • Cada etapa é organizada em ACTs, evoluindo na ordem de transistores, portas lógicas, ALU, processador, GPU e shader
  • No ACT 1, o jogador cria portas lógicas básicas com NMOS e PMOS; no ACT 2, expande isso para completar a ALU e o núcleo do processador
  • As etapas seguintes, de software, GPU e shader, estão atualmente em desenvolvimento, com status COMING SOON
  • Trata-se de um projeto interativo educacional que permite experimentar de forma integrada design de hardware e programação

Visão geral do jogo Mvidia

  • Mvidia é um jogo interativo de aprendizado em que o usuário vivencia, passo a passo, o processo de projetar e construir uma GPU diretamente
  • O jogo começa nos transistores e evolui para portas lógicas, ALU, processador e GPU
  • Cada etapa é dividida em um “ACT”, e cada ACT é composto por várias tarefas de aprendizado e implementação
  • O progresso é exibido no formato de taxa de conclusão (ex.: 0/10 COMPLETED), permitindo verificar visualmente o avanço do aprendizado

ACT 1: Seu primeiro dia (YOUR FIRST DAY)

  • O tema é Transistors → Logic Gates, etapa em que portas lógicas básicas são construídas usando transistores
  • Principais tarefas
    • 1.1 The Switch: usar NMOS como chave
    • 1.2 The Other Switch: usar PMOS como chave
    • 1.3 Two Halves: combinar NMOS e PMOS
    • 1.4 NAND It: construir uma porta NAND
    • 1.5 The Dual: construir um par de portas lógicas
    • 1.6 Truth Tables: criar tabelas-verdade
    • 1.7 AND Gate, 1.8 OR Gate, 1.9 XOR Gate: implementar portas básicas
    • 1.10 Choose Wisely: completar uma estrutura de seleção combinando três portas
  • Ao concluir o ACT 1, ACT 2: THE CORE é desbloqueado

ACT 2: O núcleo (THE CORE)

  • O tema é Gates → ALU → Processor, etapa em que portas lógicas são usadas para construir a unidade lógico-aritmética (ALU) e o processador
  • É composto por 34 tarefas detalhadas, e cada uma avança com base nos resultados da etapa anterior
  • Principais etapas
    • 2.1 Half Adder, 2.5 Full Adder: construção de circuitos de soma
    • 2.3 The Decoder, 2.25 Register File: projeto de estruturas de seleção e armazenamento de dados
    • 2.4 The Capacitor, 2.7 1T1C, 2.12 The Sense Amp, 2.17 The Array: construção de células de memória e amplificador de detecção
    • 2.10 Adding Bytes, 2.13 Hex Racer, 2.15 Bit Twiddling: expansão para operações em nível de byte
    • 2.20 Edge Trigger, 2.21 Refresh, 2.31 Refresh Controller: controle de clock e atualização de memória
    • 2.27 The ALU, 2.30 Fetch, Decode, Execute, 2.32 The Mvidia Core: conclusão da estrutura central do processador
    • 2.33 DRAM Memory, 2.34 Mvidia Core v2: expansão baseada em DRAM e upgrade do núcleo
  • Ao concluir o ACT 2, ACT 3: THE SOFTWARE é desbloqueado

ACT 3: Software (THE SOFTWARE)

  • O tema é Programming the Processor, etapa de programar o processador concluído
  • Atualmente está em COMING SOON, e os detalhes das tarefas ainda não foram divulgados

ACT 4: GPU (THE GPU)

  • O tema é Building a Graphics Processor, etapa de construir o processador gráfico
  • Atualmente está em COMING SOON, e futuramente serão adicionadas tarefas relacionadas ao projeto da arquitetura da GPU

ACT 5: Shader (THE SHADER)

  • O tema é Programming the GPU, etapa de programação de shaders usando a GPU
  • Atualmente está em COMING SOON, com previsão de expansão futura como conteúdo de aprendizado de programação para GPU

1 comentários

 
GN⁺ 26 일 전
Comentários no Hacker News
  • Projeto realmente muito legal
    Mas na etapa de truth tables havia muitos problemas repetidos, e o primeiro problema tinha limite de tempo de apenas 1 segundo
    A parte dos capacitores também foi confusa. O capacitor não tem porta de enable, então em 2.7 (1T1C) isso deveria ser feito diretamente com um transistor
    Só que agora o primitive já tem uma porta de enable, então a porta NMOS acaba não sendo necessária
    Fiquei curioso se isso foi feito com ajuda de LLM. Principalmente o workflow para criar uma UI tão boa foi impressionante

    • Não vi o bug do capacitor, mas adicionei a porta enable na fase 2.4. Isso foi necessário por causa da estrutura do sistema de simulação
      A implementação do capacitor deu bastante trabalho desde o início. Foi difícil criar um modelo de capacitor completo que se encaixasse no sistema de simulação
      O bug das truth tables será corrigido. As estrelas só podem ser obtidas jogando no endless mode
      Usei bastante o Claude durante o desenvolvimento. A parte de fiação e simulação foi difícil, mas os gráficos ficaram prontos com instruções bem detalhadas
    • A ordem das truth tables está invertida. O ideal seria aprender o conceito primeiro e só depois ver o quiz, mas agora está ao contrário
      As definições de NAND, NOR e Inverter aparecem só depois do quiz. Seria bom trocar a ordem
      Além disso, o timer é curto demais. Mesmo eu, que já sabia todas as respostas, tive dificuldade para digitar a tempo. Vale até considerar remover o timer por completo
  • Se você gostou deste jogo, também recomendo Turing Complete
    No final, você pode criar sua própria CPU e linguagem assembly. Só que ele ainda está em Early Access e parece parado há bastante tempo

    • Eu também gosto muito desse jogo. Alguém sabe se os desenvolvedores ainda estão ativos?
  • Trabalhei por mais de 10 anos projetando mixed-signal IC, mas não consegui passar nem da primeira fase
    Era um problema em que o NMOS precisava fazer a saída ser 0 quando a entrada fosse 1, e estado Z quando fosse 0
    Era preciso conectar o dreno à saída, a fonte ao GND e a porta à entrada
    Mas metade dos testes falhou. Depois percebi que as linhas grossas cinzas do fundo pareciam fios e me confundiram. Era preciso adicionar manualmente a conexão

    • Eu também falhei exatamente do mesmo jeito, e não tenho nenhuma experiência na área
    • Acho que foi porque a cor de fundo parece fio. Vou corrigir isso mudando o tema de cores
    • Fiquei curioso se você migrou para software agora
  • Tenho alguns feedbacks
    A ideia é boa, mas como alguém que já jogou Turing Complete, eu queria pular as fases iniciais e ir direto para a parte especializada em GPU
    Foi difícil entender NAND de forma intuitiva a partir de transistores, então senti uma barreira de dificuldade
    A variação de dificuldade é grande, mas o modo easy estava bom
    A fase de refresh do capacitor é rápida demais e eu não consegui acompanhar no teclado
    Quando a fiação fica complexa, a legibilidade cai muito rápido, e foi incômodo não haver distinção por cores nem roteamento manual
    No Firefox, selecionar pontos de conexão não funcionou bem, e seria bom poder mover a tela (pan) arrastando pelas bordas com o mouse
    “show solution” está mais para dica do que para solução de fato. Seria bom ter uma opção para mostrar mais casos de teste

  • Ideia realmente muito legal
    Mas eu não tinha conhecimento básico suficiente para entender as mensagens do tutorial e fiquei travado já na primeira fase

    • Obrigado pelo feedback. Originalmente, no Act 0, eu explicava a física e os princípios básicos de PMOS/NMOS, mas removi isso porque não gostei da UI. Vou adicionar de novo
    • Eu estava na mesma situação. Gosto de Turing Complete e dos jogos da Zachtronics, mas foi a primeira vez que vi lógica de 3 estados
      Ainda não peguei o jeito da porta NOT da fase 3. Mesmo assim, esses quebra-cabeças de circuitos de 3 estados são novidade para mim e achei bem interessante. Se colocar uma historinha fofa por cima, talvez funcione até no Steam
  • A ideia é boa, então adicionei ao HN Arcade

    • Valeu!
  • Precisa de um botão de “mostrar a resposta se eu falhar 10 vezes”
    Assim dá para distinguir se o problema está quebrado ou se o erro é meu

    • Boa sugestão. Vou adicionar na próxima atualização. Enquanto isso, você também pode usar o botão copy circuit para copiar o circuito e pedir ao GPT para verificar. Você consegue me dizer em qual fase isso aconteceu?
  • Seria bom ter um nó temporário para testar a saída
    Melhor ainda, se a truth table fosse atualizada em tempo real sem precisar rodar o teste, isso ajudaria no aprendizado

  • Para fins de aprendizado, seria bom explicar por extenso as siglas (nmos, pmos, gnd, vdd) pelo menos uma vez
    A interface é limpa e preenche bem esse nicho educacional

    • Dá para colocar isso numa caixa de informação que a pessoa possa abrir a qualquer momento
      Mas, mesmo escrevendo as siglas por extenso, talvez isso não ajude tanto porque ainda não seriam intuitivas
    • Originalmente, no Arc 0, eu tratava esses conceitos básicos em detalhe, mas removi por causa de problemas de UI
      Fiz um ajuste temporário, mas pretendo adicionar de novo numa versão mais polished. Vou deixar isso como opcional
  • Jogo excelente. Para aprendizado, seria bom poder ver uma solução modelo ou explicação depois de concluir cada fase

    • Pretendo adicionar esse recurso. O Gemini vai analisar a composição do circuito, dar opiniões e também fornecer dicas dinâmicas