DLP29007-2018-2

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Dispositivos Lógicos Programáveis 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


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


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

Aula 7 (20/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


Aula 10 (10/09/2018) – Trabalho A1 (Aula Extra)

Aula 11 (14/09/2018) – Eficiência de Circuitos Combinacionais


Aula 12 (17/09/2018) – Aula cedida Prof. Noronha

Aula 13 (21/09/2018) – Eficiência de Circuitos Combinacionais (cont.)


Aula 14 (01/10/2018) – Eficiência de Circuitos Sequenciais


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;