Treinamento online e ao vivo FPGA Macnica DHW
- Revisão dos conceitos de Lógica Digital utilizados no FPGA;
- Introdução à arquitetura de Lógica Programável Intel FPGA (Intel/Altera);
- Construções em Verilog necessárias para descrever a lógica no FPGA;
- Funcionalidades da ferramenta Quartus utilizada para configurar o FPGA com sua descrição em Verilog;
- Laboratórios práticos aplicando os conceitos aprendidos no Kit DE10-Lite; (incluso no Treinamento)
- Boas práticas para projetos em FPGA: Como descrever lógica da forma mais correta e robusta;
- Conceitos básicos de Timing para garantir a estabilidade do seu projeto;
- Construções mais utilizadas em projetos síncronos para lógica programável;
- Ferramentas de depuração para dispositivos Intel FPGA;
- Bônus: Conheça o Qsys! Ferramenta que permite montar um sistema com microcontrolador e periféricos em minutos.
Ementa detalhada
- Apresentação do FPGA
Revisão sobre lógica digital, contextualizando o FPGA
Introdução sobre arquitetura de processadores, comparando com o funcionamento do FPGA
Como são implementadas as portas lógicas no FPGA
Como implementar as portas lógicas em Verilog através de operadores
Arquitetura do FPGA: registradores, multiplicadores, memória, hard IPs (controlador PCIe, DDR, transceivers, etc)
- Pinos de entrada e saida, no FPGA, Verilog e Quartus
Recursos disponíveis nos pinos de entrada e saída do FPGA
Implementação em Verilog dos pinos
Mapeando os pinos do Verilog no FPGA através do Quartus: Pin Planner
Apresentação da ferramenta Quartus: principais janelas, abas, etc
Atribuições em Verilog, mapeamento de sinais internos para as entradas e saídas
Apresentação do Kit DE10-Lite: principais funcionalidades e onde obter mais recursos
Projeto 1, parte 1: Criar uma descrição de hardware em Verilog, mapear suas entradas e saídas nos pinos do FPGA, conectando botões em LEDs.
- Compilação do Quartus
Processo de compilação no Quartus
Mensagens de compilação
Formas de visualização gráfica dos resultados da compilação
Projeto 1, parte 2: Compilar o projeto criado e analisar os resultados da compilação
- Configuração do FPGA: Como funciona e como fazer
Formas de configuração suportadas pelo FPGA
Como configurar o FPGA utilizando o Quartus Programmer
Projeto 1, parte 2: Configurar o FPGA com o projeto criado e observar o comportamento
- Criação e configurações de projetos no Quartus
Passo a passo para criação de um novo projeto
Importação de configurações de projetos existentes
Configurações de projeto: arquivos e bibliotecas, opções de compilação, etc.
- Interconexões e constantes em Verilog
Interconexões: conceitos e sintaxe
Constantes numéricas: formas de representação
Projeto 2: Criar um novo projeto, importar configurações padrão para o Kit, fazer incrementos no Verilog (multiplexadores, interconexões, constantes). Compilar, visualizar o resultado, configurar o FPGA e testar
- Processos explícitos em Verilog: Always/Entendendo a simulação vs. compilação para garantir a implementação correta do hardware no FPGA
Processos combinacionais: conceito de processos, lista de sensibilidade, sintaxe em Verilog
Funcionamento da simulação (deltas/ciclos de simulação, agendamento, etc)
Como a compilação gera hardware a partir do Verilog e comparação com a simulação
Como garantir que o resultado da compilação seja equivalente ao resultado da simulação
Construções em Verilog utilizadas dentro dos processos combinacionais: if, case, loop
Projeto 3: Adicionar um processo explícito no Verilog descrevendo a mesma lógica já implementada. Compilar, visualizar o resultado, configurar o FPGA e testar.
- Registradores e clocks: implementação em Verilog e particularidades para uso no FPGA
Funcionamento de um registrador genérico e dos registradores específicos do FPGA
Boas práticas para uso de registradores em FPGA para garantir o correto funcionamento
Implementação de registradores em Verilog
Boas práticas para descrição dos registradores do FPGA em Verilog
Projeto 4: Implementar um contador síncrono com reset e enable, com a saída conectada nos LEDs. Compilar, visualizar o resultado, configurar o FPGA e testar.
- Conceitos de análise de Timing e sua aplicação no FPGA/ Boas práticas para o correto funcionamento no FPGA
Informações sobre frequência máxima nos relatórios de compilação
Importância da análise de timing
Conceitos necessários para compreender os requisitos e análise de timing
Definição de meta-estabilidade, quando ocorre e como evitar
Sentenças básicas para definição de restrições de timing em SDC
Projeto 5: Adicionar no design as estruturas recomendadas para evitar problemas de timing. Criar um arquivo SDC para o projeto. Compilar, visualizar o resultado, configurar o FPGA e testar.
- Depuração do sistema em tempo de execução usando o analisador lógico embarcado SignalTap
Instanciação do SignalTap no projeto e configuração da aquisição de dados
Uso da ferramenta para depuração
Projeto 6: Adicionar um detector de borda no sinal de enable. Instanciar o SignalTap, compilar, e iniciar a depuração. Observar possíveis problemas utilizando o SignalTap.
- Trabalhando com níveis de hierarquia no projeto
Conceito de projeto hierárquico
Sintaxe para instanciação de módulos em Verilog
Conceito de parametrização de módulos e sintaxe em Verilog
Biblioteca de IPs gratuitos e comerciais do Quartus, IP Catalog
Projeto 7: Instanciar uma memória no projeto do contador, a partir do IP Catalog. Instanciar um conversor binário para o display de 7 segmentos. Compilar, visualizar o resultado, configurar o FPGA e testar.
- Depuração do sistema em tempo de execução usando editor de memória ISMCE e a ferramenta para monitoramento e atuação do ISSP
Como funciona o monitoramento e edição de memória em tempo de execução e como habilitar
Utilização da ferramenta In-Sytem Memory Content Editor (ISMCE) para acessar a memória interna do FPGA em tempo de execução
Instanciação do componente In-System Sources and Probes (ISSP) no projeto
Utilização do ISSP para monitorar e atuar em sinais internos do FPGA em tempo de execução
Projeto 8: Habilitar ISMCE, instanciar ISSP. Compilar, configurar o FPGA e depurar o sistema em tempo de execução utilizando estas ferramentas.
- Trabalhando com máquinas de estados finitos (FSM)
Conceito de máquinas de estados
Modelagem e implementação de uma máquina de estados em Verilog
Diferentes arquiteturas de máquinas de estados, vantagens e desvantagens de cada uma
Projeto 9: Descrever em Verilog uma máquina de estados para implementar um debouncer.
- Conceito de simulação e testbench / Construções em Verilog para simulação
Conceito e utilidade da simulação e testbench
Construções em Verilog úteis para simulação
Implementação de um testbench em Verilog
Projeto 10: Implementação de um testbench em Verilog
- Simulação de módulos em Verilog utilizando a ferramenta ModelSim
Apresentação da ferramenta ModelSim
Procedimento para simulação utilizando o ModelSim
Funcionalidades básicas do ModelSim
Projeto 11: Criar um projeto do ModelSim para simulação da máquina de estados implementada. Realizar a simulação e analisar os resultados.
- Extra: Conheça o Qsys! Ferramenta que permite montar um sistema com microcontrolador e periféricos em minutos
Apresentação da ferramenta Qsys e suas principais funcionalidades.
- Em Breve: A Macnica DHW irá oferecer a continuidade do Treinamento, onde será abordado exclusivamente o Qsys e as ferramentas de software para desenvolvimento com o processador Nios, que pode ser embarcado dentro do FPGA utilizando a ferramenta do Qsys.
PARA SABER MAIS ENTRE EM CONTATO CONOSCO!
Fone: (48) 3225-5052