Mudanças entre as edições de "DLP2-EngTel (página)"
Linha 223: | Linha 223: | ||
;PARA ENTREGAR: | ;PARA ENTREGAR: | ||
− | {{collapse top | + | {{collapse top | AE1 - Circuitos Combinacionais (prazo 26/04/2016)}} |
* 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 5. As equipes 1 a 4 também devem trabalhar o tema 6. A equipe 5 apenas irá trabalhar o tema 5. | * 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 5. As equipes 1 a 4 também devem trabalhar o tema 6. A equipe 5 apenas irá trabalhar o tema 5. | ||
:'''TEMA 1''' - Implementar o circuito de diferença (Listing 7.6, 7.7. 7.8 e 7.9). pag. 175-177 | :'''TEMA 1''' - Implementar o circuito de diferença (Listing 7.6, 7.7. 7.8 e 7.9). pag. 175-177 | ||
Linha 258: | Linha 258: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | {{collapse top | AE2 - Circuitos Sequencias | + | {{collapse top | expand=true | AE2 - Circuitos Sequencias (prazo 17/06/2016)}} |
* 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 5. (todos os contadores devem ser genéricos para N bits) | * 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 5. (todos os contadores devem ser genéricos para N bits) | ||
− | :'''TEMA 1''' - Estudar e implementar Contador Gray | + | :'''TEMA 1''' - Estudar e implementar o Contador Gray |
::* Versão 1 (Listing 9.7). pag. 265 | ::* 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 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 3 [http://www.asic-world.com/examples/vhdl/gray.html] | ||
− | ::* Versão 4 | + | ::* 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''. | ||
* Para cada circuito indicado torne o código genérico para N bits e teste para 4 e 32 bits. | * Para cada circuito indicado torne o código genérico para N bits e teste para 4 e 32 bits. | ||
Linha 277: | Linha 301: | ||
* 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 - AE1 - 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 - AE1 - Projeto de Circuitos Combinacionais. | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | + | <!-- | |
{{collapse top |expand=true | AE3 - Componente Sequencial com Pipeline (prazo ??/??/2016)}} | {{collapse top |expand=true | AE3 - Componente Sequencial com Pipeline (prazo ??/??/2016)}} | ||
{{collapse bottom}} | {{collapse bottom}} | ||
+ | --> | ||
− | {{collapse top |expand=true | | + | {{collapse top |expand=true | AE3 - Máquinas de Estado (prazo 24/06/2016)}} |
* 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 TODOS os temas abaixo. | * 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 TODOS os temas abaixo. | ||
Edição das 20h59min de 7 de junho 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 (22 Mar) - Arliones
Unidade 2
- Aula 2 (24 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; uso de don't care '-'
- Fluxo da síntese (RTL, mapeamento tecnológico (ASIC/FPGA)
- Ver pag. 125 a 149 de [1]
- Aula 3 (29 Mar) - Marcos
- Processo de Síntese do código VDHL: Analise das temporizações:
- 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 atrazo)
- Ver pag. 125 a 162 de [1]
- Ver também os slides Unidade 2: Processo de Síntese do código VDHL
Unidade 3
- Aula 4 (1 Abr) - 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]
- Aula 5 (5 Abr) - 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 [1]
- Ver também os slides Unidade 3: Eficiência de Circuitos Combinacionais
Unidade 4
- Aula 6 (7 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.
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 7 (12 Abr) - 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 8 (19 Abr) - 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]
- Aula 9 (26 Abr) - Marcos
- ???
Unidade 5
- Aula 10 (3 Mai) - Arliones
- Laboratório: Processadores Embarcados (SoC) - Hardware
- Aula 11 (5 Mai) - Arliones
- Laboratório: Processadores Embarcados (SoC) - Software
- Aula 12 (10 Mai) - Arliones
- Laboratório: Processadores Embarcados (SoC) - Software e Hardware
- Aula 13 (17 Mai) - Arliones
- Laboratório: Processadores Embarcados (SoC) - SignalTap
- Aula 14 (19 Mai) - Arliones
- Eficiência de Máquinas de Estados: Introdução
- Visão Geral
- Representação gráfica
- Timing e desempenho
- Máquinas Moore e Mealy
- Aula 15 (21 Mai - sábado) - Arliones
- Eficiência de Máquinas de Estados: Moore vs Mealy - SignalTap
- Análise de saídas Moore e Mealy na prática com SignalTap
- Aula 16 (24 Mai) - Arliones
- Eficiência de Máquinas de Estados: Codificação em VHDL
- Descrição VHDL de máquina de estados
- Técnicas de codificação em 4 e 2 segmentos
- Problemas comuns na codificação / exemplo de codificação errada em 1 segmento
- Aula 17 (31 Mai) - Arliones
- Eficiência de Máquinas de Estados: Otimizações e exemplos
- Atribuição de estados
- Buffer de saídas Moore
- Exemplos de máquinas de estados
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
- Configuração e uso do Signal Tap
- Lecture 09: Hierarchical Design
- Lecture 10: Parameterized Design: Principle
- Lecture 11: Parameterized Design: Practice
- Lecture 12: Clock and Synchronization: Principle and Practice
Atividades extra
Neste tópico serão listadas as atividades extras que os alunos da disciplina deverão realizar ao longo do curso. É importante observar o prazo de entrega, pois os conceitos serão reduzidos conforme o atraso na entrega. Para a entrega no prazo os conceitos possíveis são (A, B, C, D). Entrega com até uma semana de atraso (B, C, D). Entrega com até duas semanas de atraso (C ou D). Entrega com mais de duas semanas de atraso (D).
- PARA ENTREGAR
AE1 - Circuitos Combinacionais (prazo 26/04/2016) |
---|
set_max_delay -from [get_ports *] -to [get_ports *] tp
|
AE2 - Circuitos Sequencias (prazo 17/06/2016) |
---|
**
|
AE3 - Máquinas de Estado (prazo 24/06/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 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
|