Mudanças entre as edições de "DLP2-EngTel (página)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 93: Linha 93:
 
Para determinar os caminhos críticos do projeto (ou os tempos de propagação entre quaisquer nós de um projeto, utilize a [[Análise de Caminho Crítico com Qaurtus II]].
 
Para determinar os caminhos críticos do projeto (ou os tempos de propagação entre quaisquer nós de um projeto, utilize a [[Análise de Caminho Crítico com Qaurtus II]].
  
= Diário de Aulas =
+
= Conteúdo =
  
{{collapse top| bg=lightyellow | expandir=true | 29/07: Laboratório: Processadores Embarcados (SoC)}}
+
{{collapse top| bg=lightyellow | expandir=true | Gerenciamento de Complexidade e Visão Geral de Sistemas Digitais Complexos}}
  
Nesta aula nós seguiremos um tutorial da Altera para construir um System-on-a-Chip (SoC), sintetizando um processador softcore NIOS em uma FPGA e carregando um software nele. Nas próximas aulas nós integraremos nossa própria lógica neste processador. Esta arquitetura de sistema deverá ser empregada em todos os trabalhos ao longo do semestre.
+
==Gerenciamento de Complexidade e Visão Geral de Sistemas Digitais Complexos==
 +
 
 +
*Leituras recomendadas:
 +
**Capítulo 1 do livro do Chu;
 +
**Capítulo 1 do livro do Harris;
 +
**Notas de aula 01.
 +
 
 +
{{collapse bottom}}
 +
 
 +
{{collapse top| bg=lightyellow | expandir=true | Síntese de Código VHDL}}
 +
 
 +
==Síntese de Código VHDL==
 +
 
 +
*Leitura recomendada:
 +
**Capítulo 6 do livro do Chu;
 +
**Notas de aula 02.
 +
 
 +
{{collapse bottom}}
  
A figura abaixo dá uma visão geral do que iremos implementar:
+
{{collapse top| bg=lightyellow | expandir=true | Eficiência de Circuitos Combinacionais}}
 +
{{collapse bottom}}
  
https://www.altera.com/content/dam/altera-www/global/en_US/images/support/examples/images/nios2-hw-tutorial.gif
+
{{collapse top| bg=lightyellow | expandir=true | Eficiência de Circuitos Sequenciais}}
 +
{{collapse bottom}}
  
Você precisará destes documentos para desenvolver este tutorial:
+
{{collapse top| bg=lightyellow | expandir=true | Eficiência de Máquinas de Estado}}
 +
{{collapse bottom}}
  
* [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/docs/tt_nios2_hardware_tutorial-with_markings.pdf Tutorial com pontos importantes destacados.]
+
{{collapse top| bg=lightyellow | expandir=true | Register Transfer Methodology}}
* Código-base para início do tutorial [https://www.altera.com/content/dam/altera-www/global/en_US/others/literature/tt/niosii_hw_dev_tutorial.zip na ALTERA],[http://docente.ifsc.edu.br/moecke/DLP2/niosii_hw_dev_tutorial.zip no IFSC]
+
{{collapse bottom}}
* [[Pinagem dos dispositivos de entrada e saída do kit MERCURIO IV]]
 
  
Recomenda-se seguir este roteiro:
+
{{collapse top| bg=lightyellow | expandir=true | Projeto Hierárquico e Parametrizado}}
* Analisar e debater figura 1-1 na página 1-2;
+
{{collapse bottom}}
* Destacar os requisitos de hardware para o experimento na página 1-3;
 
* Analisar e debater o fluxo de desenvolvimento de projeto da figura 1-2 na página 1-4;
 
* Debater as questões de análise de requisitos do sistema na página 1-5;
 
* Partir para criação do exemplo na página 1-8;
 
* Seguir tutorial (passos importantes destacados no PDF);
 
  
 +
{{collapse top| bg=lightyellow | expandir=true | Clock e Sincronização}}
 
{{collapse bottom}}
 
{{collapse bottom}}
  
{{collapse top| bg=lightyellow | expandir=true | 06/10: Laboratório: Processadores Embarcados (SoC)}}
+
= Laboratórios =
  
Retomada da aula de 28/07
+
{{collapse top| bg=lightyellow | expandir=true | Laboratório: Processadores Embarcados (SoC)}}
 +
 
 +
== Roteiro Básico ==
 +
 
 +
Nesta aula nós seguiremos um tutorial da Altera para construir um System-on-a-Chip (SoC), sintetizando um processador softcore NIOS em uma FPGA e carregando um software nele. Nas próximas aulas nós integraremos nossa própria lógica neste processador. Esta arquitetura de sistema deverá ser empregada em todos os trabalhos ao longo do semestre.
 +
 
 +
A figura abaixo dá uma visão geral do que iremos implementar:
 +
 
 +
https://www.altera.com/content/dam/altera-www/global/en_US/images/support/examples/images/nios2-hw-tutorial.gif
  
 
Você precisará destes documentos para desenvolver este tutorial:
 
Você precisará destes documentos para desenvolver este tutorial:
  
 
* [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/docs/tt_nios2_hardware_tutorial-with_markings.pdf Tutorial com pontos importantes destacados.]
 
* [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/docs/tt_nios2_hardware_tutorial-with_markings.pdf Tutorial com pontos importantes destacados.]
* Código-base para início do tutorial [https://www.altera.com/content/dam/altera-www/global/en_US/others/literature/tt/niosii_hw_dev_tutorial.zip na ALTERA],[http://docente.ifsc.edu.br/arliones.hoeller/dlp2/code/niosii_hw_dev_tutorial.zip no IFSC]
+
* Código-base para início do tutorial [https://www.altera.com/content/dam/altera-www/global/en_US/others/literature/tt/niosii_hw_dev_tutorial.zip na ALTERA],[http://docente.ifsc.edu.br/moecke/DLP2/niosii_hw_dev_tutorial.zip no IFSC]
 +
* [[Pinagem dos dispositivos de entrada e saída do kit MERCURIO IV]]
 
* [http://www.macnicadhw.com.br/c/document_library/get_file?uuid=0612db45-0434-4737-a380-ac846cf662b3&groupId=10157 Esquemático da MercurioIV]
 
* [http://www.macnicadhw.com.br/c/document_library/get_file?uuid=0612db45-0434-4737-a380-ac846cf662b3&groupId=10157 Esquemático da MercurioIV]
*[[Preparando para gravar o circuito lógico no FPGA]]
+
* [[Preparando para gravar o circuito lógico no FPGA]]
 +
 
 
Recomenda-se seguir este roteiro:
 
Recomenda-se seguir este roteiro:
 
* Analisar e debater figura 1-1 na página 1-2;
 
* Analisar e debater figura 1-1 na página 1-2;
Linha 143: Linha 168:
 
  sudo apt-get install libgtk2.0-0:i386
 
  sudo apt-get install libgtk2.0-0:i386
  
{{collapse bottom}}
+
== Modificações Propostas ==
 
 
{{collapse top| bg=lightyellow | expandir=true | 07/10: Laboratório: Processadores Embarcados (SoC)}}
 
 
 
Continuação da aula de 06/10.
 
  
 
Modificar o projeto da aula passada para:
 
Modificar o projeto da aula passada para:
Linha 156: Linha 177:
 
{{collapse bottom}}
 
{{collapse bottom}}
  
{{collapse top| bg=lightyellow | expandir=true | 13/10: Gerenciamento de Complexidade e Visão Geral de Sistemas Digitais Complexos}}
+
<!--
  
*Leituras recomendadas:
+
{{collapse top| bg=lightyellow | expandir=true | Projeto Final 2015-2}}
**Capítulo 1 do livro do Chu;
 
**Capítulo 1 do livro do Harris;
 
**Lecture notes 01.
 
  
{{collapse bottom}}
+
== Projeto Final ==
  
{{collapse top| bg=lightyellow | expandir=true | 20/10: Síntese de Código VHDL}}
+
=== Visão Geral ===
 
 
*Leitura recomendada:
 
**Capítulo 6 do livro do Chu;
 
**Lecture notes 02.
 
 
 
{{collapse bottom}}
 
 
 
{{collapse top| bg=lightyellow | expandir=true | 21,27/10, 03/11: Eficiência de Circuitos Combinacionais}}
 
{{collapse bottom}}
 
 
 
{{collapse top| bg=lightyellow | expandir=true | 04,10,17/11: Eficiência de Circuitos Sequenciais}}
 
{{collapse bottom}}
 
 
 
{{collapse top| bg=lightyellow | expandir=true | 18,24/11: Eficiência de Máquinas de Estado}}
 
{{collapse bottom}}
 
 
 
{{collapse top| bg=lightyellow | expandir=true | 01,02,08/12: Register Transfer Methodology}}
 
{{collapse bottom}}
 
 
 
{{collapse top| bg=lightyellow | expandir=true | 15/12: Projeto Hierárquico}}
 
{{collapse bottom}}
 
 
 
{{collapse top| bg=lightyellow | expandir=true | 16/12: Projeto Parametrizado}}
 
{{collapse bottom}}
 
 
 
{{collapse top| bg=lightyellow | expandir=true | 22/12,02/02: Clock e Sincronização}}
 
{{collapse bottom}}
 
 
 
{{collapse top| bg=lightyellow | expandir=true | 03/12...: Projeto Final}}
 
 
 
== 08/03: Final Project ==
 
 
 
=== Overview ===
 
  
 
[[Arquivo:DLP2-Projeto-UartAudio.png]]
 
[[Arquivo:DLP2-Projeto-UartAudio.png]]
Linha 210: Linha 195:
 
* UART: os dados serão transmitidos através de uma UART conectada a um transceiver RS-232 na placa.
 
* UART: os dados serão transmitidos através de uma UART conectada a um transceiver RS-232 na placa.
  
<!--
 
 
* The following files are avaliable to integrate to your project:
 
* The following files are avaliable to integrate to your project:
 
** [https://www.dropbox.com/s/t6hi13yz8loifo5/secure_audio_alunos.qar?dl=0 Download here] a QAR File containing the ADC and DAC adaptation circuit and a Nios2 processor. From this file, you will use a the ADC_OUT FIFO as a data source to your LawA compressor, and the DAC_IN FIFO as a data destination for your LawA decompressor.
 
** [https://www.dropbox.com/s/t6hi13yz8loifo5/secure_audio_alunos.qar?dl=0 Download here] a QAR File containing the ADC and DAC adaptation circuit and a Nios2 processor. From this file, you will use a the ADC_OUT FIFO as a data source to your LawA compressor, and the DAC_IN FIFO as a data destination for your LawA decompressor.
 
** [https://www.dropbox.com/s/31rpm08dz0zlknt/secure_audio_alunos_application.zip?dl=0 Download here] the ecliplse project of the application that should run on the Nios2 processor. You will need to generate the BSP (sopcinfo file is in the QAR).
 
** [https://www.dropbox.com/s/31rpm08dz0zlknt/secure_audio_alunos_application.zip?dl=0 Download here] the ecliplse project of the application that should run on the Nios2 processor. You will need to generate the BSP (sopcinfo file is in the QAR).
-->
 
  
 
=== Material de apoio para o projeto ===
 
=== Material de apoio para o projeto ===
Linha 228: Linha 211:
  
 
{{collapse bottom}}
 
{{collapse bottom}}
 +
-->

Edição das 09h24min de 22 de março de 2016

Dispositivos Lógicos Programáveis II

  • Professores: Arliones Hoeller e Marcos Moecke
  • Encontros: semanalmente nas terças e quinzenalmente nas quintas às 9:40 no Laboratório de Programação.

Material de aula

Principais referências bibliográficas

  1. Pong P. Chu, RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability. Wiley-IEEE Press, Hoboken, 2006, Pages 1-22, ISBN 0471720925.
  2. David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture, Morgan Kaufmann, Burlington, 2007, Pages 3-48, ISBN 9780123704979, http://dx.doi.org/10.1016/B978-012370497-9/50002-0.

Notas de aula

Estas notas de aula são baseadas nas dispobilizadas pelo Prof. Pong P. Chu em [1].

Atividades extra

Neste tópico serão listadas as atividades extras que os alunos da disciplina deverão realizar ao longo do curso. É importante observar o prazo de entrega, pois os conceitos serão reduzidos conforme o atraso na entrega. Para a entrega no prazo os conceitos possíveis são (A, B, C, D). Entrega com até uma semana de atraso (B, C, D). Entrega com até duas semanas de atraso (C ou D). Entrega com mais de duas semanas de atraso (D). Em virtude do número impar de alunos na turma, os trabalhos em equipes serão sempre 3 diferentes, onde um dos alunos deverá trabalhar sozinho. Ao longo do semestre todos terão o privilégio de trabalhar em equipe consigo mesmo.


PARA ENTREGAR
JÁ ENCERRADAS

Recursos de Laboratório

Para uso fora do IFSC dos recursos computacionais com licença educacional, o IFSC disponibiliza para seus alunos o IFSC-CLOUD. Atualmente a forma mais eficiente de acesso é através do Cliente X2GO. O procedimento de instalação/ configuração e uso do Quartus/Modelsim/QSIM está descrito em Acesso ao IFSC-CLOUD#Cliente X2GO (recomendado).

Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma Sharelatex do IFSC-CLOUD. Utilize preferencialmente o modelo de artigo no padrão ABNT.

Para estudo de FPGAs o Laboratório de Programação dispõe de kits Mercúrio IV da Macnica-DHW e também DE2-115 da Terasic. Veja como utilizar estes kits em Preparando para gravar o circuito lógico no FPGA, one além de acesso aos manuais dos fabricantes, você tem acesso a uma descrição resumida da pinagem mais utilizada desses kits.

Para depurar seu circuito em uma FPGA de verdade, pode ser interessante utilizar o SignalTapII da Altera, que permite realizar análise lógica dos sinais no seu circuito. Para iniciar o uso da ferramenta, siga este tutorial.

Para determinar os caminhos críticos do projeto (ou os tempos de propagação entre quaisquer nós de um projeto, utilize a Análise de Caminho Crítico com Qaurtus II.

Conteúdo

Gerenciamento de Complexidade e Visão Geral de Sistemas Digitais Complexos

Gerenciamento de Complexidade e Visão Geral de Sistemas Digitais Complexos

  • Leituras recomendadas:
    • Capítulo 1 do livro do Chu;
    • Capítulo 1 do livro do Harris;
    • Notas de aula 01.
Síntese de Código VHDL

Síntese de Código VHDL

  • Leitura recomendada:
    • Capítulo 6 do livro do Chu;
    • Notas de aula 02.
Eficiência de Circuitos Combinacionais
Eficiência de Circuitos Sequenciais
Eficiência de Máquinas de Estado
Register Transfer Methodology
Projeto Hierárquico e Parametrizado
Clock e Sincronização

Laboratórios

Laboratório: Processadores Embarcados (SoC)

Roteiro Básico

Nesta aula nós seguiremos um tutorial da Altera para construir um System-on-a-Chip (SoC), sintetizando um processador softcore NIOS em uma FPGA e carregando um software nele. Nas próximas aulas nós integraremos nossa própria lógica neste processador. Esta arquitetura de sistema deverá ser empregada em todos os trabalhos ao longo do semestre.

A figura abaixo dá uma visão geral do que iremos implementar:

nios2-hw-tutorial.gif

Você precisará destes documentos para desenvolver este tutorial:

Recomenda-se seguir este roteiro:

  • Analisar e debater figura 1-1 na página 1-2;
  • Destacar os requisitos de hardware para o experimento na página 1-3;
  • Analisar e debater o fluxo de desenvolvimento de projeto da figura 1-2 na página 1-4;
  • Debater as questões de análise de requisitos do sistema na página 1-5;
  • Partir para criação do exemplo na página 1-8;
  • Seguir tutorial (passos importantes destacados no PDF);
  • Usando o Pin Planner (Assignment > Pin Planner) selecione os pinos corretos no kit Mercúrio IV. Veja a pinagem em Preparando para gravar o circuito lógico no FPGA.
  • Mude a tensão default dos pinos para 3.3V (Assignment > Device > Device and Pin Options > Voltage), [Default I/O standard = 3.3-V LVTLL] [OK] [OK]
  • Configure os pinos não usados para Tri-State (Assignment > Device > Device and Pin Options > Unused Pins), [Reserve all unused pins = As input tri-stated] e [OK] [OK]

Se o Eclipse SBT do Nios II não inicializar em um sistema Ubuntu 14.04 ou mais recente, você precisa instalar a libGTK2:

sudo apt-get install libgtk2.0-0:i386

Modificações Propostas

Modificar o projeto da aula passada para:

  • Ler um conjunto de entradas digitais a partir das chaves da placa;
  • Obter estes sinais no software rodando no NIOS através de uma PIO;
  • Escrever estes sinais para LEDs no softwaer, através de outra PIO.