0
Universidade Federal de Santa Catarina         Centro Tecnológico – CTC    Departamento de Engenharia Elétrica            ...
Sistemas DigitaisCircuitos codificadores e decodificadores              EEL7020 – Sistemas Digitais   2/49
Objetivos do laboratório1. Entender o conceito de circuitos codificadores e   decodificadores (conversores de código).2. I...
Barramentos em VHDL - “std_logic_vector”              EEL7020 – Sistemas Digitais   4/49
No circuito do lab anterior, as entradas (A, B, C) e saídas(F) possuem o tamanho de 1 bit:                       C1       ...
Assumir o mesmo circuito, porém com entradas e saídasde 4 bits:                         C1                                ...
Utilizando operandos de 4 bits• Componente C1 realiza a operação F1 = A or B or C• Componente C2 realiza a operação F2 = B...
Implementação de barramento em VHDL                          std_logic           fio           std_logic_vector       vári...
Componente C1  library IEEE;                                      4 bits  use IEEE.Std_Logic_1164.all;  entity C1 is  port...
Componente C2  library IEEE;                                      4 bits  use IEEE.Std_Logic_1164.all;  entity C2 is  port...
Componente C3  library IEEE;                                      4 bits  use IEEE.Std_Logic_1164.all;  entity C3 is  port...
Componente Mux library IEEE;                                      4 bits use IEEE.Std_Logic_1164.all; entity mux4x1 is por...
Componente Topo                                        SW(11..8)                                                       SW(...
Decodificadores em VHDL      EEL7020 – Sistemas Digitais   14/49
Display de 7-segmentos• Um display de 7-segmentos é composto por sete LEDs que podem serligados ou desligados de forma ind...
Decodificador de binário para 7-segmentos • Placa DE2 possui 7 displays de 7-segmentos, todos do tipo anodo comum (LEDs ac...
Projeto de decodificador de binário para 7-segmentos• Exemplos de valores em binários convertidos (decodificados) para 7-s...
Projeto de decodificador “binário para 7-segmentos”                                                    7 bits             ...
Componente Decod_UFSC                                                    Decod. library IEEE;                             ...
Tarefa a ser realizada na aula práticaImplementação de mini-calculadora de 8 bits personalizada                      EEL70...
Descrição funcional da mini-calculadora de 8 bits• A mini-calculadora realiza uma operação aritmética e trêsoperações lógi...
Interface com o usuário                              Resultado            Resultado                             HEX1 e HEX...
Interface com o usuário                              Resultado            Resultado                             HEX1 e HEX...
Operando B   SW(15 downto 8)   Operando A   SW(7 downto 0)                        Componente     FPGA                TOP_C...
f=A+B   Operando B   SW(15 downto 8)    8                                             8   Operando A   SW(7 downto 0)     ...
Calculadora é compostaProjeto hierárquico                                 por 8 componentes,                              ...
“top_calc”, “mux”, doisProjeto hierárquico                    “decodificadores”, e quatro                                 ...
Projeto hierárquico                      EEL7020 – Sistemas Digitais   28/49
Componente C1 (arquivo c1.vhd)  library IEEE;  use IEEE.Std_Logic_1164.all;  use IEEE.std_logic_unsigned.all; -- necessári...
Componente C2 (arquivo c2.vhd)  library IEEE;  use IEEE.Std_Logic_1164.all;  entity C2 is  port (A: in std_logic_vector(7 ...
Componente C3 (arquivo c3.vhd)  library IEEE;  use IEEE.Std_Logic_1164.all;  entity C3 is  port (A: in std_logic_vector(7 ...
Componente C4 (arquivo c4.vhd)  library IEEE;  use IEEE.Std_Logic_1164.all;  entity C4 is  port (A: in std_logic_vector(7 ...
Componente Mux (arquivo mux4x1.vhd)  library IEEE;  use IEEE.Std_Logic_1164.all;  entity mux4x1 is  port (F1, F2, F3, F4: ...
Componente Decod7seg Componente a ser implementado no presente lab.                       f=A+B                   8       ...
Componente top_calc (arquivo top_calc.vhd)library ieee;use ieee.std_logic_1164.all;entity top_calc is  port ( SW : in std_...
Dicas úteis1. O projeto é composto por 7 arquivos (8 componentes):    • c1.vhd – fornecido nos slides anteriores (slide 29...
Componente Decod7segComponente a ser desenvolvido no presente lab.:• Está sendo solicitada a implementação de apenas UM de...
Tabela de decodificação binário para 7-segmentos                          Saída          Entrada                          ...
Resumo da tarefa a ser realizada1. Implementar o decodificador “binário para 7-segmentos” (slides 19 e 38).2. Esse novo co...
Animação do PORT MAPbeginend topo_stru;   -- END da architecture                                                          ...
Animação do PORT MAP – C1begin                                                           f=A+B L1: C1 port map (SW(7 downt...
Animação do PORT MAP – C2begin                                                           f=A+B L1: C1 port map (SW(7 downt...
Animação do PORT MAP – C3begin                                                           f=A+B L1: C1 port map (SW(7 downt...
Animação do PORT MAP – C4begin                                                           f=A+B L1: C1 port map (SW(7 downt...
Animação do PORT MAP – mux4x1begin                                                           f=A+B L1: C1 port map (SW(7 d...
Animação do PORT MAP – Decod7segbegin                                                           f=A+B L1: C1 port map (SW(...
Animação do PORT MAP – Decod7segbegin                                                           f=A+B L1: C1 port map (SW(...
Animação do PORT MAPbegin                                                           f=A+B L1: C1 port map (SW(7 downto 0),...
Mini-calculadora de 8 bits  Operando B                             f=A+B  SW(15 downto 8)                        8  Operan...
Upcoming SlideShare
Loading in...5
×

Lab5 decod 7seg

320

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
320
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
31
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Lab5 decod 7seg"

  1. 1. Universidade Federal de Santa Catarina Centro Tecnológico – CTC Departamento de Engenharia Elétrica http://gse.ufsc.br“EEL7020 – Sistemas Digitais” Prof. Eduardo Augusto Bezerra Eduardo.Bezerra@eel.ufsc.br Florianópolis, agosto de 2012.
  2. 2. Sistemas DigitaisCircuitos codificadores e decodificadores EEL7020 – Sistemas Digitais 2/49
  3. 3. Objetivos do laboratório1. Entender o conceito de circuitos codificadores e decodificadores (conversores de código).2. Implementação de codificadores e decodificadores em VHDL.3. Uso de barramentos (vetores de sinais) em VHDL – std_logic_vector.4. Estudo de caso: projeto de calculadora personalizada, com apresentação dos resultados em displays de 7-segmentos. EEL7020 – Sistemas Digitais 3/49
  4. 4. Barramentos em VHDL - “std_logic_vector” EEL7020 – Sistemas Digitais 4/49
  5. 5. No circuito do lab anterior, as entradas (A, B, C) e saídas(F) possuem o tamanho de 1 bit: C1 topoC SW(2) F1B SW(1) LEDR(7)A SW(0) Mux 4x1 LEDR(6) LEDR(5) C2 LEDR(4) LEDR(3) 00 LEDR(2) F2 01 LEDR(1) LEDR(0) 10 0 11 F C3 2 bits F3SeleçãoSW(17..16) EEL7020 – Sistemas Digitais 5/49
  6. 6. Assumir o mesmo circuito, porém com entradas e saídasde 4 bits: C1 topoC SW(11..8) 4 bits F1B SW(7..4) 4 bits 4 bitsA SW(3..0) Mux 4x1 4 bits LEDR(7) LEDR(6) C2 LEDR(5) 00 LEDR(4) F2 01 LEDR(3) LEDR(2) LEDR(1) 4 bits 10 4 0 11 bits F LEDR(0) C3 2 bits F3 4 bitsSeleçãoSW(17..16) EEL7020 – Sistemas Digitais 6/49
  7. 7. Utilizando operandos de 4 bits• Componente C1 realiza a operação F1 = A or B or C• Componente C2 realiza a operação F2 = B xor C• Operandos de 1 bit - ex. A = 0, B = 1, C = 0• Operandos de 4 bits - ex. A = 0101, B = 1000, C = 0001 1 bit 4 bits 0 0101 1 0 1000 1000 0 1 0001 0001F1 = 1 F2 = 1 F1 = 1101 F2 = 1001 EEL7020 – Sistemas Digitais 7/49
  8. 8. Implementação de barramento em VHDL std_logic fio std_logic_vector vários fios (barramento)• std_logic_vector é utilizado para implementar um “vetor” de sinais (vários fios, barramento).• Por exemplo, a saída F deverá ser definida na entity como: F: out std_logic_vector(3 downto 0); EEL7020 – Sistemas Digitais 8/49
  9. 9. Componente C1 library IEEE; 4 bits use IEEE.Std_Logic_1164.all; entity C1 is port (A: in std_logic_vector(3 downto 0); B: in std_logic_vector(3 downto 0); C: in std_logic_vector(3 downto 0); F: out std_logic_vector(3 downto 0) ); end C1; architecture c1_estr of C1 is begin F <= A or B or C; end c1_estr; 4 bits EEL7020 – Sistemas Digitais 9/49
  10. 10. Componente C2 library IEEE; 4 bits use IEEE.Std_Logic_1164.all; entity C2 is port (A: in std_logic_vector(3 downto 0); B: in std_logic_vector(3 downto 0); F: out std_logic_vector(3 downto 0) ); end C2; architecture c2_estr of C2 is begin F <= A xor B; end c2_estr; 4 bits EEL7020 – Sistemas Digitais 10/49
  11. 11. Componente C3 library IEEE; 4 bits use IEEE.Std_Logic_1164.all; entity C3 is port (A: in std_logic_vector(3 downto 0); B: in std_logic_vector(3 downto 0); C: in std_logic_vector(3 downto 0); F: out std_logic_vector(3 downto 0) ); end C3; architecture c3_estr of C3 is begin -- ver lab. sobre componentes end c1_estr; EEL7020 – Sistemas Digitais 11/49
  12. 12. Componente Mux library IEEE; 4 bits use IEEE.Std_Logic_1164.all; entity mux4x1 is port (F1: in std_logic_vector(3 downto 0); F2: in std_logic_vector(3 downto 0); F3: in std_logic_vector(3 downto 0); F4: in std_logic_vector(3 downto 0); sel: in std_logic_vector(1 downto 0); 2 bits F: out std_logic_vector(3 downto 0) ); F1 end mux4x1; architecture mux_bhv of mux4x1 is F2 F begin -- ver lab. sobre Mux F3 sel end mux_bhv; EEL7020 – Sistemas Digitais 12/49
  13. 13. Componente Topo SW(11..8) SW(7..4) F1library ieee; SW(3..0) LEDR(3..0)use ieee.std_logic_1164.all;entity topo is port ( SW : IN STD_LOGIC_VECTOR(17 downto 0); F2 LEDR : OUT STD_LOGIC_VECTOR(17 downto 0) );end topo;architecture topo_estru of topo is F3 signal F1, F2, F3: std_logic_vector(3 downto 0); component C1 SW(17..16) port (A : in std_logic_vector(3 downto 0); B : in std_logic_vector(3 downto 0); C : in std_logic_vector(3 downto 0); begin F : out std_logic_vector(3 downto 0)); end component; L0: C1 port map (SW(3 downto 0), component C2 SW(7 downto 4), SW(11 downto 8), F1); port (A : in std_logic_vector(3 downto 0); B : in std_logic_vector(3 downto 0); L1: C2 port map (SW(3 downto 0), F : out std_logic_vector(3 downto 0)); SW(7 downto 4), SW(11 downto 8), F2); end component;component C3 L2: C3 port map (SW(3 downto 0), port (A : in std_logic_vector(3 downto 0); SW(7 downto 4), SW(11 downto 8), F3); B : in std_logic_vector(3 downto 0); C : in std_logic_vector(3 downto 0); F : out std_logic_vector(3 downto 0) L3: mux4x1 port map (F1, F2, F3, ); SW(17 downto 16), LEDR(3 downto 0)); end component; -- INCLUIR AQUI O Mux end topo_estru; -- END da architecture EEL7020 – Sistemas Digitais 13/49
  14. 14. Decodificadores em VHDL EEL7020 – Sistemas Digitais 14/49
  15. 15. Display de 7-segmentos• Um display de 7-segmentos é composto por sete LEDs que podem serligados ou desligados de forma independente.• Anodo comum - terminais anodo dos LEDs estão conectados a Vcc, ecada LED é ligado ao conectar seu catodo em GND.• Catodo comum - terminais catodo dos LEDs estão conectados a GND,e cada LED é ligado ao conectar seu anodo em Vcc. Cátodo comum Ânodo comum EEL7020 – Sistemas Digitais 15/49
  16. 16. Decodificador de binário para 7-segmentos • Placa DE2 possui 7 displays de 7-segmentos, todos do tipo anodo comum (LEDs acendem com GND, ou zero lógico). • Para escrever um valor binário em um dos displays, é preciso realizar uma conversão do código binário para o código 7-segmentos. • Os 3 bits de entrada do circuito “Decod. 7-seg” são decodificados, e a palavra de 7 bits gerada é enviada para o display de 7 segmentos. Decod. 7-seg EEL7020 – Sistemas Digitais 16/49
  17. 17. Projeto de decodificador de binário para 7-segmentos• Exemplos de valores em binários convertidos (decodificados) para 7-segmentos, visando escrita no display da placa DE2 anodo comum) 7 bits C2 C1 C0 6543210 Letra Decod. 0 0 0 1000001 U 7-seg 0 0 1 0001110 F 0 1 0 0010010 S 0 1 1 1000110 C 1 1 1 1111111• Nesse exemplo, ao receber “000” na entrada, o decodificador gera ocódigo equivalente ao acendimento da letra “U” no display 7-seg.• Ao receber “111”, todos os segmentos são desligados.• Notar que por ser do tipo anodo comum, um “0” liga um segmento. EEL7020 – Sistemas Digitais 17/49
  18. 18. Projeto de decodificador “binário para 7-segmentos” 7 bits C2 C1 C0 6543210 Letra Decod. 0 0 0 1000001 U 7-seg 0 0 1 0001110 F 0 1 0 0010010 S 0 1 1 1000110 C 1 1 1 1111111• Um circuito para implementar a lógica do decodificador em questãopoderia ser projetado utilizando vários métodos: • Soma de produtos: F(0) = C2’C1’C0’ + C2C1C0 F(1) = C2’C1’C0 + C2’C1C0’ + C2’C1C0 + C2C1C0 F(2) = ... • Análise comportamental: F = “1000001” quando C2C1C0 = “000” senão “0001110” quando C2C1C0 = “001” senão ... senão “1111111” EEL7020 – Sistemas Digitais 18/49
  19. 19. Componente Decod_UFSC Decod. library IEEE; 7-seg use IEEE.Std_Logic_1164.all; entity decodUFSC is 3 bits port (C: in std_logic_vector(2 downto 0); F: out std_logic_vector(6 downto 0) ); end decodUFSC; 7 bits architecture decod_bhv of decodUFSC is begin F <= "1000001" when C = "000" else -- U "0001110" when C = "001" else -- F "0010010" when C = "010" else -- S "1000110" when C = "011" else -- C "1111111"; end decod_bhv; EEL7020 – Sistemas Digitais 19/49
  20. 20. Tarefa a ser realizada na aula práticaImplementação de mini-calculadora de 8 bits personalizada EEL7020 – Sistemas Digitais 20/49
  21. 21. Descrição funcional da mini-calculadora de 8 bits• A mini-calculadora realiza uma operação aritmética e trêsoperações lógicas, todas de 8 bits: • F1 = A + B -- operação aritmética ADIÇÃO • F2 = A or B • F3 = A xor B • F4 = not A• Para utilizar a mini-calculadora é necessário: 1. Fornecer o operando A nas chaves SW(7..0). 2. Fornecer o operando B nas chaves SW(15..8). 3. Selecionar a operação desejada nas chaves SW(17..16). 4. O resultado será apresentado em HEXADECIMAL nos displays de sete segmentos (HEX0 e HEX1), e em BINÁRIO nos LEDs vermelhos (LEDR). EEL7020 – Sistemas Digitais 21/49
  22. 22. Interface com o usuário Resultado Resultado HEX1 e HEX0 LEDR(7..0) Operação Operando B Operando A SW(17..16) SW(15..8) SW(7..0)• Para realizar uma das quatro operações disponíveis (F1, F2,F3, F4), a calculadora personalizada utiliza: • as chaves SW(7..0) para leitura do operando A • as chaves SW(15..8) para leitura do operando B • as chaves SW(17..16) para seleção da operação desejada• Os resultados são apresentados em displays de 7-segmentose nos LEDs vermelhos. EEL7020 – Sistemas Digitais 22/49
  23. 23. Interface com o usuário Resultado Resultado HEX1 e HEX0 LEDR(7..0) Operação Operando B Operando A SW(17..16) SW(15..8) SW(7..0) Seletor SW(17..16) Saída (LEDR e displays 7-seg) 00 A+B 01 A or B 10 A xor B 11 not A EEL7020 – Sistemas Digitais 23/49
  24. 24. Operando B SW(15 downto 8) Operando A SW(7 downto 0) Componente FPGA TOP_CALC (esse componente possui 7 componentes internamente) LEDR(7 downto 0)Seleção da operaçãoSW(17 downto 16) EEL7020 – Sistemas Digitais 24/49
  25. 25. f=A+B Operando B SW(15 downto 8) 8 8 Operando A SW(7 downto 0) 8 F(7 downto 4) Decod. 4 7-seg f = A or B 8 8 F1 00 8 F2 01 F F3 Mux Decod. 10 8 FPGA F4 11 4 F(3 downto 0) 7-seg 8 F = A xor B 2 sel 8 8 f = not A LEDR(7 downto 0)Seleção da operação 8 8(+, or, xor, not)SW(17 downto 16) top_calc.vhd EEL7020 – Sistemas Digitais 25/49
  26. 26. Calculadora é compostaProjeto hierárquico por 8 componentes, sendo 7 apresentados a seguir + o top_calc. EEL7020 – Sistemas Digitais 26/49
  27. 27. “top_calc”, “mux”, doisProjeto hierárquico “decodificadores”, e quatro “funções lógicas e aritméticas”. EEL7020 – Sistemas Digitais 27/49
  28. 28. Projeto hierárquico EEL7020 – Sistemas Digitais 28/49
  29. 29. Componente C1 (arquivo c1.vhd) library IEEE; use IEEE.Std_Logic_1164.all; use IEEE.std_logic_unsigned.all; -- necessário para o + entity C1 is port (A: in std_logic_vector(7 downto 0); B: in std_logic_vector(7 downto 0); F: out std_logic_vector(7 downto 0) ); end C1; f=A+B architecture circuito of C1 is begin F <= A + B; end circuito; EEL7020 – Sistemas Digitais 29/49
  30. 30. Componente C2 (arquivo c2.vhd) library IEEE; use IEEE.Std_Logic_1164.all; entity C2 is port (A: in std_logic_vector(7 downto 0); B: in std_logic_vector(7 downto 0); F: out std_logic_vector(7 downto 0) ); end C2; architecture circuito of C2 is f = A or B begin F <= A or B; end circuito; EEL7020 – Sistemas Digitais 30/49
  31. 31. Componente C3 (arquivo c3.vhd) library IEEE; use IEEE.Std_Logic_1164.all; entity C3 is port (A: in std_logic_vector(7 downto 0); B: in std_logic_vector(7 downto 0); F: out std_logic_vector(7 downto 0) ); end C3; architecture circuito of C3 is begin F <= A xor B; F = A xor B end circuito; EEL7020 – Sistemas Digitais 31/49
  32. 32. Componente C4 (arquivo c4.vhd) library IEEE; use IEEE.Std_Logic_1164.all; entity C4 is port (A: in std_logic_vector(7 downto 0); F: out std_logic_vector(7 downto 0) ); end C4; architecture circuito of C4 is begin F <= not A; end circuito; F = not A EEL7020 – Sistemas Digitais 32/49
  33. 33. Componente Mux (arquivo mux4x1.vhd) library IEEE; use IEEE.Std_Logic_1164.all; entity mux4x1 is port (F1, F2, F3, F4: in std_logic_vector(7 downto 0); sel: in std_logic_vector(1 downto 0); F: out std_logic_vector(7 downto 0) ); end mux4x1; architecture circuito of mux4x1 is begin F <= F1 when sel = "00" else F2 when sel = "01" else F3 when sel = "10" else F4; end circuito; EEL7020 – Sistemas Digitais 33/49
  34. 34. Componente Decod7seg Componente a ser implementado no presente lab. f=A+B 8 8 8 F(7 downto 4) Decod. 7-seg f = A or B 4 8 8 F1 00 8 F2 01 F F3 Mux Decod. 10 8 4 7-seg F = A xor B F4 11 F(3 downto 0) 8 2 sel 8 8 f = not A 8 8 EEL7020 – Sistemas Digitais 34/49
  35. 35. Componente top_calc (arquivo top_calc.vhd)library ieee;use ieee.std_logic_1164.all;entity top_calc is port ( SW : in std_logic_vector (17 downto 0); begin HEX0, HEX1: out std_logic_vector(6 downto 0); LEDR : out std_logic_vector (17 downto 0) L1: C1 port map (SW(7 downto 0), ); SW(15 downto 8), F1);end top_calc;architecture topo_stru of top_calc is L2: C2 port map (SW(7 downto 0), signal F, F1, F2, F3, F4: std_logic_vector (7 downto 0); SW(15 downto 8), F2); component C1 port (A : in std_logic_vector(7 downto 0); L3: C3 port map (SW(7 downto 0), B : in std_logic_vector(7 downto 0); SW(15 downto 8), F3); F : out std_logic_vector(7 downto 0)); end component; L4: C4 port map (SW(7 downto 0), F4); -- componentes C2 e C3, idem C1 component C4 L5: mux4x1 port map (F1, F2, F3, F4, port (A : in std_logic_vector(7 downto 0); SW(17 downto 16), F); F : out std_logic_vector(7 downto 0) ); L6: Decod7seg port map (F(3 downto 0), end component; HEX0);component mux4x1 port (F1, F2, F3, F4: in L7: Decod7seg port map (F(7 downto 4), std_logic_vector(7 downto 0); HEX1); sel: in std_logic_vector(1 downto 0); F: out std_logic_vector(7 downto 0) LEDR(7 downto 0) <= F; );end component; end topo_stru; -- END da architecture-- Incluir aqui o componente Decod7seg-- (apenas uma declaração do Decod7seg) EEL7020 – Sistemas Digitais 35/49
  36. 36. Dicas úteis1. O projeto é composto por 7 arquivos (8 componentes): • c1.vhd – fornecido nos slides anteriores (slide 29) • c2.vhd – fornecido nos slides anteriores (slide 30) • c3.vhd – fornecido nos slides anteriores (slide 31) • c4.vhd – fornecido nos slides anteriores (slide 32) • mux4x1.vhd – fornecido nos slides anteriores (slide 33) • decod7seg.vhd – a ser desenvolvido (ver exemplo no slide 19) • top_calc.vhd – parcialmente fornecido nos slides anteriores (slide 35)2. Cuidar a utilização correta do componente decodificador no circuito (topo). É necessário definir apenas um component decod7seg, e a seguir criar duas cópias desse componente com o port map (ver top_calc no slide 35).3. Para implementar o decodificador de binário para 7-segmentos, utilizar como base o exemplo do slide 19. Completar a tabela do slide 38, de forma a obter todos os códigos em hexadecimal necessários. EEL7020 – Sistemas Digitais 36/49
  37. 37. Componente Decod7segComponente a ser desenvolvido no presente lab.:• Está sendo solicitada a implementação de apenas UM decodificador Decod. 4 7-seg• A entity desse decodificador deverá possui apenas uma porta de entrada de 4 bits, e apenas uma porta de saída de 7 bits.• A replicação do decodificador é realizada no “topo” da arquitetura, ao se utilizar o comando port map do VHDL – VER L6: e L7: no slide 35. EEL7020 – Sistemas Digitais 37/49
  38. 38. Tabela de decodificação binário para 7-segmentos Saída Entrada Display 6543210 0000 1000000 0 0001 1111001 1 0010 0100100 2 0011 0110000 3 0100 0011001 4 0101 0010010 5 0110 0000010 6 0111 1111000 7 1000 0000000 8 ... ... 9, A, b, C, d 1110 0000110 E 1111 0001110 EEL7020 – Sistemas Digitais F 38/49
  39. 39. Resumo da tarefa a ser realizada1. Implementar o decodificador “binário para 7-segmentos” (slides 19 e 38).2. Esse novo componente será um decodificador genérico, ou seja, poderá ser utilizado em qualquer projeto que precise de um decodificador com a tabela verdade do slide 38. Assim, não deverá ter nenhum “ajuste especial” para funcionamento com os demais componentes da calculadora. Deverá possuir a entrada de 4 bits e a saída de 6 bits definida no slide 38.3. Criar um novo projeto denominado top_calc (esse é o nome da entity do arquivo “topo” – slide 35), e utilizar os componentes VHDL dos slides 29 a 33 para implementação da calculadora.4. Editar o componente top_calc do slide 35, e incluir a declaração do novo componente decodificador (usando component).5. Verificar o funcionamento da calculadora no simulador e no kit FPGA. EEL7020 – Sistemas Digitais 39/49
  40. 40. Animação do PORT MAPbeginend topo_stru; -- END da architecture top_calc EEL7020 – Sistemas Digitais 40/49
  41. 41. Animação do PORT MAP – C1begin f=A+B L1: C1 port map (SW(7 downto 0), 8 SW(15 downto 8), F1); 8 8 F1end topo_stru; -- END da architecture EEL7020 – Sistemas Digitais 41/49
  42. 42. Animação do PORT MAP – C2begin f=A+B L1: C1 port map (SW(7 downto 0), 8 SW(15 downto 8), F1); 8 8 L2: C2 port map (SW(7 downto 0), SW(15 downto 8), F2); f = A or B 8 8 F1 8 F2end topo_stru; -- END da architecture top_calc EEL7020 – Sistemas Digitais 42/49
  43. 43. Animação do PORT MAP – C3begin f=A+B L1: C1 port map (SW(7 downto 0), 8 SW(15 downto 8), F1); 8 8 L2: C2 port map (SW(7 downto 0), SW(15 downto 8), F2); f = A or B 8 L3: C3 port map (SW(7 downto 0), 8 F1 SW(15 downto 8), F3); 8 F2 F3 F = A xor B 8 8 8end topo_stru; -- END da architecture top_calc EEL7020 – Sistemas Digitais 43/49
  44. 44. Animação do PORT MAP – C4begin f=A+B L1: C1 port map (SW(7 downto 0), 8 SW(15 downto 8), F1); 8 8 L2: C2 port map (SW(7 downto 0), SW(15 downto 8), F2); f = A or B 8 L3: C3 port map (SW(7 downto 0), 8 F1 SW(15 downto 8), F3); 8 F2 L4: C4 port map (SW(7 downto 0), F4); F3 F4 F = A xor B 8 8 8 8 f = not A 8end topo_stru; -- END da architecture top_calc EEL7020 – Sistemas Digitais 44/49
  45. 45. Animação do PORT MAP – mux4x1begin f=A+B L1: C1 port map (SW(7 downto 0), 8 SW(15 downto 8), F1); 8 8 L2: C2 port map (SW(7 downto 0), SW(15 downto 8), F2); f = A or B 8 L3: C3 port map (SW(7 downto 0), 8 F1 SW(15 downto 8), F3); 8 00 F2 01 F L4: C4 port map (SW(7 downto 0), F4); F3 Mux 10 8 F4 L5: mux4x1 port map (F1, F2, F3, F4, 11 F = A xor B SW(17 downto 16), F); 8 2 sel 8 8 8 f = not A 8end topo_stru; -- END da architecture top_calc EEL7020 – Sistemas Digitais 45/49
  46. 46. Animação do PORT MAP – Decod7segbegin f=A+B L1: C1 port map (SW(7 downto 0), 8 SW(15 downto 8), F1); 8 8 L2: C2 port map (SW(7 downto 0), SW(15 downto 8), F2); f = A or B 8 L3: C3 port map (SW(7 downto 0), 8 F1 SW(15 downto 8), F3); 8 00 F2 01 F L4: C4 port map (SW(7 downto 0), F4); F3 Mux Decod. 10 8 4 7-seg F4 F(3 downto 0) L5: mux4x1 port map (F1, F2, F3, F4, 11 F = A xor B SW(17 downto 16), F); 8 2L6: Decod7seg port map (F(3 downto 0), 8 sel HEX0); 8 8 f = not A 8end topo_stru; -- END da architecture top_calc EEL7020 – Sistemas Digitais 46/49
  47. 47. Animação do PORT MAP – Decod7segbegin f=A+B L1: C1 port map (SW(7 downto 0), 8 SW(15 downto 8), F1); 8 8 L2: C2 port map (SW(7 downto 0), F(7 downto 4) Decod. SW(15 downto 8), F2); 7-seg f = A or B 4 8 L3: C3 port map (SW(7 downto 0), 8 F1 SW(15 downto 8), F3); 8 00 F2 01 F L4: C4 port map (SW(7 downto 0), F4); F3 Mux Decod. 10 8 4 7-seg F4 F(3 downto 0) L5: mux4x1 port map (F1, F2, F3, F4, 11 F = A xor B SW(17 downto 16), F); 8 2L6: Decod7seg port map (F(3 downto 0), 8 sel HEX0); 8L7: Decod7seg port map (F(7 downto 4), HEX1); 8 f = not A 8end topo_stru; -- END da architecture top_calc EEL7020 – Sistemas Digitais 47/49
  48. 48. Animação do PORT MAPbegin f=A+B L1: C1 port map (SW(7 downto 0), 8 SW(15 downto 8), F1); 8 8 L2: C2 port map (SW(7 downto 0), F(7 downto 4) Decod. SW(15 downto 8), F2); 7-seg f = A or B 4 8 L3: C3 port map (SW(7 downto 0), 8 F1 SW(15 downto 8), F3); 8 00 F2 01 F L4: C4 port map (SW(7 downto 0), F4); F3 Mux Decod. 10 8 4 7-seg F4 F(3 downto 0) L5: mux4x1 port map (F1, F2, F3, F4, 11 F = A xor B SW(17 downto 16), F); 8 2L6: Decod7seg port map (F(3 downto 0), 8 sel HEX0); 8L7: Decod7seg port map (F(7 downto 4), HEX1); f = not A LEDR(7 downto 0) <= F; 8 8end topo_stru; -- END da architecture top_calc EEL7020 – Sistemas Digitais 48/49
  49. 49. Mini-calculadora de 8 bits Operando B f=A+B SW(15 downto 8) 8 Operando A 8 SW(7 downto 0) 8 F(7 downto 4) Decod. 7-seg f = A or B 4 8 8 F1 00 8 F2 01 F F3 Mux Decod. 10 8 4 7-seg F4 11 F(3 downto 0) F = A xor B 2 8 sel 8 8 f = not A LEDR(7 downto 0)Seleção da operação 8 8(+, or, xor, not) top_calcSW(17 downto 16) EEL7020 – Sistemas Digitais 49/49
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×