Buscar

745347_729702_Labsisdig-Roteiro-Aula-15-27Jan2014

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
 
Segunda-feira, 27/01/2014 – 09h55min Página 1 
 
Aula 15 
 
Registradores de Deslocamento no 
Ambiente Quartus II 
 
 
 
Introdução e Objetivo 
 
O objetivo desta aula é aprender a projetar e implementar registradores de deslocamento e os 
dois tipos de contadores que podem ser construídos a partir deles: contadores em anel e 
contadores Johnson (ou contadores em anel torcido). 
 
 
 
 
 
 
 
 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
 
Segunda-feira, 27/01/2014 – 09h55min Página 2 
 
 
Experimentos de Laboratório 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Crie uma pasta denominada A15dddhhmmGx, onde: 
ddd: Dia da semana em que ocorre a aula (seg, ter, qua, qui, sex, sab) 
hhmm: Horário de início da aula (0700, 0850, 1040, 1330, etc.) 
x: Número do grupo, conforme o número da sua bancada (I, II, III, IV) 
 
Usando o software Quartus II, crie um projeto (“project”) denominado aula_15 na pasta 
criada no item a. O nome da entidade de mais alto nível de seu projeto é automaticamente 
escolhido pelo Quartus II como “aula_15”, mesmo nome do projeto criado e poderá ser 
alterado sempre que necessário. Levando em consideração que o projeto será 
implementado fisicamente no kit Altera DE2, é obrigatório que se escolha, como alvo da 
compilação, a família de dispositivos Cyclone II e o dispositivo EP2C35F672C6. 
 
Siga os mesmos passos descritos no guia da Aula 9 para projetar os circuitos a seguir e 
implementá-los no kit Altera DE2. Após implementar cada circuito, comprove 
praticamente o seu adequado funcionamento. 
 
Para entradas dos circuitos escolha chaves e botões do kit DE2. Para as saídas, escolha 
LEDs verdes e/ou vermelhos. 
 
Lembre-se de que cada um dos quatro botões do kit DE2 (KEY[0], KEY[1], KEY[2] e 
KEY[3]) já possui um circuito para eliminação do efeito de trepidação (“bounce”). 
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
 
Segunda-feira, 27/01/2014 – 09h55min Página 3 
 
Experimento 1 
 
Projete e implemente o registrador de deslocamento correspondente à seguinte descrição (em 
VHDL): 
 
 
library ieee; 
use ieee.std_logic_1164.all; 
 
----------------------------------------------------- 
 
entity Reg_desloc is 
 port (R : in std_logic_vector(7 downto 0); -- Entrada de dados paralela 
 clock : in std_logic; 
 L : in std_logic; -- Comando para entrada de dados paralela síncrona 
 w : in std_logic; -- Entrada de dados serial 
 Q : buffer std_logic_vector(7 downto 0)); 
end entity Reg_desloc; 
 
----------------------------------------------------- 
 
architecture comportamento of Reg_desloc is 
begin 
 process 
 begin 
 wait until clock'event and clock='1'; 
 if L='0' then 
 Q <= R; 
 else 
 Q(0) <= Q(1); 
 Q(1) <= Q(2); 
 Q(2) <= Q(3); 
 Q(3) <= Q(4); 
 Q(4) <= Q(5); 
 Q(5) <= Q(6); 
 Q(6) <= Q(7); 
 Q(7) <= w; 
 end if; 
 end process; 
end comportamento; 
R[7..0]
clock
L
w
Q[7..0]
Reg_desloc
inst
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
 
Segunda-feira, 27/01/2014 – 09h55min Página 4 
 
Modifique o projeto do Experimento 1 para obter um contador em anel. Em seguida, modifique-
o para obter um contador Johnson. Observe os circuitos gerados pelo Quartus II e crie um 
símbolo para cada circuito. 
 
 
Experimento 2 
 
-- Contador em Anel 
 
library ieee; 
use ieee.std_logic_1164.all; 
 
----------------------------------------------------- 
 
entity Cont_anel is 
 port (clock : in std_logic; 
 Inic : in std_logic; -- Comando para inicialização do contador 
 Q : buffer std_logic_vector(7 downto 0)); 
end entity Cont_anel; 
 
----------------------------------------------------- 
 
architecture comportamento of Cont_anel is 
begin 
 process 
 variable temp: std_logic; 
 begin 
 wait until clock'event and clock='1'; 
 if Inic='0' then 
 Q <= "10000000"; 
 else 
 temp := Q(0); 
 Q(0) <= Q(1); 
 Q(1) <= Q(2); 
 Q(2) <= Q(3); 
 Q(3) <= Q(4); 
 Q(4) <= Q(5); 
 Q(5) <= Q(6); 
 Q(6) <= Q(7); 
 Q(7) <= temp; 
 end if; 
 end process; 
end comportamento; 
clock
Inic
Q[7..0]
Cont_anel
inst
 
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS 
Laboratório de Sistemas Digitais 
Guia de Aula 
Elaborado por: Prof. Dilmar M. Meira 
 
 
Segunda-feira, 27/01/2014 – 09h55min Página 5 
 
Experimento 3 
 
-- Contador Johnson 
 
library ieee; 
use ieee.std_logic_1164.all; 
 
entity Cont_Johnson is 
 port (clock : in std_logic; 
 Inic : in std_logic; -- Comando para inicialização do contador 
 Q : buffer std_logic_vector(7 downto 0)); 
end entity Cont_Johnson; 
 
architecture comportamento of Cont_Johnson is 
begin 
 process 
 variable temp: std_logic; 
 begin 
 wait until clock'event and clock='1'; 
 if Inic='0' then 
 Q <= "00000000"; 
 else 
 if Q(0)='1' then 
 temp := '0'; 
 else temp := '1'; 
 end if; 
 Q(0) <= Q(1); 
 Q(1) <= Q(2); 
 Q(2) <= Q(3); 
 Q(3) <= Q(4); 
 Q(4) <= Q(5); 
 Q(5) <= Q(6); 
 Q(6) <= Q(7); 
 Q(7) <= temp; 
 end if; 
 end process; 
end comportamento; 
 
 
Para casa: 
Nos experimentos de laboratório, a entrada serial do contador de deslocamento contém apenas 
um bit. Combinando adequadamente quatro registradores de deslocamento de cinco bits cada 
um, construa um registrador de deslocamento cuja entrada serial seja uma palavra de quatro bits. 
Inclua um recurso para resetar o contador, armazenando o código hexadecimal “0” em cada uma 
de suas cinco posições. Efetue todas as etapas necessárias à construção do circuito no kit DE2. 
clock
Inic
Q[7..0]
Cont_Johnson
inst

Outros materiais

Outros materiais