DLP2-EngTel (página): mudanças entre as edições

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Arliones.hoeller (discussão | contribs)
Roberto.matos (discussão | contribs)
Redirecionamento removido para DLP29007-2020-1
Etiqueta: Redirecionamento removido
 
(57 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
Página da disciplina hospedada no [https://moodle.ifsc.edu.br/course/view.php?id=7452 Moodle]
<!--
#REDIRECT[[DLP29007-2020-1]]
= Dispositivos Lógicos Programáveis II =
= Dispositivos Lógicos Programáveis II =


*'''Professores:''' [[Arliones Hoeller]] e [[Marcos Moecke]]
*'''Professor:''' [[Roberto de Matos]]
*[[DLP2-EngTel_(Plano_de_Ensino)| Plano de Ensino]] ('''NÃO OFICIAL - SENDO REVISTO''')
*[[DLP2-EngTel_(Plano_de_Ensino)| Plano de Ensino]] ('''NÃO OFICIAL - SENDO REVISTO''')
*[[Cronograma de atividades (DLP2-EngTel) | Cronograma]]
*[[Cronograma de atividades (DLP2-EngTel) | Cronograma]]
*[[Horários dos Cursos do IFSC Campus São José | Horário das aulas e atendimento paralelo]]
*[[Horários dos Cursos do IFSC Campus São José | Horário das aulas e atendimento paralelo]]
= Notas =
<!--
{| class="wikitable"
!scope="col"| Aluno
!scope="col"| AE1
!scope="col"| AE2
!scope="col"| AE3
!scope="col"| AE4
!scope="col"| AA
!scope="col"| AT
!scope="col"| AP1
!scope="col"| AP2
!scope="col"| Final
|-
| 122005023-7 || 8 || 10 || 9 || 8 || 8 || 10 || 9 || 8 || 9
|-
| 131000929-5 || 6 || 7 || 7 || 5 || 7 || 9 || 5 || 6 || 6
|-
| 132002623-0 || 8 || 9 || 9 || 7 || 8 || 6 || 9 || 9 || 8
|-
| 121003282-1 || 8 || 10 || 8 || 8 || 9 || 8 || 9 || 9 || 8
|-
| 132002999-0 || 8 || 10 || 9 || 8 || 9 || 3 || 9 || 8 || 8
|-
| 131004419-8 || 4 || 4 || 5 || 6 || 9 || 9 || 5 || 5 || 5
|-
| 131001281-4 || 6 || 7 || 7 || 5 || 9 || 6 || 3 || 2 || 6
|-
| 121000492-5 || 7 || 10 || 10 || 6 || 8 || 10 || 9 || 8 || 8
|-
| 121000484-4 || 7 || 10 || 10 || 6 || 8 || 3 || 9 || 8 || 8
|-
| 131005334-0 || 4 || 4 || 5 || 6 || 6 || 9 || 3 || 3 || 5
|-
| 132004278-3 || 8 || 9 || 9 || 7 || 8 || 3 || 9 || 9 || 8
|-
| 121003758-0 || 8 || 10 || 8 || 8 || 8 || 3 || 7 || 8 || 8
|}
Pesos: 22 (total)
*AE1: 4
*AE2: 3
*AE3: 4
*AE4: 7
*AA - Autoavaliação: 1
*AT - Avaliação da turma: 1
*AP1 - Avaliação Professor 1: 1
*AP2 - Avaliação Professor 2: 1
-->


= Material de aula =
= Material de aula =
==Registro on-line das aulas==


===Unidade 1===
*[[DLP29007-2019-1 | Semestre 2019-1 - Prof. Roberto de Matos]]  
;Aula 1 (14 Fev) - Arliones:
*[[DLP2-EngTel (Plano de Ensino) | Apresentação da disciplina]]
::Ver pag. 1 a 22 de <ref name="PONG2006a"> Pong P. Chu, RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability. Wiley-IEEE Press, Hoboken, 2006, ISBN 0471720925 </ref>
::Ver pag. 3 a 48 de <ref name="HARRIS2007"> David Money Harris and Sarah L. Harris, Digital Design and Computer Architecture, Morgan Kaufmann, Burlington, 2007, ISBN 9780123704979, http://dx.doi.org/10.1016/B978-012370497-9/50002-0 </ref>
:: Ver os [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture01-complexity.pdf slides].


;Aula 6 (15 Mar) - Marcos:
<!--
* Processo de Síntese do código VDHL
:* Limitações dos softwares de EDA: Computabilidade, Complexidade Computacional
:* Realização dos operadores VHDL: simplificações para operando constante
:* Realização dos tipos de dados: Alta impedância 'Z' ->  ''buffer tri-state'';
::Ver pag. 125 a 137 de <ref name="PONG2006a" />
-->


;Aula 7 (21 Mar) - Marcos:
{{collapse top | Semestres Anteriores}}
<!--
*[[DLP29007-2018-2 | Semestre 2018-2 - Prof. Roberto de Matos]]  
* Processo de Síntese do código VDHL: Analise das temporizações:
*[[DLP29007-2018-1 | Semestre 2018-1 - Prof. Roberto de Matos]]  
:* Realização dos tipos de dados: uso de ''don't care'' '-'
*[[DLP29007-Engtelecom(2017-2) - Prof. Marcos Moecke | Semestre 2017-2 - Prof. Marcos Moecke]] - Wiki
:* Tempos de propagação, caminho crítico, caminho falso,
*[https://moodle.sj.ifsc.edu.br/course/view.php?id=179 Semestre 2017-2 - Prof. Arliones] - Moodle
:* Síntese com restrições temporais,
*[[DLP29007-Engtelecom(2017-1) - Prof. Marcos Moecke | Semestre 2017-1 - Prof. Marcos Moecke]] - Wiki
:* Perigos/Armadilhas (''Glitches'' estáticos e dinâmicos, circuitos sensíveis ao atraso)
*[https://moodle.sj.ifsc.edu.br/course/view.php?id=151 Semestre 2017-1 - Prof. Arliones] - Moodle
::Ver pag. 137 a 162 de <ref name="PONG2006a" />
*[[DLP2-EngTel (página) - 2016-2 (prof. Arliones e Marcos) | Semestre 2016-2 - Prof. Marcos Moecke e Arliones]]
::Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture02-synthesis.pdf Unidade 2: Processo de Síntese do código VDHL]
*[[DLP2-EngTel (página) - 2016-1 (prof. Arliones e Marcos) | Semestre 2016-1 - Prof. Marcos Moecke e Arliones]]
-->
*[[DLP2-EngTel (página) - 2015-2 (prof. Arliones e Marcos) | Semestre 2015-2 - Prof. Marcos Moecke e Arliones]]
 
*[[DLP29007-2015-1 | Semestre 2015-1 - Prof. Marcos Moecke e Arliones]]
===Unidade 2===
;Aula 2 (15 Fev) - Arliones:
:* Configuração e geração de processadores em FPGA
:: Ver [[Laboratórios com Altera NIOS2]].
 
;Aula 3 (21 Fev) - Arliones:
:* Desenvolvimento de software embarcado no NIOS2.
:: Ver [[Laboratórios com Altera NIOS2]].
 
;Aula 4 (07 Mar) - Arliones:
:* Integração de processadores com lógica externa em FPGA.
:: Ver [[Laboratórios com Altera NIOS2]].
 
;Aula 5 (14 Mar) - Arliones:
:* Depuração via analisador lógico embarcado em FPGA.
:: Ver [[Configuração e uso do Signal Tap]].
 
<!--
===Unidade 3===
;Aula 10 (21 Set) - Marcos:
* Eficiência de Circuitos Combinacionais
:* Compartilhamento de Operadores (Ex: 7.2.1, 7.2.2, 7.2.3, 7.2.4)
:* Compartilhamento de funcionalidades (Ex: L7.1, L7.2, L7.3, L7.4, L7.5)
:* Análise da área (Elementos Lógicos) x tempo de propagação.
::Ver pag. 163 a 175 de <ref name="PONG2006a" />
 
;Aula 11 (26 Set) - Marcos:
* Eficiência de Circuitos Combinacionais
:* Questões relacionadas com o Leiaute do circuito
::* Exemplos de circuitos XOR; (Ex:L7.15 - 7.18 )
::* Exemplos de Deslocador (''shifter'') (Ex: )
::* Exemplos de Multiplicadores (Ex: )
::Ver pag. 173 a 211 de <ref name="PONG2006a" />
::Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture03-efficient_comb_circuits.pdf Unidade  3: Eficiência de Circuitos Combinacionais]
 
;Aula 12 (28 Set) - Marcos:
* Eficiência de Circuitos Combinacionais
:* Comparação de circuitos somadores de M entradas de N bits.  Implementação em (árvore x cadeia). (Integer x Signed)
::*Utilizar como base os circuitos para XOR da Listing 7.15 e 7.18
::*Número de elementos lógicos, tempo de propagação do caminho caminho crítico.
::*Ver [[Medição de tempos de propagação em circuitos combinacionais]]
::*Ver [[Uso de Logic Lock para definir a área a ser ocupada pelo circuito]]
:* Exercício:  Verificar os tempos de propagação do caminho crítico nos somadores implementados usando FPGA da familia Ciclone e Ciclone IV E.
::*Usando o LogicLock, selecione uma região qualquer do chip para implementar o circuito, e faça a compilação do circuito.
::*Anote em um tabela o número de Elementos lógicos (Totais|Normais|Aritméticos)
::*Anote o tempo de propagação dos 3 primeiros caminhos críticos, indicando a origem e destino de cada um deles. Desconsidere os dois primeiros e dois últimos tempos indicados no '''Path Report''', pois são referentes a entrada do sinal e saída dos sinais no FPGA.
::*Compare seus resultados com o dos colegas que escolheram outras regiões do chip.
 
===Unidade 4===
;Aula 13 (05 Out) - Marcos:
* Eficiência de Circuitos Sequenciais
:* Tipos de Sincronismo em circuitos (globalmente síncronos, localmente síncronos, assíncronos)
:* Circuitos síncronos (Modelo, vantagens e tipos)
:* Descrição dos elementos básicos de memória (Latch D, Flip Flop D, Registros)
:* Projetos síncronos.
{{collapse top | Modelo em VHDL de projeto síncrono }}
<syntaxhighlight lang=vhdl>
-- Declaração das bibliotecas e pacotes a serem utilizados
library ieee;
use ieee.std_logic_1164.all;
 
entity nome_entidade is
-- Declaração dos valores GENERIC
  generic(
      ___: Natural := ___;
      ...
  );
-- Declaração das portas de entradas e saída
  port(
-- Declaração dos sinais de clock e reset assincrono
      clk, reset: in std_logic;
-- Declaração das demais portas de entradas isoladas e barramentos
      ___: in std_logic;
      ___: in std_logic_vector(__ downto 0);
      ...
 
-- Declaração das portas de saídas isoladas e barramentos
      ___: out std_logic;
      ___: out std_logic_vector(__ downto 0);
      ...
  );
end entity;
 
architecture nome_architetura of nome_entidade is
-- Declaração das entradas e saídas dos registros
  signal ___reg: std_logic_vector(___ downto 0);
  signal ___next: std_logic_vector(___ downto 0);
-- Declaração dos demais sinais internos
  ...
 
begin
-- Descrição da lógica sequencial registro
  process(clk,reset)
  begin
      if (reset='1') then
        ___reg <= (others=>'0');
        ...
      elsif (clk'event and clk='1') then
        ___reg <= ___next;
        ...
      end if;
  end process;
 
-- Descrição da lógica combinacional de próximo estado
  ...
  ...
-- Descrição da lógica combinacional dos circuitos de saída
  ...
  ...
 
end architecture;
</syntaxhighlight>
{{collapse bottom}}
{{collapse bottom}}
::* Exemplo de FF D com enable;
::* Exemplo de FF T;
::* Exemplos de registrador de deslocamento;
::* Exemplos de contadores;
::Ver pag. 213 a 239 de <ref name="PONG2006a" />
;Aula 14 (10 Out) - Marcos:
* Eficiência de Circuitos Sequenciais
:* Analise Temporal
::*Violação do tempo de Setup; Frequencia máxima do clock;
::*Temporização relacionadas as saídas.
:*Porque não usar VARIABLE em circuitos sequenciais.
::Ver pag. 239 a 255 de <ref name="PONG2006a" />
::Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture04-efficient_seq_circuits.pdf Unidade 4: Eficiência de Circuitos Sequenciais]
;Aula 15 (24 Out) - Marcos:
* Eficiência de Circuitos Sequenciais
:*Praticas deficientes de projeto e soluções:
::*Mal uso do RESET assincrono => Use CLEAR sincrono;
<syntaxhighlight lang=vhdl>
  --Em um contador de 0 a 9
  r_next <= (others => '0') when r_reg = 9 else r_reg + 1;
</syntaxhighlight>
::*Mal uso de portas no CLOCK => Use o ENABLE do FF;
<syntaxhighlight lang=vhdl>
  --Em um contador
  r_next <= r_reg + 1 when ena = '1' else r_reg;
</syntaxhighlight>
::*Mal uso de CLOCK derivados => Use o ENABLE para habilitar o CLOCK;
:*Contadores
::* Contador Gray
::* Contador em Anel
::* Contador Binário
::* Contador Decimal
::* LFSR (''Linear Feedback Shift Register'') [https://en.wikipedia.org/wiki/Linear_feedback_shift_register]
<syntaxhighlight lang=vhdl>
</syntaxhighlight>
===Unidade 8===
;Aula ?? a ??+1 (14 e 19 Dez):
*[https://www.dropbox.com/s/wts1ai0ltlg27p9/DLP29007%20-%20Projeto%20Hierarquico%20Parametrizado%20v2.pdf?dl=0 Projeto Hierárquico e Parametrizado]
::Ver pag. 473 a 498 de <ref name="PONG2006a" />
-->
== Notas de aula ==
== Notas de aula ==


Linha 260: Linha 42:
* [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture07-register_transfer.pdf Lecture 07: Register Transfer Methodology: Principle]
* [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture07-register_transfer.pdf Lecture 07: Register Transfer Methodology: Principle]
* [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture08-register_transfer_examples.pdf Lecture 08: Register Transfer Methodology: Practice]
* [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture08-register_transfer_examples.pdf Lecture 08: Register Transfer Methodology: Practice]
*[https://www.dropbox.com/s/wts1ai0ltlg27p9/DLP29007%20-%20Projeto%20Hierarquico%20Parametrizado%20v2.pdf?dl=0 Projeto Hierárquico e Parametrizado]


== Roteiros ==
== Roteiros ==


* [[Medição de tempos de propagação em circuitos combinacionais]]
* [[Uso de Logic Lock para definir a área a ser ocupada pelo circuito]]
* [[Laboratórios com Altera NIOS2]]
* [[Laboratórios com Altera NIOS2]]
* [[Configuração e uso do Signal Tap]]
* [[Configuração e uso do Signal Tap]]
Linha 272: Linha 57:


===PARA ENTREGAR===
===PARA ENTREGAR===
Neste semestre as atividades avaliativas estão sendo entregues através da [http://moodlenovo.sj.ifsc.edu.br/course/view.php?id=151 plataforma Moodle]. O aluno deverá fazer o login usando o login e senha do portal do aluno.


<!--


{{collapse top | AE1 - Projeto de SoC baseado em NIOS2 (prazo 05/10/2016)}}
{{collapse top | AE1 - Projeto de SoC baseado em NIOS2 (prazo 05/10/2016)}}
Linha 404: Linha 189:


{{collapse bottom}}
{{collapse bottom}}
-->


;JÁ ENCERRADAS:
;JÁ ENCERRADAS:
<!--
;ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO:
;ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO:
{{collapse top  | AL1 - Tempo de propagação em circuitos combinacionais}}
{{collapse top  | AL1 - Tempo de propagação em circuitos combinacionais}}
Linha 416: Linha 196:
{{collapse bottom}}
{{collapse bottom}}


-->


== Recursos de Laboratório ==
== 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 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  [http://200.135.233.26:3000/project Sharelatex do IFSC-CLOUD]. Utilize preferencialmente o [http://200.135.233.26:3000/project/54750cb57ae8187440d60acd  modelo de artigo no padrão ABNT].
Para a geração de documentação/relatórios técnicos/artigos, use a plataforma  [https://www.sharelatex.com?r=d418c690&rm=d&rs=b Sharelatex]


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 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.
Linha 520: Linha 299:


= Links Auxiliares =
= Links Auxiliares =
*[[DLP2-EngTel (página) - 2016-2 (prof. Arliones e Marcos)]]
*[https://cs.wmich.edu/gupta/teaching/cs5260/5260Sp15web/lectureNotes/thm14%20-%20parallel%20prefix%20from%20Ottman.pdf Parallel Prefix Computation]
*[[DLP2-EngTel (página) - 2016-1 (prof. Arliones e Marcos)]]
*[https://www.youtube.com/watch?v=bFmTHLZ3DGs#t=469.057233 Getting Started with the TimeQuest Timing Analyzer] Altera
*[[DLP2-EngTel (página) - 2015-2 (prof. Arliones e Marcos)]]
*[[Modelos de Temporização nos FPGAs]]
*[[DLP29007-2015-1 | DLP2-EngTel (página) - 2015-1 (prof. Arliones e Marcos)]]
::
*[http://academic.csuohio.edu/chu_p/rtl/rtl_hardware.html Materiais auxiliares do livro do Pong Chu]
*[http://academic.csuohio.edu/chu_p/rtl/chu_rtL_book/rtL_src_code.rar Código dos Exemplos do livro do Pong Chu]
*[http://www.alterawiki.com/uploads/e/e6/FittingAlgorithms_and_SeedSweeps.pdf Fitting Algorithms, Seeds, and Variation] - ALTERA
*[http://www.alterawiki.com/uploads/6/61/Tips_for_IncrementalCompilation_LogicLock.pdf Tips for Incremental Compilation and LogicLock] - ALTERA
 
-->

Edição atual tal como às 13h36min de 8 de junho de 2021

Página da disciplina hospedada no Moodle