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
(Redirecionamento removido para DLP29007-2020-1)
Etiqueta: Redirecionamento removido
 
(35 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'';
 
:* Realização dos tipos de dados: uso de ''don't care'' '-'
 
::Ver pag. 125 a 137 de <ref name="PONG2006a" />
 
  
 
+
{{collapse top | Semestres Anteriores}}
;Aula 7 (21 Mar) - Marcos:
+
*[[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]]  
 
+
*[[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
::*ver também [[Medição de tempos de propagação em circuitos combinacionais#Tempo de Propagação entre entrada e saída]]
+
*[[DLP29007-Engtelecom(2017-1) - Prof. Marcos Moecke | Semestre 2017-1 - Prof. Marcos Moecke]] - Wiki
:* Síntese com restrições temporais,
+
*[https://moodle.sj.ifsc.edu.br/course/view.php?id=151 Semestre 2017-1 - Prof. Arliones] - Moodle
::*ver também [[Medição de tempos de propagação em circuitos combinacionais#Inserindo restrições de tempo para o compilador]]
+
*[[DLP2-EngTel (página) - 2016-2 (prof. Arliones e Marcos) | Semestre 2016-2 - Prof. Marcos Moecke e Arliones]]
:* Perigos/Armadilhas (''Glitches'' estáticos e dinâmicos, circuitos sensíveis ao atraso)
+
*[[DLP2-EngTel (página) - 2016-1 (prof. Arliones e Marcos) | Semestre 2016-1 - Prof. Marcos Moecke e Arliones]]
::Ver pag. 137 a 162 de <ref name="PONG2006a" />
+
*[[DLP2-EngTel (página) - 2015-2 (prof. Arliones e Marcos) | Semestre 2015-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]
+
*[[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 e 11 (28 e 29 Mar) - 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.
 
:* 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. 163 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 (4 Abr) - Marcos:
 
* Eficiência de Circuitos Combinacionais
 
:* Comparação de circuitos somadores de M entradas de N bits. Comparar a implementação em árvore x cadeia.  Experimente utilizando tipos Integer e/ou (un)signed. Utilize como base os circuitos dos Exercícios 7.15 e 7.18 <ref name="PONG2006a" />, nos quais são mostradas implementações de portas XOR. O objetivo desse tópico é realizar medições de tempo, e mudar o desempenho do projeto seja mudando o código ou usando '''LogicLock''' ou restrições de tempo.
 
::*Ver [[Medição de tempos de propagação em circuitos combinacionais]]
 
::*Ver [http://quartushelp.altera.com/15.0/mergedProjects/optimize/ace/acv_view_acv_overview.htm About the Chip Planner]
 
::*Ver [[Uso de Logic Lock para definir a área a ser ocupada pelo circuito | Uso de LogicLock para definir a área a ser ocupada pelo circuito]]
 
::*Ver [[Uso de restrições de tempo e exceções no projeto]]
 
::*Ver [http://quartushelp.altera.com/15.0/mergedProjects/comp/increment/comp_view_qid.htm About Incremental Compilation]
 
:* Exercício:  Verificar os tempos de propagação do caminho crítico nos somadores implementados usando FPGA da familia Ciclone e Ciclone IV E, Considerando um circuito com 8 entradas de 12 bits.
 
::*Sem usar LogicLock anote os resultados.  Observe a disposição dos elementos lógicos no '''Chip Planner'''.
 
::*Usando o LogicLock, selecione uma região qualquer do chip para implementar o circuito, e faça a compilação do circuito. Use regiões na Vertical, na Horizontal e Retangular e anote os resultados.
 
::*Anote em um tabela o número de Elementos lógicos (Totais|Normais|Aritméticos), o tempo de propagação do caminho crítico, indicando a origem e destino dele. 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 até a região de interesse no FPGA.
 
::*Sem usar LogicLock, insira um arquivo de restrição SDC com a restrição (set_max_delay -from a* -to y* T), onde T é o atraso maximo entre as entradas a* até as saídas y*. Procure obter tempos de atraso menores que os anteriores. 
 
::*Experimente aumentar os tempos de atraso usando  (set_min_delay -from a* -to y* T).
 
::*Compare seus resultados com o dos colegas que escolheram outras regiões do chip.
 
 
 
===Unidade 4===
 
;Aula 13 (11 Abr) - 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 contador modulo m;
 
::Ver pag. 213 a 239 de <ref name="PONG2006a" />
 
 
* 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]
 
::Ver [http://www.altera.com/support/support-resources/design-examples/design-software/timequest/clocking/tq-clock.html TimeQuest Clock Analysis]
 
 
====ATUAL====
 
;Aula 14 (12 Abr) - Marcos:
 
* Eficiência de Circuitos Sequenciais
 
:*Praticas deficientes de projeto e soluções:
 
::*Mal uso do RESET assincrono => Use CLEAR síncrono;
 
<syntaxhighlight lang=vhdl>
 
  --Por exemplo em um contador de 0 a 9 use um CLEAR síncrono
 
  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 durante uma borda de subida;
 
:*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>
 
*Ver também os slides [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture05-sequetial_circuit_design.pdf Lecture 05: Design of Sequential Circuits: Practice]
 
 
<!--
 
===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)]]
 
*[[DLP2-EngTel (página) - 2016-1 (prof. Arliones e Marcos)]]
 
*[[DLP2-EngTel (página) - 2015-2 (prof. Arliones e Marcos)]]
 
*[[DLP29007-2015-1 | DLP2-EngTel (página) - 2015-1 (prof. Arliones e Marcos)]]
 
 
*[https://cs.wmich.edu/gupta/teaching/cs5260/5260Sp15web/lectureNotes/thm14%20-%20parallel%20prefix%20from%20Ottman.pdf Parallel Prefix Computation]
 
*[https://cs.wmich.edu/gupta/teaching/cs5260/5260Sp15web/lectureNotes/thm14%20-%20parallel%20prefix%20from%20Ottman.pdf Parallel Prefix Computation]
 
*[https://www.youtube.com/watch?v=bFmTHLZ3DGs#t=469.057233 Getting Started with the TimeQuest Timing Analyzer] Altera
 
*[https://www.youtube.com/watch?v=bFmTHLZ3DGs#t=469.057233 Getting Started with the TimeQuest Timing Analyzer] Altera
 +
*[[Modelos de Temporização nos FPGAs]]
 +
::
 
*[http://academic.csuohio.edu/chu_p/rtl/rtl_hardware.html Materiais auxiliares do livro do Pong Chu]
 
*[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://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