Mudanças entre as edições de "DLP29007-2018-2"
Ir para navegação
Ir para pesquisar
(27 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
Linha 79: | Linha 79: | ||
**[http://tele.sj.ifsc.edu.br/~roberto.matos/dlp2/pratica_cap7.zip Prática Cap. 7] | **[http://tele.sj.ifsc.edu.br/~roberto.matos/dlp2/pratica_cap7.zip Prática Cap. 7] | ||
− | =Aula 14 (28/ | + | =Aula 14 (28/09/2018) – Eficiência de Circuitos Sequenciais = |
* [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture04-efficient_seq_circuits.pdf Lecture 04: Efficient Design of Sequential Circuits] | * [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture04-efficient_seq_circuits.pdf Lecture 04: Efficient Design of Sequential Circuits] | ||
Linha 131: | Linha 131: | ||
https://www.intel.co.jp/content/dam/altera-www/global/ja_JP/pdfs/literature/hb/cyc/cyc_c5v1-02.pdf | https://www.intel.co.jp/content/dam/altera-www/global/ja_JP/pdfs/literature/hb/cyc/cyc_c5v1-02.pdf | ||
− | = 05/10/2018 – | + | = Aula 16 (05/10/2018) – Projeto de Circuitos Sequenciais = |
+ | * Problemas clássicos de implementação | ||
+ | * [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture05-sequetial_circuit_design.pdf Lecture 05: Design of Sequential Circuits: Practice] | ||
− | + | * Próximas aulas: Implementação Relógio. | |
− | =Aula | + | = Aula 17 (15/10/2018) – Implementação Relógio = |
*[http://academic.csuohio.edu/chu_p/rtl/chu_rtL_book/rtL_src_code.rar Código dos Exemplos 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] | ||
Linha 157: | Linha 159: | ||
*Implementar um bloco de conversão Binário para BCD (ex.: Double-Dabble) e adicionar um decodificadores de 7-segmentos. Preparar os dois circuitos para gravação na DE2-115. Teste os dois circuitos e apresente. | *Implementar um bloco de conversão Binário para BCD (ex.: Double-Dabble) e adicionar um decodificadores de 7-segmentos. Preparar os dois circuitos para gravação na DE2-115. Teste os dois circuitos e apresente. | ||
− | + | = Aula 18 (19/10/2018) – Implementação Relógio (cont.) = | |
− | = 19/10/2018 – Implementação Relógio (cont.) = | ||
* Continuar implementando a proposta do Relógio | * Continuar implementando a proposta do Relógio | ||
* Deadline da implementação 26/10/2018 | * Deadline da implementação 26/10/2018 | ||
− | = 26/10/2018 – Implementação Relógio (cont.) = | + | = Aula 19 (26/10/2018) – Implementação Relógio (cont.) = |
+ | |||
+ | |||
+ | = Aula 20 (29/10/2018) – Implementação Relógio (cont.) = | ||
+ | * Finalizar e otimizar implementação do Relógio | ||
+ | |||
+ | |||
+ | = Aula 21 (30/10/2018) - Aula EXTRA = | ||
+ | |||
+ | = 09/11/2018 - Não houve aula (Problemas de saúde) = | ||
+ | |||
+ | = 12/11/2018 - FSM = | ||
+ | * [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture06-fsm.pdf Lecture 06: Finite State Machines: Principle and Practice] | ||
+ | |||
+ | = 23/11/2018 - FSM (cont.) = | ||
+ | |||
+ | ==Assunto== | ||
+ | * Moore vs Mealy output | ||
+ | **Edge Detection Circuit | ||
+ | **Comparação | ||
+ | *VHDL Description of FSM | ||
+ | **Multi-segment coding style | ||
+ | **Two-segment coding style | ||
+ | * State Assignment | ||
+ | ** Implícito vs Explícito | ||
+ | **Handling the Unused State | ||
+ | |||
+ | ==Exercício== | ||
+ | *Analisando código "multi-segmento", dois segmentos e o problemático "um segmento". | ||
+ | |||
+ | ==Materiais== | ||
+ | * [http://docente.ifsc.edu.br/arliones.hoeller/dlp2/slides/dlp29007-lecture06-fsm.pdf Lecture 06: Finite State Machines: Principle and Practice] | ||
+ | * [http://tele.sj.ifsc.edu.br/~roberto.matos/dlp2/memctrl.vhd FSM Memory Controller] | ||
+ | |||
+ | = 26/11/2018 - FSM (cont.)= | ||
+ | |||
+ | * Moore output buffering | ||
+ | ** Clever State assignment | ||
+ | ** Look-ahead output circuit | ||
+ | |||
+ | = 30/11/2018 - FSM Exercícios = | ||
+ | |||
+ | https://limesurvey.ifsc.edu.br/index.php/673379?lang=pt-BR | ||
+ | |||
+ | = 07/12/2018 - = | ||
+ | |||
+ | = 10/12/2018 - = | ||
+ | |||
+ | = 14/12/2018 - = |
Edição atual tal como às 14h51min de 27 de julho de 2021
Dispositivos Lógicos Programáveis 2
- Professor: Roberto de Matos
- Horário das aulas e atendimento paralelo
- Plano de Ensino (NÃO OFICIAL - SENDO REVISTO)
Aula 1 (27/07/2018) – Apresentação
- Apresentação do professor.
- Apresentação dos alunos: Nome, perfil, preferências, etc.
- Apresentação da disciplina.
- Projetos com FPGA
Aula 2 (03/08/2018) – Complexidade e Projeto de Sistemas Digitais
Aula 3 (06/08/2018) – Prática Signal Tap
- Finalização do assunto sobre complexidade
Aula 4 (10/08/2018) – Tempos de Propagação e Logic Lock
- Medição de tempos de propagação em circuitos combinacionais
- Uso de Logic Lock para definir a área a ser ocupada pelo circuito
Aula 5 (17/08/2018) – Tempos de Propagação (cont.) e Complexidade
- Como desconsiderar o tempo de propagação de entrada e saída.
Aula 6 (20/08/2018) – Síntese do VHDL
- Lecture 02: Synthesis of VHDL Code
- Concepção dos operadores em VHDL
- Criação da tabela de operadores
Aula 7 (24/08/2018) – Síntese do VHDL
- Criação da tabela de operadores (cont.)
Aula 8 (31/08/2018) – Síntese do VHDL
- Análise tabela
- Correção problema operador
Aula 9 (03/09/2018) – Síntese do VHDL
- Lecture 02: Synthesis of VHDL Code
- Concepção dos tipos de dados em VHDL
Aula 10 (10/09/2018) – Trabalho A1 (Aula Extra)
- Trabalhar na implementação e tirar dúvidas da A1.
Aula 11 (14/09/2018) – Eficiência de Circuitos Combinacionais
- Leitura recomendada:
- Capítulo 7 do livro do Chu;
- Notas de aula 03.
- Lecture 03: Efficient Design of Combinational Circuits
Aula 12 (17/09/2018) – Aula cedida Prof. Noronha
Aula 13 (21/09/2018) – Eficiência de Circuitos Combinacionais (cont.)
- Finalizar a atividade:
Aula 14 (28/09/2018) – Eficiência de Circuitos Sequenciais
Aula 15 (01/10/2018) – Eficiência de Circuitos Sequenciais (cont.)
library ieee;
use ieee.std_logic_1164.all;
entity shift_register is
port(
clk, reset: in std_logic;
ctrl: in std_logic_vector(1 downto 0);
d: in std_logic_vector(3 downto 0);
q: out std_logic_vector(3 downto 0)
);
end shift_register;
architecture two_seg_arch of shift_register is
signal r_reg: std_logic_vector(3 downto 0);
signal r_next: std_logic_vector(3 downto 0);
begin
-- register
process(clk,reset)
begin
if (reset='1') then
r_reg <= (others=>'0');
elsif (clk'event and clk='1') then
r_reg <= r_next;
end if;
end process;
-- next-state logic
with ctrl select
r_next <=
r_reg when "00", --no op
r_reg(2 downto 0) & d(0) when "01", --shift left;
d(3) & r_reg(3 downto 1) when "10", --shift right;
d when others;
-- output
q <= r_reg;
end two_seg_arch;
https://www.intel.co.jp/content/dam/altera-www/global/ja_JP/pdfs/literature/hb/cyc/cyc_c5v1-02.pdf
Aula 16 (05/10/2018) – Projeto de Circuitos Sequenciais
- Problemas clássicos de implementação
- Lecture 05: Design of Sequential Circuits: Practice
- Próximas aulas: Implementação Relógio.
Aula 17 (15/10/2018) – Implementação Relógio
- Binary to BCD:
Estudar e implementar um relógio HH:MM:SS.CC de 24 horas com centésimos de segundos para um clock de entrada de 50 MHz.
- Versão 1 - Altere a Listing 9.5 para incluir a hora e o centésimo de segundo, pag 262-265
- Versão 2 - Altere a Listing 9.6 para incluir a hora e o centésimo de segundo, pag 262-265
- Compile/Teste as duas versões 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), e a 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 prevendo casos de "borda" para cada um dos contadores CC=99, SS=59, MM=59, HH=23.
- Implementar um bloco de conversão Binário para BCD (ex.: Double-Dabble) e adicionar um decodificadores de 7-segmentos. Preparar os dois circuitos para gravação na DE2-115. Teste os dois circuitos e apresente.
Aula 18 (19/10/2018) – Implementação Relógio (cont.)
- Continuar implementando a proposta do Relógio
- Deadline da implementação 26/10/2018
Aula 19 (26/10/2018) – Implementação Relógio (cont.)
Aula 20 (29/10/2018) – Implementação Relógio (cont.)
- Finalizar e otimizar implementação do Relógio
Aula 21 (30/10/2018) - Aula EXTRA
09/11/2018 - Não houve aula (Problemas de saúde)
12/11/2018 - FSM
23/11/2018 - FSM (cont.)
Assunto
- Moore vs Mealy output
- Edge Detection Circuit
- Comparação
- VHDL Description of FSM
- Multi-segment coding style
- Two-segment coding style
- State Assignment
- Implícito vs Explícito
- Handling the Unused State
Exercício
- Analisando código "multi-segmento", dois segmentos e o problemático "um segmento".
Materiais
26/11/2018 - FSM (cont.)
- Moore output buffering
- Clever State assignment
- Look-ahead output circuit
30/11/2018 - FSM Exercícios
https://limesurvey.ifsc.edu.br/index.php/673379?lang=pt-BR