Mudanças entre as edições de "DLP29007-2019-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 168: Linha 168:
 
*Experimento:
 
*Experimento:
 
** [[Laboratórios_com_Altera_NIOS2 | Laboratório NIOS II]]
 
** [[Laboratórios_com_Altera_NIOS2 | Laboratório NIOS II]]
 +
 +
 +
=Aula 01/11/2019 – Introdução ao NIOS II (cont.) =
 +
 +
==Roteiro para os impacientes:==
 +
 +
'''OBS.: Você deve fazer pelo menos uma vez o roteiro [[Laboratórios_com_Altera_NIOS2 | Laboratório NIOS II]], pois lá existe muito conteúdo teórico interessante.'''
 +
 +
*Abra "Tools -> Platform Designer"
 +
*Configure o dispositivo do projeto. Família: Cyclone IV; Device: EP4CE115F29C7.
 +
*Verifique se o "clk_0" está setado para 50 MHz
 +
*Adicione os seguintes componentes com os seguintes nomes (o nome precisa estar exatamente igual).
 +
** Obs.: Conecte os clocks e resets de todos os blocos no clk e clk_reset do "clk_0".
 +
 +
1- On-Chip Memory (RAM or ROM):
 +
  Tamanho: 20480
 +
  Nome: onchip_mem
 +
 +
2- Nios II (Classic) Processor:
 +
  Selecione: Nios II/s
 +
  Hardware multiplication type: None
 +
  Nome: cpu
 +
  Finalize
 +
  Conecte o clk e o reset_n
 +
  Conecte as portas data_master e instruction_master na porta s1 da "onchip_mem"
 +
  Abra as configurações da "cpu" e defina o seguinte:
 +
    - Para o Reset vector e Exception vector a memória "onchip_mem.s1"
 +
    - Cache de 2Kbytes
 +
 +
3- JTAG UART
 +
  Nome: jtag_uart
 +
  avalon_jtag_slave <= data_master ("cpu")
 +
 +
4- Interval Timer
 +
  Nome: sys_clk_timer
 +
  s1 <= data_master
 +
 +
5- System ID Peripheral
 +
  Nome: sysid
 +
  control_slave <= data_master
 +
 +
6- PIO (Parallel I/O)
 +
  Nome: led_pio
 +
  s1 <= data_master
 +
  Exporte a porta external_connection
 +
 
 +
*Defina os endereços base: "System menu -> Assign Base Addresses"
 +
*Selecione as IRQs e defina IRQ Timer = 1 e IRQ JTAG =16
 +
*Clique em "Generate HDL ...", selecione VHDL, clique "Generate"
 +
*Feche o "Platform Designer"

Edição das 15h52min de 1 de novembro de 2019

Dispositivos Lógicos Programáveis 2: Diário de Aula 2019-2


Links Úteis

Materiais de Aula

Aula 29/07/2019 – Apresentação

  • Apresentação do professor.
  • Apresentação da disciplina.
  • Projetos com FPGA

Aula 02/08/2019 – Complexidade e Projeto de Sistemas Digitais


Aula 09/08/2019 – Complexidade e Projeto de Sistemas Digitais (cont.)


Aula 12/08/2019 – Não Houve Aula


Aula 16/08/2019 – Síntese do VHDL



Aula 23/08/2019 – Eficiência de Circuitos Combinacionais

  • Leitura recomendada:
    • Capítulo 7 do livro do Chu

Aula 26/08/2019 – Eficiência de Circuitos Combinacionais


Aula 30/08/2019 – Eficiência de Circuitos Sequenciais

  • Leitura recomendada:
    • Capítulo 8 e 9 do livro do Chu
  • SDC:

create_clock -name CLK50MHz -period 50MHz [get_ports {clk}] derive_pll_clocks derive_clock_uncertainty </syntaxhighlight>

Aula 02/09/2019 – Eficiência de Circuitos Sequenciais (cont.)

  • SDC:

create_clock -name CLK50MHz -period 50MHz [get_ports {clk}] derive_pll_clocks derive_clock_uncertainty </syntaxhighlight>

Aula 09/09/2019 – Máquinas de Estado

  • Leitura recomendada:
    • Capítulo 10 do livro do Chu

Aula 13/09/2019 – Máquinas de Estado (cont.)

  • Leitura recomendada:
    • Capítulo 10 do livro do Chu

Aula 20/09/2019 – Apresentação A2

  • Arquivo Inicial
  • Resolver os problemas utilizando as técnicas estudadas:
    • Verificar a possibilidade de compartilhamento de operador e funcionalidade. Aplicar "time sharing" onde for possível.
    • Resolver problemas de reset assíncrono e manipulação de clock.
  • Contador Principal:
    • Usar o PLL para diminuir o tamanho do contador.
    • Verificar a possibilidade da substituição de contadores pelo contador LFSR (ler seção 9.2.3)
  • FSM
    • Implementar máquina de estado com a funcionalidade de despertar e soneca.
    • Usar a técnica look-ahead buffer para sincronizar a saída.
  • Relatório:
    • Diagramas de hardware de antes e depois da mudança.
    • Explicar as mudanças referenciando as bases teóricas utilizadas.
    • Diagrama ASM da máquina de estado
    • Tabelas de comparação discutindo resultados de área e frequência.
    • Apresentar as estratégias de testes e apontar como replicar os resultados.
    • Enviar o QAR com projeto completo (*.VHD, *.VHT e/ou *.DO).
  • O trabalho deve funcionar da DE2-115
  • Apresentação e defesa pela dupla
  • Data: 13/10


Aula 23/09/2019 – Desenvolvimento A2

Aula 27/09/2019 – Desenvolvimento A2

Aula 04/10/2019 – Desenvolvimento A2

Aula 07/10/2019 – Desenvolvimento A2

Aula 11/10/2019 – Desenvolvimento A2

Aula 18/10/2019 – Desenvolvimento A2

Aula 21/10/2019 – Apresentação A2

Aula 25/10/2019 – Não houve Aula

Aula 29/10/2019 – AULA EXTRA: Introdução ao NIOS II

  • Objetivo:
    • Entender o método para desenvolvimento de software do NIOS II


Aula 01/11/2019 – Introdução ao NIOS II (cont.)

Roteiro para os impacientes:

OBS.: Você deve fazer pelo menos uma vez o roteiro Laboratório NIOS II, pois lá existe muito conteúdo teórico interessante.

  • Abra "Tools -> Platform Designer"
  • Configure o dispositivo do projeto. Família: Cyclone IV; Device: EP4CE115F29C7.
  • Verifique se o "clk_0" está setado para 50 MHz
  • Adicione os seguintes componentes com os seguintes nomes (o nome precisa estar exatamente igual).
    • Obs.: Conecte os clocks e resets de todos os blocos no clk e clk_reset do "clk_0".

1- On-Chip Memory (RAM or ROM):

 Tamanho: 20480
 Nome: onchip_mem

2- Nios II (Classic) Processor:

 Selecione: Nios II/s
 Hardware multiplication type: None
 Nome: cpu
 Finalize
 Conecte o clk e o reset_n
 Conecte as portas data_master e instruction_master na porta s1 da "onchip_mem"
 Abra as configurações da "cpu" e defina o seguinte:
   - Para o Reset vector e Exception vector a memória "onchip_mem.s1"
   - Cache de 2Kbytes

3- JTAG UART

 Nome: jtag_uart
 avalon_jtag_slave <= data_master ("cpu")

4- Interval Timer

 Nome: sys_clk_timer
 s1 <= data_master

5- System ID Peripheral

 Nome: sysid
 control_slave <= data_master 

6- PIO (Parallel I/O)

 Nome: led_pio
 s1 <= data_master
 Exporte a porta external_connection
 
  • Defina os endereços base: "System menu -> Assign Base Addresses"
  • Selecione as IRQs e defina IRQ Timer = 1 e IRQ JTAG =16
  • Clique em "Generate HDL ...", selecione VHDL, clique "Generate"
  • Feche o "Platform Designer"