Mudanças entre as edições de "DLP29007-2019-2"
Ir para navegação
Ir para pesquisar
Linha 68: | Linha 68: | ||
*Experimentos Circuitos Combinacionais | *Experimentos Circuitos Combinacionais | ||
** [http://docente.ifsc.edu.br/roberto.matos/dlp2_public/pratica_cap7.zip Prática Cap. 7] | ** [http://docente.ifsc.edu.br/roberto.matos/dlp2_public/pratica_cap7.zip Prática Cap. 7] | ||
+ | |||
+ | |||
+ | <syntaxhighlight lang=vhdl> | ||
+ | |||
+ | --============================= | ||
+ | -- Listing 7.19 reduced-xor-vector circuit | ||
+ | --============================= | ||
+ | library ieee; | ||
+ | use ieee.std_logic_1164.all; | ||
+ | entity reduced_xor_vector is | ||
+ | port( | ||
+ | a: in std_logic_vector(7 downto 0); | ||
+ | y: out std_logic_vector(7 downto 0) | ||
+ | ); | ||
+ | end reduced_xor_vector; | ||
+ | |||
+ | architecture direct_arch of reduced_xor_vector is | ||
+ | begin | ||
+ | y(0) <= a(0); | ||
+ | y(1) <= a(1) xor a(0); | ||
+ | y(2) <= a(2) xor a(1) xor a(0); | ||
+ | y(3) <= a(3) xor a(2) xor a(1) xor a(0); | ||
+ | y(4) <= a(4) xor a(3) xor a(2) xor a(1) xor a(0); | ||
+ | y(5) <= a(5) xor a(4) xor a(3) xor a(2) xor a(1) xor a(0); | ||
+ | y(6) <= a(6) xor a(5) xor a(4) xor a(3) xor a(2) xor a(1) | ||
+ | xor a(0); | ||
+ | y(7) <= a(7) xor a(6) xor a(5) xor a(4) xor a(3) xor a(2) | ||
+ | xor a(1) xor a(0); | ||
+ | end direct_arch; | ||
+ | |||
+ | |||
+ | |||
+ | --============================= | ||
+ | -- Listing 7.23 | ||
+ | --============================= | ||
+ | architecture optimal_tree_arch of reduced_xor_vector is | ||
+ | signal p01, p23, p45, p67, p012, | ||
+ | p0123, p456, p4567: std_logic; | ||
+ | begin | ||
+ | p01 <= a(0) xor a(1); | ||
+ | p23 <= a(2) xor a(3); | ||
+ | p45 <= a(4) xor a(5); | ||
+ | p67 <= a(6) xor a(7); | ||
+ | p012 <= p01 xor a(2); | ||
+ | p0123 <= p01 xor p23; | ||
+ | p456 <= p45 xor a(6); | ||
+ | p4567 <= p45 xor p67; | ||
+ | y(0) <= a(0); | ||
+ | y(1) <= p01; | ||
+ | y(2) <= p012; | ||
+ | y(3) <= p0123; | ||
+ | y(4) <= p0123 xor a(4); | ||
+ | y(5) <= p0123 xor p45; | ||
+ | y(6) <= p0123 xor p456; | ||
+ | y(7) <= p0123 xor p4567; | ||
+ | end optimal_tree_arch; | ||
+ | |||
+ | </syntaxhighlight> |
Edição das 17h22min de 26 de agosto de 2019
Dispositivos Lógicos Programáveis 2: Diário de Aula 2019-2
- Professor: Roberto de Matos
- Encontros: 2ª (a cada 15 dias) e 6ª às 15:40h
- Local: Laboratório de Programação
- Atendimento Paralelo: 4ª às 10h e 14h (1h cada)
- Plano de Ensino
- Cronograma de Aulas: Conteúdo Programado no Portal SIGAA
Links Úteis
- Usando os Kits de FPGA
Materiais de Aula
Aula 29/07/2019 – Apresentação
- Apresentação do professor.
- Apresentação da disciplina.
- Projetos com FPGA
Aula 02/08/2019 – Complexidade e Projeto de Sistemas Digitais
- Exemplo uC vs. FPGA
- Notas de Aula:
Aula 09/08/2019 – Complexidade e Projeto de Sistemas Digitais (cont.)
- Experimento:
- Medição de tempos de propagação em circuitos combinacionais Até Visualização dos tempos de propagação no Chip Planner
- Uso de Logic Lock para definir a área a ser ocupada pelo circuito
- Exercício:
Aula 12/08/2019 – Não Houve Aula
- FINALIZAR O EXERCÍCIO:
Aula 16/08/2019 – Síntese do VHDL
- Lecture 02: Synthesis of VHDL Code
- Concepção dos operadores em VHDL
- Experimento:
- Medição de tempos de propagação em circuitos combinacionais A partir de Configurando o compilador
- Exemplo usando DSE
- F1 Instances
Aula 23/08/2019 – Eficiência de Circuitos Combinacionais
- Leitura recomendada:
- Capítulo 7 do livro do Chu
- Notas de aula:
Aula 26/08/2019 – Eficiência de Circuitos Combinacionais
- Experimentos Circuitos Combinacionais
--=============================
-- Listing 7.19 reduced-xor-vector circuit
--=============================
library ieee;
use ieee.std_logic_1164.all;
entity reduced_xor_vector is
port(
a: in std_logic_vector(7 downto 0);
y: out std_logic_vector(7 downto 0)
);
end reduced_xor_vector;
architecture direct_arch of reduced_xor_vector is
begin
y(0) <= a(0);
y(1) <= a(1) xor a(0);
y(2) <= a(2) xor a(1) xor a(0);
y(3) <= a(3) xor a(2) xor a(1) xor a(0);
y(4) <= a(4) xor a(3) xor a(2) xor a(1) xor a(0);
y(5) <= a(5) xor a(4) xor a(3) xor a(2) xor a(1) xor a(0);
y(6) <= a(6) xor a(5) xor a(4) xor a(3) xor a(2) xor a(1)
xor a(0);
y(7) <= a(7) xor a(6) xor a(5) xor a(4) xor a(3) xor a(2)
xor a(1) xor a(0);
end direct_arch;
--=============================
-- Listing 7.23
--=============================
architecture optimal_tree_arch of reduced_xor_vector is
signal p01, p23, p45, p67, p012,
p0123, p456, p4567: std_logic;
begin
p01 <= a(0) xor a(1);
p23 <= a(2) xor a(3);
p45 <= a(4) xor a(5);
p67 <= a(6) xor a(7);
p012 <= p01 xor a(2);
p0123 <= p01 xor p23;
p456 <= p45 xor a(6);
p4567 <= p45 xor p67;
y(0) <= a(0);
y(1) <= p01;
y(2) <= p012;
y(3) <= p0123;
y(4) <= p0123 xor a(4);
y(5) <= p0123 xor p45;
y(6) <= p0123 xor p456;
y(7) <= p0123 xor p4567;
end optimal_tree_arch;