DLP2-EngTel (página)
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, L7.4, L7.5)
- Análise da área (Elementos Lógicos) x tempo de propagação.
- Ver pag. 163 a 175 de [1]
- 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 [1]
- Ver também os slides 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.
Modelo em VHDL de projeto síncrono |
---|
-- 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;
|
- Exemplo de FF D com enable;
- Exemplo de FF T;
- Exemplos de registrador de deslocamento;
- Exemplos de contadores;
- Ver pag. 213 a 239 de [1]
- 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 [1]
- Ver também os slides 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;
--Em um contador de 0 a 9
r_next <= (others => '0') when r_reg = 9 else r_reg + 1;
- Mal uso de portas no CLOCK => Use o ENABLE do FF;
--Em um contador
r_next <= r_reg + 1 when ena = '1' else r_reg;
- 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) [1]
Notas de aula
Estas notas de aula são baseadas nas dispobilizadas pelo Prof. Pong P. Chu em [2].
- 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 - Projeto de SoC baseado em NIOS2 (prazo 05/10/2016) |
---|
Nesta atividade, você vai integrar os desenvolvimentos realizados nos laboratórios envolvendo NIOS2 e SignalTap. As etapas a serem executadas são as seguintes:
Módulos para serem usados por cada grupo:
|
AE2 - Circuitos Combinacionais (prazo 19/10/2016 as 23h59) |
---|
set_max_delay -from [get_ports *] -to [get_ports *] tp
|
AE3 - Circuitos Sequencias (prazo 04/11/2016 23h59) |
---|
create_clock -name CLKXXXMHz -period XXXMHz [get_ports {nome_do_sinal_de_clock}]
|
AE4 - FSM/RTM (prazo 14/12/2016) |
---|
Nesta atividade, cada dupla entregará uma implementação do jogo QuickFinger (explicado em aula). Além da implementação padrão, cada dupla realizará uma modificação diferente (lista ao final, por dupla). Um relatório final em forma de artigo PDF contendo os itens abaixo deve ser entregue:
Modificações para cada grupo:
|
- 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 1,4 1,5 1,6 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
- ↑ PEDRONI, Volnei A. Circuit Design and Simulation with VHDL; 2ª ed. Massachusetts-EUA:MIT, 2010. 608 p. ISBN 9780262014335
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
|