Campo de treinamento em circuito para tanques e processadores

Em abril, houve um seminário de Rosnanov sobre circuitos modernos para crianças em idade escolar do tipo olimpíada . Depois dele, um grupo de organizadores se reuniu no saguão e ficou intrigado por um longo tempo sobre como tornar o assunto mais interessante e útil ao mesmo tempo. Para entrar no Verilog e no FPGA, por exemplo, no formato das Olimpíadas da NTI. Foi decidido abandonar o matematicamente interessante, mas um tanto abstrato para as tarefas do aluno, como protocolos de coerência de cache em sistemas multiprocessadores. Além disso, a idéia de uma estufa automática com sensores não era muito entusiasmada, uma vez que foi implementada cem vezes no arduino e no STM32, e os FPGAs não acrescentam nada de interessante às estufas.

E de repente - Eureka! E se realizarmos competições em jogos gráficos feitos em circuitos puros, sem programação, como nossos ancestrais fizeram jogos como Pin-Pong nos dias de Brezhnev e Carter. E conduzir não nos antigos chips K561, mas nos modernos Xilinx e Altera (isto é, Intel FPGA) e usando as mesmas tecnologias de design no nível de transferências de registros que os designers usam na Apple, Intel e SpaceX.

Em resumo, trataremos disso de 8 a 26 de julho em uma escola de verão em Zelenograd . Parte da escola, cujo plano será discutido neste post, é dedicada aos conceitos básicos de circuitos digitais, os primeiros passos na arquitetura e microarquitetura de processadores, bem como (mesmo que na maioria das vezes) computação gráfica de hardware.

Vou tentar levar minha filha estudante Elizabeth para Zelenograd como assistente se ela receber o passaporte e o visto russo a tempo. Elizabeth, sendo russo-ucraniano-japonês, fala apenas inglês. Aqui em Zelenograd e aprenda o básico do russo. E, ao mesmo tempo, ele ensinará a pronúncia correta em inglês dos instrutores que estão prontos para ajudar na escola (opcional no MIET, é possível no MIPT, MSU, MEPhI):



Hoje fiz um exemplo para a escola - o jogo do tanchiki. Tirei a maior parte do código de um exemplo do livro Designing Video Game Hardware in Verilog de Steven Hugg, 15 de dezembro de 2018 . Stephen Hugg mostrou o código em algum simulador bonito, mas não industrial. Eu acho que aprender nesse simulador é como cheirar flores em uma máscara de gás, então eu sintetizei o código e coloquei a configuração resultante em ferro real - uma placa chinesa barata da ZEOWAA . Para fazer isso, tive que reescrever a geração de varredura VGA, tornar o código mais sintetizado e remover algumas irregularidades metodológicas no uso de sinais de relógio. Postei o resultado no GitHub .

Aqui está o que parece no simulador Steven Hugg:



Aqui está o que parece na minha primeira aproximação, depois de combinar mecanicamente o wrapper para a placa, o gerador de varredura e o código Stephen, além de corrigir todas as pequenas coisas que não funcionam no Intel FPGA Quartus Lite Edition, síntese e preenchimento:



Mas o campo não será apenas sobre jogos com geração de varredura VGA, ROM, sprites etc. Também vamos cruzar isso com processadores. Comparar a implementação de jogos em máquinas de estado finito de hardware com a implementação de hardware e software. Para isso, usamos o núcleo do processador educacional schoolMIPS, descrito nas postagens de Stanislav Zhelnio no Habr e no wiki do schoolMIPS no GitHub .

Você pode até usar o núcleo de treinamento do schoolMIPS para demonstrar como criar marcadores nos processadores. Não discutiremos se existem marcadores no processador do computador em sua mesa, no telefone ou no carro. Vamos mostrar como eles podem ser projetados. Exemplo de marcador: uma máquina de estado de hardware monitora o conteúdo dos registros de arquitetura durante a execução do programa e, quando o texto "Céu sem nuvens acima de toda a Espanha" aparece neles, alterna o processador para o modo privilegiado. O texto pode vir de um programa do usuário, como um cliente de email.

É possível detectar tal marcador com antivírus de software? Não. O software não vê isso até acontecer. É possível detectar examinando o microcircuito sob um microscópio eletrônico? Não, existem bilhões de transistores em um processador industrial, mesmo no arduino - centenas de milhares. Mesmo se você tiver a fonte do processador em mãos, poderá ocultar muito em dezenas, centenas de milhares ou milhões de linhas no veril, especialmente se partes diferentes do processador cumprirem partes de um plano inteligente.

Você pode até organizar um concurso quando uma equipe cria um marcador e o outro o encontra.



Qualquer aluno que tenha completado três módulos de um curso teórico on-line da RUSNANO com uma visão geral orientada para a carreira dos métodos modernos de design de microcircuitos (tudo isso é gratuito e até com prêmios) pode participar da escola de verão em Zelenograd:

  1. Do transistor ao microcircuito
  2. O lado lógico dos circuitos digitais
  3. O lado físico dos circuitos digitais


Programa do curso preliminar - discussão sobre o assunto é bem-vinda:

Semana 1. Noções básicas de lógica digital.

Dia 1. Microcircuitos com pequeno grau de integração, exercícios com lógica combinatória.
Dia 2. Microcircuitos com pequeno grau de integração, exercícios com lógica seqüencial.
Dia 3. FPGA, exercícios com botões, interruptores, LED, indicador de sete segmentos.
Dia 4. FPGA, saída de formas geométricas para VGA.
Dia 5. FPGA, uma máquina de estado para jogar tanques, corridas ou Angry Birds.

Semana 2. Processador

Dia 1. Programação em linguagem assembly.
Dia 2. Processador schoolMIPS de um ciclo.
Dia 3. Integração do processador com a conclusão de formas geométricas em VGA.
Dia 4. Palestra sobre interrupções e multitarefa. Projeto individual - um jogo de vídeo programado no processador com saída para VGA.
Dia 5. Palestra sobre o transportador. Concorrência de projetos individuais.

Semana 3. Rádio programável. O programa de blocos consiste em três partes principais:

- Noções básicas de eletrodinâmica e propagação de ondas de rádio (parte teórica);
- O princípio de operação do caminho do transceptor (teoria e prática);
- Noções básicas de processamento de sinal digital - filtragem, análise espectral (teoria e prática).

Dia 1. Fundamentos teóricos da eletrodinâmica e propagação de ondas de rádio. O diagrama estrutural do caminho de transmissão, as funções dos componentes. Sinais (harmônicos, retangulares). Prática de sinal usando o NI Elvis.
Dia 2. Transferindo sinais para uma alta frequência. Justificativa matemática para transferência de frequência usando o Matlab. Exercício prático em transferência de frequência usando o NI Datex.
Dia 3. Amplificação e emissão de sinais. Pratique usando o NI Datex. Demonstração da diretividade das antenas.
Dia 4. Filtrando o sinal. Pratique usando o NI Datex. Filtragem de sinais digitais em Matlab
Dia 5. Transferindo sinais para uma frequência baixa. Pratique usando o NI Datex. Resumindo o material coberto, resumindo.

A propósito, muitos dos materiais de Stephen Hugg, dos quais olho para informações sobre sprites, etc., provêm do antigo processador de vídeo Texas Instruments TMS9918, localizado no computador japonês Yamaha MSX, que o governo Gorbachev importou para informatizar as escolas soviéticas. Quando eu era estudante, não era fácil nem mesmo gerenciar esse processador de vídeo a partir do programa assembler executado no processador principal Zilog Z80 e projetar esse processador de vídeo em geral. Devido à inovação na tecnologia de automação de design eletrônico (EDA), isso se tornou possível para os estudantes modernos e é até útil para ensinar o design de chips modernos (livro de Stephen Hagg - 2018).

Mas para os alunos soviéticos agora de cabelos grisalhos - você se lembra deste jogo na Yamaha?


Sobre a automação de projetos eletrônicos. Além do acampamento para crianças em idade escolar, aqui Elizabeth e eu estamos ajudando a realizar um seminário sobre tópicos semelhantes para adultos, mas não em Zelenograd, mas em Las Vegas, na Design Automation Conference - DAC , e não com educacional, mas com processadores industriais, e não com gráficos e com um coprocessador para AI. Esse seminário é um próximo passo natural para os alunos que estudam em Zelenograd e estudam no MIET, MEPhI, MIPT, HSE MIEM, Universidade Estadual de Moscou, ITMO, LETI, SSAU, NSTU e outras universidades onde eles ensinam elementos de rota de design de microcircuitos RTL to-GDSII, laboratórios de arquitetura e síntese de computadores para FPGAs / FPGAs.

Source: https://habr.com/ru/post/pt453760/


All Articles