
De 2 a 5 de outubro, uma escola sobre os conceitos básicos de circuitos digitais, arquitetura e uso do Verilog foi realizada em Novosibirsk. O nome formal do evento: uma escola para estudantes de graduação e pós-graduação, realizada na Universidade Técnica do Estado de Novosibirsk, no âmbito da XIV Conferência Científica e Técnica Internacional "Problemas reais da instrumentação eletrônica" APEP-2018, realizada sob os auspícios do IEEE.
Este evento foi direcionado principalmente para aqueles que:
- leia o livro Digital Circuitry and Computer Architecture, D. Harris, S. Harris (também conhecido como H&H ou Harris-i-Harris);
- Ele quer colocar seu conhecimento em prática, mas não entende que equipamento e software são necessários para isso e não sabe como usá-lo;
- é um estudante sênior ou de pós-graduação e espera-se disseminar o conhecimento adquirido (realizar oficinas, trabalhos de laboratório etc. na universidade).
Anúncio: Uma escola semelhante é planejada de 6 a 9 de novembro no Instituto de Tecnologias Espaciais e de Informação da Universidade Federal da Sibéria (IKIT SFU). A escola será liderada por Alina Leskovskaya, uma estudante de graduação, engenheira de design da AIS IS com o nome M.F. Reshetnev, bem como seus colegas: Dmitry Vlasov e Boris Dudkin. Contato para inscrição: leskovskayaav@yandex.ru
Se a sua posição parecer pelo menos "Desenvolvedor FPGA Júnior", com alta probabilidade, você não aprenderá nada de novo nesta publicação. Para todos os outros, bem-vindo ao gato.
Por que isso é necessário?
Ao mesmo tempo (de volta à universidade), o autor dessas linhas estudou a arquitetura de um computador sem usar Verilog ou VHDL: você chega a uma palestra durante a qual uma caixa preta chamada “Computador” é colocada em muitas pequenas caixas pretas: “processador”, “ memória ”etc. Mas eles ainda permanecem caixas pretas: você não pode "subir" por dentro, não pode "mudar" o dispositivo. O curso termina, mas você ainda sente que está trabalhando com "essências mágicas de uma estrutura interna obscura". Na melhor das hipóteses, você pode configurá-los (programa). Não há imagem holística do mundo digital na minha cabeça. Não há entendimento de como isso funciona por dentro. Esse entendimento que distingue um bom engenheiro de "passou".
Para obter uma imagem completa, é necessário poder alterar os dispositivos estudados e criar os seus próprios. E aqui a Verilog (ou VHDL) vem para o resgate, software de simulação e placas de depuração baratas com FPGAs para verificação de hardware. Um processador simples ( schoolMIPS ) pode ser escrito em uma ou duas noites. E isso não é ciência de foguetes, nenhuma mágica.
Tendo em mente uma imagem holística do mundo digital, não é absolutamente necessário conectar sua vida ao desenvolvimento de microcircuitos. Mas acredito que as pessoas que realmente entendem como a “caixa de leitura mágica” funciona não escreverão programas lentos terríveis . Vou desenhar um paralelo: um martelo e uma broca no armário não fazem de você um carpinteiro. Ao mesmo tempo, você é capaz de conduzir uma unha, entende por que essas ferramentas são necessárias, em quais casos vale a pena usar um martelo, por que você não deve fazer um microscópio e quando entrar em contato com um profissional.
Programa escolar
O trabalho na escola era orientado para a prática. Colocar todas as questões descritas em H&H em quatro dias de teoria e prática é muito difícil. Portanto, esse objetivo não foi definido. Toda a teoria foi dada exclusivamente na quantidade necessária para a prática. Portanto, não foi fácil para aqueles que não haviam aberto o livro antes.
1º dia
• Idioma para descrição do hardware e por que é necessário
• O que é FPGA
• Fundamentos da lógica combinacional
• Elementos lógicos básicos e sua descrição no Verilog
• Ambiente de teste (Testbench)
• Verificação da operação do circuito combinacional usando um simulador (Icarus Verilog, Modelsim)
• Síntese do circuito combinado, Intel Quartus e Xilinx Vivado GUI
• Para que é sintetizado o esquema de combinação quando implementado nos FPGAs?
• Programando uma placa de depuração
• Verificação do projeto no quadro de depuração
• Fundamentos do Makefile e trabalho no modo não-projeto
• Multiplexador e métodos para sua descrição no Verilog HDL
• Desmultiplexador e métodos para sua descrição no Verilog HDL
• Estudo de caso: trabalhando com indicadores de 7 segmentos
Compilação condicional no Verilog HDL
Dia 2
• Circuitos combinados e tempo de propagação do sinal
• Circuitos de relógio e série
• Vários tipos de tarefas no Verilog HDL
• D-trigger e sua implementação no Verilog em várias variações: redefinições assíncronas e síncronas, porta de permissão de gravação
• Qual é o circuito seqüencial sintetizado ao implementar com base no FPGA
• Cadastro e sua implementação
• Contador e sua implementação
• Disciplina dinâmica e estática
• Metastabilidade e sincronizador
• Trava indesejada, consequências e maneiras de evitar
• Máquinas de estado finito (Mura e Miles)
• Apresentação da máquina na forma de diagramas de transição
• Implementação da máquina no Verilog HDL
• Abordagem geral para o design de autômatos complexos
• Implementação passo a passo do módulo de interface do sensor de distância ultrassônico no Verilog
Dia 3
Trabalho independente. Implementação do módulo de interface de teclado 4x4 para FPGA
Trabalho independente. Implementação da calculadora FPGA
Dia 4
• Noções básicas de pipelining
Arquitetura e microarquitetura
• Fundamentos de desenvolvimento no MIPS assembler
• Trabalhar com o simulador MARS
• Projetar o processador de ciclo único mais simples no exemplo do schoolMIPS
• Caminho de dados e dispositivo de controle
• Compilando o programa, iniciando o processador no simulador e na placa de depuração
Trabalho independente. Adicionando suporte para novas instruções ao processador
Materiais
Todos os materiais do curso (slides, scripts, fontes, literatura) estão disponíveis online ( github , materiais adicionais ). Os slides são projetados em um estilo duvidoso, quando há muito texto neles, na esperança de que isso facilite o conhecimento de materiais off-line.
Tarefas práticas e independentes foram realizadas principalmente nas placas- mãe Terasic DE10-Lite com o Intel MAX10 FPGA na placa. Também tivemos o Digilent Nexys 4 DDR , que demonstrou o trabalho com o Xilinx Vivado como exemplo. Com raras exceções, os exemplos são preparados de tal maneira que você pode usar o DE10-Lite e o Nexys 4 DDR. A escolha em favor do trabalho com placas Intel FPGA se deve aos seguintes motivos:
- O DE10-Lite é mais barato que o Nexys 4 DDR, o que significa que ele está disponível para mais estudantes se eles quiserem continuar experimentando em casa ou como parte do processo de aprendizagem;
- Os mesmos projetos simples nos quais o curso é construído são montados usando o Intel Quartus muitas vezes mais rápido que o Xilinx Vivado. Com todas as minhas simpatias por Vivado, tivemos apenas 4 dias.
E o vídeo
Quando o evento foi anunciado, comecei a receber solicitações para organizar transmissão ou gravação de vídeo. Infelizmente, isso não se encaixava no formato da organização da escola que eu escolhi. Nós não tivemos nenhuma palestra como tal: alguns slides e depois praticar. Há perguntas - estamos analisando, um diálogo constante, piadas engraçadas e movendo-se pela platéia. Escolhendo entre trabalhar na câmera e criar um contato produtivo com o público, escolhi o segundo. Como isso aconteceu, cabe aos alunos julgar. Por favor, trate com compreensão.
Eu também quero
Você é um professor interessado em dar conhecimento aos alunos? Ou você é um aluno que deseja obter esse conhecimento, independentemente de os professores fornecerem ou não? Nesse caso, mesmo que você não possa participar do evento, possui todas as informações necessárias para o desenvolvimento independente do assunto e / ou a construção / modificação do curso de treinamento:
- O livro "Circuitos digitais e arquitetura de computadores", disponível gratuitamente em formato eletrônico ( link ), ou pode ser adquirido em papel ( link ). É fácil de ler, leva como ficção. Ele tem um limite baixo de entrada - não é necessário algum conhecimento especial para começar a lê-lo. Recentemente, foi lançada uma adição na arquitetura ARM ( link );
- Exemplos de código estão disponíveis para o livro, bem como slides (versões em inglês e russo) que podem ser usados para criar seu próprio curso ( link );
- Placas de depuração baratas: O Terasic DE10-Lite é a melhor escolha, em minha opinião , em termos de relação preço / qualidade, US $ 55 para quem tem status acadêmico comprovado (excluindo a entrega). Placa ZEOWAA - quando você precisa economizar em tudo. A opção está funcionando, mas pode haver problemas com o firmware devido ao cabo USB de baixa qualidade que acompanha o kit;
- Materiais da escola atual ( github , materiais adicionais ), além de outros eventos organizados pela YuriPanchul ( silicon-russia.com , slides e muito mais ).
Por favor, não espere que alguém vá até você e faça o "bem". Seu conhecimento, se você é um estudante, e o conhecimento de seus alunos, se você é um professor, depende 99% de seus esforços.
O que eu suportei por mim mesmo
- Em 4 dias, você pode colocar coisas básicas (para quem não leu H&H) ou algo mais avançado (para quem já leu o livro). Melhor não combinar.
- Para quem ainda não leu o livro e não possui experiência com FPGAs, é aconselhável iniciar a prática de trabalhar com microcircuitos com um pequeno grau de integração, e somente então fornecer FPGAs. Isso é muito importante porque permite que você reconstrua rapidamente o cérebro de um modo relativamente familiar de "programação" para o modo de "circuito". Isso já foi escrito por Yuri ( link ). Infelizmente, perdemos esse estágio.
Agradecimentos
- o iniciador do evento e o organizador do NSTU é Vladimir Makukha;
- manter a escola em sua forma atual seria impossível se, há alguns anos, um grupo de entusiastas não tivesse assumido a tradução de circuitos digitais e arquitetura de computadores;
- minha chegada a Novosibirsk não seria possível sem o apoio de iniciativas educacionais existentes na IVA Technologies ;
- conduzir uma escola era uma grande questão quando se descobriu que os fundos alocados à universidade para a compra de painéis de depuração estavam em algum lugar nas profundezas da burocracia. As placas foram coletadas "com o mundo em um fio". Mikhail Shadrin (NSU) emprestou vários Nexys 4 DDR. Algumas placas foram compradas por estudantes de pós-graduação que vieram estudar. Vários conselhos terásicos foram alocados por Alexander Romanov (MIEM NRU HSE). Mas ainda não havia pranchas suficientes. A YuriPanchul ajudou, depois da qual Mikhail Shupletsov (Universidade Estadual de Moscou) e eu rapidamente organizamos a compra. E os caras da Terasic, sem demora, organizaram a remessa o mais rápido possível.
- Dmitry Vlasov, Anton Kulichkov e Valery Barmin ajudaram a conduzir a escola - nos conhecemos há um ano em Tomsk ( link ), e este ano eles ajudaram os alunos com teoria e prática.
- muito obrigado aos alunos - sem o seu desejo de aprender coisas novas e sem a sua persistência, não teríamos conseguido.
Comentários da escola
Anna Kazmina
Por 4 dias, mergulhámos tanto na tecnologia de desenvolvimento baseada em FPGA que mudou completamente minha ideia de usar FPGAs no mundo moderno em produção real. Anteriormente, no processo educacional, usamos FPGAs apenas para acelerar a solução de problemas, mas agora aprendemos a usar microcontroladores para o desenvolvimento de microarquitetura <...> Esta escola realmente me interessou tanto que pretendo desenvolver nessa direção. Mais eventos desse tipo!
Olesya Radchenko
Muito obrigado à equipe, graças à qual uma escola semelhante foi realizada na NSTU. Obrigado pela oportunidade de "mergulhar de cabeça" na programação do FPGA, para aprender como outros desenvolvedores trabalham com o Quartus, ModelSim e também para se familiarizar, por exemplo, com o Vivado. Durante esses quatro dias, consolidei meu antigo conhecimento e aprendi muitas coisas novas, por exemplo, sobre o MIPS. <...> posso aplicar o conhecimento adquirido em meu trabalho, que foi recentemente associado à programação FPGA
Vladislav Mayer
Talvez eu queira observar que, devido ao tempo limitado, você conseguiu fornecer informações suficientes para a compreensão inicial do material. Eu, pessoalmente, tinha algum conhecimento básico da linguagem de programação de hardware. Mas o principal escape para mim é uma mudança de perspectiva da programação em geral. Agora, analiso as coisas anteriormente familiares de um ângulo diferente e tenho uma idéia de como implementar esses ou aqueles módulos de maneira diferente.
Anton Yupashevsky
Nestes quatro dias, observei a programação FPGA de uma maneira completamente diferente, na linguagem de descrição de hardware Verilog e, atualmente, usando FPGAs. O nível inicial de conhecimento em FPGAs e circuitos digitais obtive mais 4 anos de estudo na universidade e com
não houve problemas com os esquemas combinacionais e seqüenciais mais simples, mas
apareciam cada vez mais complexos e interessantes e, no final, nós mesmos programamos o kernel
MIPS Uma enorme vantagem desta escola foi uma enorme quantidade de prática.
Mikhail Kireev
Durante a escola “da física ao chip” na APEP-2018, os dogmas foram descritos ao trabalhar com a Verilog:
Você deve dominar o livro de Harris. Existem muitas armadilhas neste tópico ao escrever código - blocos absolutamente idênticos (do ponto de vista da lógica) podem ser sintetizados de diferentes maneiras. <...> A simulação dará muito mais possibilidades no desenvolvimento do que a síntese - preste mais atenção ao Waveform. Nas atividades profissionais, você deve trabalhar com várias linhas FPGA de diferentes fabricantes, <...> Economize seu tempo no futuro (escrevendo scripts e make-files). Do ponto de vista prático, vários padrões seqüenciais e combinacionais básicos foram considerados; transportador, teclado 4x4, exemplos de máquinas de estado, a arquitetura MIPS mais simples e outras tarefas.
Z.Y. Eu descobri essa escola e me inscrevi 12 horas antes de seu início. Não me arrependi de participar desse evento, embora a leitura do livro de Harris tivesse aumentado o desempenho.