Mudanças entre as edições de "DLP2-EngTel (página)"
Linha 57: | Linha 57: | ||
:* Medição de tempo de execução com performance counters. | :* Medição de tempo de execução com performance counters. | ||
:: Ver [[Laboratórios com Altera NIOS2]]. | :: 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) | ||
+ | :* Análise da área (Elementos Lógicos) x tempo de propagação. | ||
+ | ::Ver pag. 163 a 173 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; | ||
+ | ::* Exemplos de Deslocador (''shifter'') | ||
+ | ::* Exemplos de Multiplicadores | ||
+ | ::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] | ||
+ | |||
+ | ===Unidade 4=== | ||
+ | ;Aula 12 (28 Set) - 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}} | ||
+ | ::* 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 13 (05 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 14 (10 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> | ||
+ | --> | ||
+ | --> | ||
== Notas de aula == | == Notas de aula == |
Edição das 13h31min de 21 de setembro de 2016
Dispositivos Lógicos Programáveis II
- Professores: Arliones Hoeller e Marcos Moecke
- Plano de Ensino
- Cronograma
- Horário das aulas e atendimento paralelo
Material de aula
Registro on-line das aulas
Unidade 1
- Aula 1 (11 Ago) - Arliones
- 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 [1]
- 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 [1]
- Ver também os slides Unidade 2: Processo de Síntese do código VDHL
Unidade 2
- Aula 4 (24 Ago) - Arliones
- Processadores embarcados e depuração em FPGA
- Configuração e geração de processadores.
- Aula 5 (29 Ago) - Arliones
-
- Desenvolvimento de software embarcado.
- Aula 6 (31 Ago) - 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.
- Aula 9 (14 Set) - Arliones
-
- Medição de tempo de execução com performance counters.
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)
- Análise da área (Elementos Lógicos) x tempo de propagação.
- Ver pag. 163 a 173 de [1]
-->
Notas de aula
Estas notas de aula são baseadas nas dispobilizadas pelo Prof. Pong P. Chu em [1].
- Lecture 01: Complexity Mangement and the Design of Complex Digital Systems
- Lecture 02: Synthesis of VHDL Code
- Lecture 03: Efficient Design of Combinational Circuits
- Lecture 04: Efficient Design of Sequential Circuits
- Lecture 05: Design of Sequential Circuits: Practice
- Lecture 06: Finite State Machines: Principle and Practice
- Lecture 07: Register Transfer Methodology: Principle
- Lecture 08: Register Transfer Methodology: Practice
Roteiros
Avaliação
Neste tópico serão listadas as Atividades Práticas realizadas ao longo do semestre. Para cada uma dessas atividades o aluno/equipe que não entrega-la no prazo preestabelecido, poderá entregar a atividade com: uma semana de atraso obtendo no máximo o valor 8; duas semanas de atraso obtendo no máximo o valor 6; três semanas de atraso obtendo no máximo o valor 4;
Os critérios de avaliação estão descritos no Plano de Ensino.
PARA ENTREGAR
AE1 - XXXX (prazo XX/XX/2016) |
---|
|
- JÁ ENCERRADAS
- ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO
AL1 - Tempo de propagação em circuitos combinacionais |
---|
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.
Referências Bibliográficas:
- ↑ 1,0 1,1 1,2 1,3 Pong P. Chu, RTL Hardware Design Using VHDL: Coding for Efficiency, Portability, and Scalability. Wiley-IEEE Press, Hoboken, 2006, ISBN 0471720925
- ↑ 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
Conteúdo
Gerenciamento de Complexidade e Visão Geral de Sistemas Digitais Complexos |
---|
Gerenciamento de Complexidade e Visão Geral de Sistemas Digitais Complexos
|
Síntese de Código VHDL |
---|
Síntese de Código VHDL
|
Eficiência de Circuitos Combinacionais |
---|
Eficiência de Circuitos Combinacionais
|
Eficiência de Circuitos Sequenciais |
---|
Eficiência de Circuitos Sequenciais
|
Eficiência de Máquinas de Estado |
---|
Eficiência de Máquinas de Estado
|
Register Transfer Methodology |
---|
Register Transfer Methodology
|
Projeto Hierárquico e Parametrizado |
---|
Projeto Hierárquico e Parametrizado
|
Clock e Sincronização |
---|
Clock e Sincronização
|