A maior rede de estudos do Brasil

Grátis
10 pág.
contadoresVHDL

Pré-visualização | Página 2 de 3

1.8 apresenta um exemplo de uso de funções em uma descrição VHDL. A função conv_7seg é 
definida entre as linhas 18 e 41: possui apenas um parâmetro de entrada (vetor d de 4 bits) e retorna 
um vetor de bits (std_logic_vector). Na linha 20 é definida a varíavel saida que será usada para 
determinar o valor a ser retornado. A seleção do valor de retorno usa o comando sequencial case (linhas 
22 a 39). O comando return é usado somente uma vez (linha 40). A linha 47 contém a chamada à 
função conv_7seg dentro do comando de atribuição. 
 
 
 
Figura 1.8 – Contador binário descrito usando função em VHDL. 
 
 
EPUSP — PCS 2355 — Laboratório Digital 
Contadores em VHDL (2012) 7 
2. PARTE EXPERIMENTAL 
A parte experimental desta experiência diz respeito à implementação de circuitos contadores em 
linguagem VHDL. Nesta experiência será usado o dispositivo lógico programável Altera Cyclone II 
EP2C35F672C6 da placa de desenvolvimento DE2. 
2.1. Atividades Pré-Laboratório 
Antes do projeto dos circuitos da experiência, é importante a experimentação dos conceitos apresentados 
na seção 1. Desta forma deve-se: 
a) Para cada um dos circuitos apresentados (contador binário, conversor para código de 7 segmentos, 
contador binário com saída para display de sete segmentos, contador com máquina de estados), 
estude cada uma das descrições VHDL e escreva uma descrição das linhas de código. 
Por exemplo, no contador binário crescente: “As linhas 6 a 9 apresentam a definição da entidade. São definidos 
três sinais de entrada (clock, reset e enable com 1 bit) e 1 sinal de saída (q com 4 bits). O tipo destes quatro sinais de 
entrada e saída é std_logic”. 
b) A seguir, digite o código VHDL de cada exemplo, crie um projeto no Quartus II e execute simulações 
para verificar seu funcionamento. 
c) Anexe as formas de onda no planejamento. 
2.2. Contador bidirecional 
O primeiro circuito a ser desenvolvido é um contador bidirecional de 4 bits. Baseado no valor do sinal 
sentido, o valor da contagem deve ser crescente (sentido=0) ou decrescente (sentido=1). A saída do 
circuito deve ser monitorado em leds. 
Considere a seguinte definição de entidade: 
entity contador_updown is 
 port (clock, reset, enable : in std_logic; 
 sentido : in std_logic; 
 saida : out std_logic_vector (3 downto 0)); 
end contador_updown; 
A contagem também é controlada pelo sinal enable (contagem muda quando enable=1). A interface do 
circuito é mostrada na figura 2.1. 
 
 
Figura 2.1 – Contador bidirecional. 
d) Desenvolva o código VHDL e documente-o com uma descrição do código fonte e formas de onda das 
simulações do seu funcionamento. 
e) Considere a seguinte designação de pinos: 
 
• clock : botão KEY3 
• reset : chave SW2 
• sentido : chave SW1 
• enable : chave SW0 
• saida[0..3] : leds verdes LEDG0 a LEDG3 
 
f) Teste o circuito projetado na placa de desenvolvimento. Que sinais de depuração adicionais podem 
ser usados para validar o circuito? 
DICA: lembrem-se que os botões na placa DE2 são ativos 
em baixo. O projeto deve levar isto em consideração. Use 
a tabela de designação de pinos da placa DE2. 
 
 
EPUSP — PCS 2355 — Laboratório Digital 
Contadores em VHDL (2012) 8 
2.3. Contador em Código Gray com saída em Display de 7 Segmentos 
O segundo circuito a ser projetado é um contador bidirecional em código Gray com saídas em displays de 
sete segmentos. Usando uma descrição estrutural, implemente o circuito em VHDL com a interface 
abaixo. 
entity contGray7seg is 
 port (clock, reset, enable, sentido : in std_logic; 
 saidabin : out std_logic_vector (6 downto 0); 
 saidagray : out std_logic_vector (6 downto 0)); 
end contGray7seg; 
Projete inicialmente o bloco conversor-binario-gray para a conversão de código binário para código 
Gray, conforme a seguinte interface. 
entity conv_bin_gray is 
 port (d : in std_logic_vector (3 downto 0); 
 q : out std_logic_vector (3 downto 0)); 
end conv_bin_gray; 
Em seguida, complete a descrição com a conexão dos componentes segunda a estrutura apresentada na 
figura 2.2. 
 
Figura 2.2 – Estrutura do contador em código Gray com saídas em display de 7 segmentos. 
g) Desenvolva o código VHDL e documente-o com uma descrição do código fonte e formas de onda das 
simulações do seu funcionamento. 
h) Considere a seguinte designação de pinos: 
 
• clock : botão KEY3 
• reset : chave SW2 
• sentido : chave SW1 
• enable : chave SW0 
• saidagray : display HEX0 
• saidabin : display HEX1 
 
i) Teste o circuito projetado na placa de desenvolvimento. Que sinais de depuração adicionais podem 
ser usados para validar o circuito? 
PERGUNTAS: 
1. Compare a forma de conexão de componentes em um diagrama esquemático (forma gráfica) e uma 
descrição estrutural em VHDL. 
 
 
EPUSP — PCS 2355 — Laboratório Digital 
Contadores em VHDL (2012) 9 
2.4. Contador em Código de Petherick com Máquina de Estados 
O terceiro circuito a ser projetado é um contador em código de Petherick usando uma máquina de 
estados. A interface deste contador é definida abaixo. 
entity contPetherickME is 
 port (clock, reset, enable : in std_logic; 
 saidabin : out std_logic_vector (6 downto 0); 
 saida : out std_logic_vector (6 downto 0)); 
end contPetherickME; 
Temos duas saídas do circuito: uma saída da contagem binária saidabin e uma saída com a contagem 
em código de Petherick saida. Ambas as saídas devem ser conectadas em displays de sete segmentos. 
Use uma descrição estrutural conforme a figura 2.3. 
 
 
Figura 2.3 – Estrutura do contador em código de Petherick. 
j) Desenvolva o código VHDL do circuito. Documente o projeto com uma descrição do código fonte e 
formas de onda das simulações. 
k) Considere a seguinte designação de pinos: 
 
• clock : botão KEY3 
• reset : chave SW2 
• sentido : chave SW1 
• enable : chave SW0 
• saida : display HEX0 
• saidabin : display HEX1 
 
l) Teste o circuito projetado na placa de desenvolvimento. Que sinais de depuração adicionais podem 
ser usados para validar o circuito? 
PERGUNTAS: 
2. Compare a estratégia de projeto do contador em código de Petherick com componentes TTL e usando 
uma linguagem de descrição de hardware. Cite duas vantagens da linguagem VHDL. 
3. Que modificações seriam necessárias no projeto para usar o recurso de funções para a conversão das 
saídas para os displays de sete segmentos? Mostre a descrição VHDL. 
4. Mostre como este projeto poderia ser adaptado para uma contagem em outro código binário. 
Exemplifique. 
 
 
EPUSP — PCS 2355 — Laboratório Digital 
Contadores em VHDL (2012) 10 
2.5. Modificação em Circuito 
Uma pequena modificação ou adaptação de um dos projetos será solicitada aos alunos. Esta modificação 
deverá ser implementada em bancada. A descrição e a documentação desta modificação devem ser 
incluídas no relatório. 
3. BIBLIOGRAFIA 
1. ALTERA. DE2 Development and education board user manual. 2008. Version 1.42. 
2. ALTERA. Quartus II Introduction Using VHDL Designs. University Program. 2010. Disponível em: 
ftp://ftp.altera.com/up/pub/Altera_Material/9.1/Tutorials/VHDL/Quartus_II_Introduction.pdf 
3. D´AMORE, R. VHDL - Descrição e síntese de circuitos digitais. 2ª edição, LTC, 2012. 
4. MIDORIKAWA, E.T. Introdução às Linguagens de Descrição de Hardware. 
Apostila de PCS2304, Escola Politécnica da USP, 2007. 
5. MIDORIKAWA, E.T. Contador em Código de Petherick. Apostila de Laboratório Digital, 2012. 
6. RANZINI, E.; HORTA, E. L. Introdução aos Dispositivos Lógicos Programáveis. 
Apostila de Laboratório Digital. Escola Politécnica da USP, 2000 (revisão em 2011). 
7. RUSHTON, A. VHDL for logic synthesis. 3rd edition, Wiley, 2011. 
8. TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Digital