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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(24 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 7: Linha 7:
 
*[[DLP2-EngTel_(Plano_de_Ensino)| Plano de Ensino]]
 
*[[DLP2-EngTel_(Plano_de_Ensino)| Plano de Ensino]]
 
* [http://sigaa.ifsc.edu.br/ Cronograma de Aulas]: Conteúdo Programado no Portal SIGAA
 
* [http://sigaa.ifsc.edu.br/ Cronograma de Aulas]: Conteúdo Programado no Portal SIGAA
 +
*[http://docente.ifsc.edu.br/roberto.matos/dlp2_public/adm/notas_dlp2_2019-2.pdf Notas]
 +
  
 
== Links Úteis ==
 
== Links Úteis ==
Linha 105: Linha 107:
 
*[http://docente.ifsc.edu.br/roberto.matos/dlp2_public/material/qts_qii51006_marked.pdf Prática Recommended Design Practices - Marcado]
 
*[http://docente.ifsc.edu.br/roberto.matos/dlp2_public/material/qts_qii51006_marked.pdf Prática Recommended Design Practices - Marcado]
  
=Aula 09/10/2019 –  Máquinas de Estado=
+
=Aula 09/09/2019 –  Máquinas de Estado=
 
*Leitura recomendada:
 
*Leitura recomendada:
 
**Capítulo 10 do livro do Chu
 
**Capítulo 10 do livro do Chu
Linha 112: Linha 114:
 
** [http://docente.ifsc.edu.br/roberto.matos/dlp2_public/material/dlp29007-lecture05-fsm.pdf Lecture 05: Finite State Machines: Principle and Practice]
 
** [http://docente.ifsc.edu.br/roberto.matos/dlp2_public/material/dlp29007-lecture05-fsm.pdf Lecture 05: Finite State Machines: Principle and Practice]
  
=Aula 13/10/2019 –  Máquinas de Estado (cont.)=
+
=Aula 13/09/2019 –  Máquinas de Estado (cont.)=
 
*Leitura recomendada:
 
*Leitura recomendada:
 
**Capítulo 10 do livro do Chu
 
**Capítulo 10 do livro do Chu
Linha 121: Linha 123:
 
*Experimentos Máquinas de Estado:
 
*Experimentos Máquinas de Estado:
 
** [http://docente.ifsc.edu.br/roberto.matos/dlp2_public/pratica_cap10.zip FSM Memory Controller]
 
** [http://docente.ifsc.edu.br/roberto.matos/dlp2_public/pratica_cap10.zip FSM Memory Controller]
 
  
 
=Aula 20/09/2019 –  Apresentação A2=
 
=Aula 20/09/2019 –  Apresentação A2=
Linha 130: Linha 131:
  
 
*Contador Principal:
 
*Contador Principal:
*Usar o PLL para diminuir o tamanho do contador.
+
**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)
+
**Verificar a possibilidade da substituição de contadores pelo contador LFSR (ler seção 9.2.3)
  
 
*FSM
 
*FSM
Linha 147: Linha 148:
 
* O trabalho deve funcionar da DE2-115
 
* O trabalho deve funcionar da DE2-115
 
* Apresentação e defesa pela dupla
 
* Apresentação e defesa pela dupla
* Data: 06/10
+
* 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
 +
 
 +
*Experimento:
 +
** [[Laboratórios_com_Altera_NIOS2 | Laboratório 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ó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"
 +
 
 +
 
 +
=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.) =
 +
** [http://docente.ifsc.edu.br/roberto.matos/dlp2_public/nios2_quartus2_project.qar QAR Base]
 +
 
 +
*'''system.h''': fornece endereços base gerados automaticamente. Exemplo:
 +
:<code>
 +
#define SW_PIO_BASE 0x11020
 +
</syntaxhighlight>
 +
 
 +
*'''alt_types.h''': fornece tipos de dados de baixo nível explicitamente definidos.
 +
:<code>
 +
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:
 +
** Adicione o LCD no sistema.
 +
** Verifique a documentação da [ftp://ftp.intel.com.br/Pub/fpgaup/pub/Intel_Material/16.0/University_Program_IP_Cores/Audio_Video/Character_LCD.pdf biblioteca do LCD da Intel], inicialize o display e escreva algo nele.
 +
 
 +
== 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
 +
 
 +
*Material:
 +
**[https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=163&No=502&PartNo=4 Site Terasic]
 +
 
 +
* 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 =
 +
*Ordem de apresentação:
 +
** G3 – G4 – G1 – G2 – G5
 +
*Slides
 +
**G4 - Felipe - [https://wiki.sj.ifsc.edu.br/images/8/81/Atividade-3_DLP2.pdf Audio Recording and Playing]
 +
 
 +
=Aula 13/12/2019 – Apresentação da modificação =
 +
*Ordem de apresentação:
 +
** G1 – G3 – G5 – G4 – G2

Edição atual tal como às 17h02min de 6 de dezembro 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.)

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