DLP29007-2018-2: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Linha 77: | Linha 77: | ||
*Finalizar a atividade: | *Finalizar a atividade: | ||
**[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 (01/10/2018) – Eficiência de Circuitos Sequenciais = | |||
<syntaxhighlight lang=vhdl> | |||
--============================= | |||
-- Listing 8.10 universal shift register | |||
--============================= | |||
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; | |||
</syntaxhighlight> |
Edição das 16h31min de 1 de outubro de 2018
1 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)
2 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
3 Aula 2 (03/08/2018) – Complexidade e Projeto de Sistemas Digitais
4 Aula 3 (06/08/2018) – Prática Signal Tap
- Finalização do assunto sobre complexidade
5 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
6 Aula 5 (17/08/2018) – Tempos de Propagação (cont.) e Complexidade
- Como desconsiderar o tempo de propagação de entrada e saída.
7 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
8 Aula 7 (20/08/2018) – Síntese do VHDL
- Criação da tabela de operadores (cont.)
9 Aula 8 (31/08/2018) – Síntese do VHDL
- Análise tabela
- Correção problema operador
10 Aula 9 (03/09/2018) – Síntese do VHDL
- Lecture 02: Synthesis of VHDL Code
- Concepção dos tipos de dados em VHDL
11 Aula 10 (10/09/2018) – Trabalho A1 (Aula Extra)
12 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
13 Aula 12 (17/09/2018) – Aula cedida Prof. Noronha
14 Aula 13 (21/09/2018) – Eficiência de Circuitos Combinacionais (cont.)
- Finalizar a atividade:
15 Aula 14 (01/10/2018) – Eficiência de Circuitos Sequenciais
--=============================
-- Listing 8.10 universal shift register
--=============================
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;