DLP29007-2019-2

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

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.)

Aula 04/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"


Aula 08/11/2019 – Modificando o sistema - Exercício 1

  • Exercício 1:
    • Adicione 8 entradas e ligue nas chaves da DE2-115
    • Utilizando os conceitos de ponteiros relembrados na última aula, implemente um programa simples que escreva nas chaves os estados das chaves.


Aula 18/11/2019 – Modificando o sistema - Exercício 1 (cont.)

  • system.h: fornece endereços base gerados automaticamente. Exemplo:
  1. define SW_PIO_BASE 0x11020

</syntaxhighlight>

  • alt_types.h: fornece tipos de dados de baixo nível explicitamente definidos.

typedef signed char alt_8; typedef unsigned char alt_u8; typedef signed short alt_16; typedef unsigned short alt_u16; typedef signed long alt_32; typedef unsigned long alt_u32; typedef long long alt_64; typedef unsigned long long alt_u64; </syntaxhighlight>

  • io.h: fornece macros de leitura e escrita aprimoradas para registro de E/S.
    • IORD(base, offset): lê um registro de E/S com o endereço base e o deslocamento especificados.
    • IOWR(base, offset, data): escreve em um registro de E/S com o endereço base especificado e o deslocamento.

Aula 22/11/2019 – Análise das Correções

  • Foi feita a análise individual de cada grupo para as correções da A2.

Aula 29/11/2019 – Modificando o Sistema e A3

  • Exercício 2:

A3 - Nios II e DE2-115

  • Temas selecionados por Sorteio em sala de aula:
    • G1 - Alisson e Guilherme: USB Paintbrush
    • G2 - Rafael e Suyan: SD Card Demonstration
    • G3 - Allex, Ana e Douglas: PS/2 Mouse demonstration
    • G4 - Felipe: Audio Recording and Playing
    • G5 - Theodor: Karaoke Machine
  • 06/12 Apresentação da demo:
    • Apresentação demonstração funcionando.
    • Apresentar as características dos componentes com os quais a FPGA interage na demonstração. Por exemplo, interfaces, funcionalidades, etc.
    • Propor modificação
  • 13/12 Apresentação da modificação:
    • Fazer uma pequena modificação no hardware e no software e apresentar para a turma

Aula 02/12/2019 – Apoio A3

Aula 06/12/2019 – Apresentação Demonstração

Aula 13/12/2019 – Apresentação da modificação

  • Ordem de apresentação:
    • G1 – G3 – G5 – G4 – G2