|
|
(64 revisões intermediárias por 4 usuários não estão sendo mostradas) |
Linha 1: |
Linha 1: |
| = Dispositivos Lógicos Programáveis II = | | Página da disciplina hospedada no [https://moodle.ifsc.edu.br/course/view.php?id=7452 Moodle] |
| | |
| *'''Professores:''' [[Arliones Hoeller]] e [[Marcos Moecke]]
| |
| *[[DLP2-EngTel_(Plano_de_Ensino)| Plano de Ensino]]
| |
| *[[Cronograma de atividades (DLP2-EngTel) | Cronograma]]
| |
| *[[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)
| | #REDIRECT[[DLP29007-2020-1]] |
| *AE1: 4
| | |
| *AE2: 3
| | = Dispositivos Lógicos Programáveis II = |
| *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
| |
|
| |
|
| --> | | *'''Professor:''' [[Roberto de Matos]] |
| | *[[DLP2-EngTel_(Plano_de_Ensino)| Plano de Ensino]] ('''NÃO OFICIAL - SENDO REVISTO''') |
| | *[[Cronograma de atividades (DLP2-EngTel) | Cronograma]] |
| | *[[Horários dos Cursos do IFSC Campus São José | Horário das aulas e atendimento paralelo]] |
|
| |
|
| = Material de aula = | | = Material de aula = |
| ==Registro on-line das aulas==
| |
|
| |
| ===Unidade 1===
| |
| ;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].
| |
|
| |
|
| <!--
| | *[[DLP29007-2019-1 | Semestre 2019-1 - Prof. Roberto de Matos]] |
| ;Aula 2 (15 Ago) - 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 3 (17 Ago) - Marcos:
| |
| * Processo de Síntese do código VDHL: Analise das temporizações:
| |
| :* Realização dos tipos de dados: uso de ''don't care'' '-'
| |
| :* Tempos de propagação, caminho crítico, caminho falso,
| |
| :* Síntese com restrições temporais,
| |
| :* Perigos/Armadilhas (''Glitches'' estáticos e dinâmicos, circuitos sensíveis ao atraso)
| |
| ::Ver pag. 137 a 162 de <ref name="PONG2006a" />
| |
| ::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]
| |
|
| |
|
| ===Unidade 2===
| | {{collapse top | Semestres Anteriores}} |
| ;Aula 4 (24 Ago) - Arliones:
| | *[[DLP29007-2018-2 | Semestre 2018-2 - Prof. Roberto de Matos]] |
| * Processadores embarcados e depuração em FPGA | | *[[DLP29007-2018-1 | Semestre 2018-1 - Prof. Roberto de Matos]] |
| :* Configuração e geração de processadores.
| | *[[DLP29007-Engtelecom(2017-2) - Prof. Marcos Moecke | Semestre 2017-2 - Prof. Marcos Moecke]] - Wiki |
| :: Ver [[Laboratórios com Altera NIOS2]].
| | *[https://moodle.sj.ifsc.edu.br/course/view.php?id=179 Semestre 2017-2 - Prof. Arliones] - Moodle |
| | | *[[DLP29007-Engtelecom(2017-1) - Prof. Marcos Moecke | Semestre 2017-1 - Prof. Marcos Moecke]] - Wiki |
| ;Aula 5 (29 Ago) - Arliones:
| | *[https://moodle.sj.ifsc.edu.br/course/view.php?id=151 Semestre 2017-1 - Prof. Arliones] - Moodle |
| :* Desenvolvimento de software embarcado.
| | *[[DLP2-EngTel (página) - 2016-2 (prof. Arliones e Marcos) | Semestre 2016-2 - Prof. Marcos Moecke e Arliones]] |
| :: Ver [[Laboratórios com Altera NIOS2]].
| | *[[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]] |
| ;Aula 6 (31 Ago) - Arliones:
| | *[[DLP29007-2015-1 | Semestre 2015-1 - Prof. Marcos Moecke e Arliones]] |
| :* Integração de processadores com lógica externa.
| |
| :: '''Aula interrompida devido a falta de luz.'''
| |
| :: Ver [[Laboratórios com Altera NIOS2]].
| |
| | |
| ;Aula 7 (10 Set) - Arliones:
| |
| :* Integração de processadores com lógica externa.
| |
| :: '''Aula interrompida devido a falta de luz.'''
| |
| :: Ver [[Laboratórios com Altera NIOS2]].
| |
| | |
| ;Aula 8 (12 Set) - Arliones:
| |
| :* Depuração via analisador lógico embarcado.
| |
| :: Ver [[Configuração e uso do Signal Tap]].
| |
| | |
| ;Aula 9 (14 Set) - Arliones:
| |
| :* Medição de tempo de execução com performance counters.
| |
| :: Ver [[Laboratórios com Altera NIOS2]].
| |
| | |
| ===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 267: |
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 279: |
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 411: |
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 423: |
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 527: |
Linha 299: |
|
| |
|
| = Links Auxiliares = | | = Links Auxiliares = |
| *[[DLP2-EngTel (página) - 2016-1 (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) - 2015-2 (prof. Arliones e Marcos)]] | | *[https://www.youtube.com/watch?v=bFmTHLZ3DGs#t=469.057233 Getting Started with the TimeQuest Timing Analyzer] Altera |
| *[[DLP29007-2015-1 | DLP2-EngTel (página) - 2015-1 (prof. Arliones e Marcos)]] | | *[[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/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 |
| | |
| | --> |