Mudanças entre as edições de "DLP2-EngTel (página)"
Linha 269: | Linha 269: | ||
* 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, 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]. | ||
* Envie o artigo em pdf para (<tt>moecke AT ifsc.edu.br</tt> E <tt>arliones.hoeller AT ifsc.edu.br</tt>), com o ASSUNTO: DLP29007 - AE2 - Projeto de Circuitos Combinacionais. | * Envie o artigo em pdf para (<tt>moecke AT ifsc.edu.br</tt> E <tt>arliones.hoeller AT ifsc.edu.br</tt>), com o ASSUNTO: DLP29007 - AE2 - Projeto de Circuitos Combinacionais. | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | AE3 - Circuitos Sequencias (prazo 04/11/2016 23h59)}} | ||
+ | * Formar equipes com 2 ou 3 alunos. A formação das equipes deve ser informado no [https://www.facebook.com/groups/DLP29007/ Facebook] de DLP29007. Cada equipe deverá trabalhar com um dos temas de 1 a 6. (todos os contadores devem ser genéricos para N bits) | ||
+ | |||
+ | :'''TEMA 1''' - Estudar e implementar o Contador Gray | ||
+ | ::* Versão 1 (Listing 9.7). pag. 265 | ||
+ | ::* Versão 2 [https://www.altera.com/support/support-resources/design-examples/design-software/vhdl/vhd-gray-counter.html] | ||
+ | ::* Versão 3 [http://www.asic-world.com/examples/vhdl/gray.html] | ||
+ | ::* Versão 4 Modifique a versão 3, separando claramente a lógica ''combinacional de next-state'', ''combinacional de output'', e ''register''. | ||
+ | |||
+ | :'''TEMA 2''' - Estudar e implementar o Contador em Anel | ||
+ | ::* Versão 1 (Listing 9.8). pag. 267 | ||
+ | ::* Versão 2 (Listing 9.9). pag. 268 | ||
+ | ::* Versão 3 [http://www.andrecastelan.com.br/implementacao-de-um-shift-register-em-vhdl/] | ||
+ | ::* Versão 4 Modifique a versão 3, separando claramente a lógica ''combinacional de next-state'', ''combinacional de output'', e ''register''. | ||
+ | |||
+ | :'''TEMA 3''' - Estudar e implementar o Contador Decimal e Contador One Hot | ||
+ | ::* Versão 1 (Listing 9.12). pag. 273 | ||
+ | ::* Versão 2 (Listing 9.13). pag. 274 | ||
+ | ::* Versão 3 Contador One Hot [http://www.asic-world.com/examples/vhdl/one_hot.html#One_Hot_Counter]. | ||
+ | ::* Versão 4 Modifique a versão 3, separando claramente a lógica ''combinacional de next-state'', ''combinacional de output'', e ''register''. | ||
+ | |||
+ | :'''TEMA 4''' - Estudar e implementar o Contador LFSR (Linear Feedback Shift Register) | ||
+ | ::* Versão 1 (Listing 9.10). pag. 270 | ||
+ | ::* Versão 2 (Listing 9.11). pag. 272 | ||
+ | ::* Versão 3 [http://www.asic-world.com/examples/vhdl/lfsr.html#Random_Counter_(LFSR)] | ||
+ | ::* Versão 4 Modifique a versão 3, separando claramente a lógica ''combinacional de next-state'', ''combinacional de output'', e ''register''. | ||
+ | |||
+ | :'''TEMA 5''' - Estudar e implementar o PWM | ||
+ | ::* Versão 1 (Listing 9.14). pag. 275 | ||
+ | ::* Versão 2 [https://eewiki.net/download/attachments/20939345/pwm_v1_0.vhd?version=1&modificationDate=1420836042247&api=v2] | ||
+ | ::* Versão 3 [http://fpgacenter.com/examples/servo/VhdlCode.php] | ||
+ | ::* Versão 4 Modifique a versão 3, separando claramente a lógica ''combinacional de next-state'', ''combinacional de output'', e ''register''. | ||
+ | |||
+ | :'''TEMA 6''' - Estudar e implementar | ||
+ | ::* Versão 1 | ||
+ | ::* Versão 2 | ||
+ | ::* Versão 3 | ||
+ | ::* Versão 4 | ||
+ | |||
+ | * Para cada circuito indicado torne o código genérico para N bits e teste para 4 e 32 bits. | ||
+ | * Teste cada uma das arquiteturas e anote em uma tabela todos os resultados de: número de pinos, número de elementos lógicos/ALUT (indicando os Normais | Aritméticos), Frequência Máxima. | ||
+ | ::Esses dados estão disponíveis nos seguintes relatórios: ('''Fitter > Resource Section > Resource Usage'''), ('''TimeQuest Timing Analyser > Datasheet Report > FMax''') | ||
+ | *Insira restrições temporais para obter um circuito com maior Frequência Máxima. | ||
+ | create_clock -name CLKXXXMHz -period XXXMHz [get_ports {nome_do_sinal_de_clock}] | ||
+ | *Realize a simulação funcional de cada circuito com 4 bits. | ||
+ | * Escreva um relatório técnico na forma de artigo com 2 a 4 paginas A4. O relatório além das tabelas com os dados, deverá conter as figuras dos circuitos RTL para 4 bits, simulações funcionais e uma análise textual dos resultados obtidos. O arquivo com o QAR do projeto deve ser também enviado. | ||
+ | * 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]. | ||
+ | * Envie o artigo em pdf para (<tt>moecke AT ifsc.edu.br</tt> E <tt>arliones.hoeller AT ifsc.edu.br</tt>), com o ASSUNTO: DLP29007 - AE2 - Circuitos Sequencias. | ||
{{collapse bottom}} | {{collapse bottom}} | ||
Edição das 12h17min de 24 de outubro 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, 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}]
|
- 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
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
|