RESUMO
Esta experiência tem como objetivo um contato inicial com o desenvolvimento do projeto de um circuito digital simples em VHDL e sintetizado para uma placa de desenvolvimento FPGA. Ao final da experiência, os alunos terão conhecimento sobre o procedimento a ser realizado para o projeto digital usando uma linguagem de descrição de hardware e com auxílio de um software para projeto de circuitos digitais.
OBJETIVOS
Após a conclusão desta experiência, os seguintes tópicos devem ser conhecidos pelos alunos: Síntese e implementação de circuitos em VHDL e em placa de desenvolvimento FPGA; Uso de software para projeto de circuitos digitais;
Simulação de circuitos digitais; Estudo de um circuito digital simples.
1. PARTE EXPERIMENTAL
1.1. Atividade 1 (Pré-Laboratório)
Esta primeira atividade visa estudar dois componentes essenciais em circuitos digitais: o contador e o registrador. Ambos os componentes devem ser descritos na linguagem VHDL.
1.1.1. Contador hexadecimal 74163 em VHDL
a) Consulte o livro-texto (Wakerly, página 722) e estude a descrição VHDL do contador hexadecimal 74163 (V74x163.vhd). Faça anotações no código fonte VHDL na forma de comentários para descrever a função de cada linha de comando. Traga o arquivo fonte.
DICAs: neste item, deve-se incluir no Planejamento uma figura com o símbolo lógico do componente para ilustrar a resposta. Exemplo de comentário do código fonte:
architecture V74x163_arch of V74x163 is -- descrição da arquitetura da entidade V74x163 signal IQ: UNSIGNED (3 downto 0); -- define sinal de 4 bits com valor interno da contagem begin
process (CLK, ENT, IQ) -- processo principal que descreve... b) Responda as perguntas abaixo:
1. A contagem interna usa o tipo UNSIGNED para poder calcular o próximo valor. Qual é a diferença entre os tipos UNSIGNED e STD_LOGIC_VECTOR?
2. Explique se o sinal de CLEAR é síncrono ou assíncrono? Que linha de código justifica sua resposta? 3. Como um valor pode ser carregado no 74163? Mostre a linha de código que descreve esta função. 4. Este componente é sensível a qual borda do sinal de clock? Qual é a linha de código que mostra isto?
5. Qual é a condição para a saída RCO ser acionada? Justifique sua resposta, mostrando a linha de código que descreve este funcionamento.
Circuito em VHDL
Circuito em VHDL (2017) 2 1.1.2. Registrador com sinal de habilitação em VHDL
Neste item será estudada a descrição de um registrador com sinal de habilitação em VHDL. Este componente deve ser aplicado em circuitos seguintes no Laboratório Digital.
c) Consulte o livro-texto (Wakerly, página 700) e estude a descrição VHDL de um registrador de 16 bits (Vreg16.vhd). Faça anotações no código fonte VHDL na forma de comentários para descrever a função de cada linha de comando. Traga o arquivo fonte.
DICAs: neste item, deve-se incluir uma figura com o símbolo lógico do componente para ilustrar a resposta. Siga as orientações do item 1.1.1.
d) Responda as perguntas abaixo:
6. Quantos bits tem o registrador descrito no código fonte?
7. Há quantos sinais de controle neste componente? Mostre a função de cada um. 8. Explique a função da expressão (others=>’0’) em VHDL.
9. Qual é a diferença entre os tipos STD_LOGIC_VECTOR e STD_ULOGIC_VECTOR? 10. Qual é a função do comando VHDL To_StdULogicVector(IQ)?
11. O que representa o valor Z usado na descrição VHDL?
e) Com base na descrição estudada acima, elabore a descrição VHDL de um novo componente que será chamado reg4bits_en.vhd que é um registrador de 4 bits com sinal de habilitação. Considere o símbolo lógico da figura 1.1.
Figura 1.1 – Símbolo lógico do componente a ser elaborado.
A tabela abaixo descreve seu funcionamento. Pode-se observar que ambos os sinais de controle são síncronos e ativos em alto.
CLR ENABLE (próxima saída) Q* descrição
1 X 0 zera saída
0 0 Q nenhum sinal de controle ativado
0 1 D carrega entrada paralela D
f) Comente o código VHDL e traga o arquivo para o Laboratório Digital.
Neste ponto, terminamos a preparação conceitual para a aula experimental no Laboratório Digital. Resta agora, verificar os procedimentos experimentais, com a leitura e familiarização das atividades programadas. Após isto, deve ser incluído no planejamento um roteiro experimental detalhado.
reg4bits_en 4 Q (Q3, Q2, Q1, Q0) 4 D (D3, D2, D1, D0) CLOCK CLR ENABLE
1.1.3. Projeto do Circuito Digital Simples em VHDL
Neste item será estudada a descrição de um registrador com sinal de habilitação em VHDL. Este componente deve ser aplicado em circuitos seguintes no Laboratório Digital.
g) O circuito digital simples, que foi estudado na experiência anterior e tem seu esquema interno apresentado na figura 1.2, deve ser implementado inteiramente em VHDL. Use o componente V74x163.vhd (contador hexadecimal em VHDL) do item 1.1.1 e o componente umFSM.vhd da experiência “Primeiro Circuito Digital”. Adote uma descrição estrutural para interligar os dois componentes.
Figura 1.2 – Esquema interno do circuito digital simples interligando os dois componentes principais.
h) Documente seu projeto, inserindo comentários no código fonte.
i) Traga os arquivos fonte VHDL dos dois componentes internos e do componente principal para o Laboratório Digital. umFSM CLOCK RESET sinal 74163 4 Q RCO liga resetc enablec CLR ENT CLK
Circuito em VHDL (2017) 4
1.2. Atividade 2 – Simulação do Circuito e Síntese na Placa FPGA
Esta atividade visa introduzir os alunos ao software de desenvolvimento de projetos digitais Altera Quartus Prime. Esta aplicação permite o projeto, implementação e simulação de circuitos digitais. Serão apresentadas as funcionalidades de criação do projeto do circuito digital, compilação do projeto, simulação e síntese para uma FPGA.
f) Com base na apresentação realizada pelo professor, execute a simulação do projeto do circuito digital simples projetado no item 1.1.3. Apresente as formas de onda obtidas no Relatório.
g) Em seguida, deve-se realizar a preparação para a síntese do circuito para ser implementado na placa de desenvolvimento FPGA. Para isto deve adotar a seguinte designação de pinos para o projeto.
Designação
Sinal externo
sinal pino
CLOCK GPIO_0_D0 saída digital 0 (Analog Discovery)
RESET chave SW9 -
liga chave SW0 -
sinal chave SW1 -
resetc led LEDR9 -
enablec led LEDR8 -
Q leds LEDR0 a LEDR3 -
RCO led LEDR4 -
h) Anote as mensagens de saída do Altera Quartus Prime e verifique o resultado da síntese para a placa de desenvolvimento FPGA DE0-CV.
1.3. Atividade 3 – Análise de Funcionamento do Circuito em VHDL
O projeto deve ser programado na placa DE0-CV e seu funcionamento deve ser analisado cuidadosamente. Siga as recomendações do professor ao manusear a placa FPGA.
i) Programe a placa DE0-CV com o circuito sintetizado usando o Altera Quartus Prime.
j) Conecte o sinal GND e a saída digital 0 do Analog Discovery nos respectivos pinos do conector GPIO_0 da placa DE0-CV. Use a documentação da placa disponível no Laboratório Digital.
k) No software Waveforms no computador, ajuste o sinal da saída digital 0 para um sinal de clock periódico com frequência igual a 1Hz.
l) Acione os sinais de entrada LIGA e SINAL e verifique o funcionamento do circuito. Observar também os sinais clock, sinal, enablec e resetc.
DICA: use o diagrama ASM ou diagrama de transição de estados desenvolvido no item 1.1.2.e para acompanhar a mudança de estados do circuito. Use várias sequências de teste. Documente no Relatório, as saídas observadas para cada caso de teste.
Para poder observar os sinais de entrada clock e sinal, deve-se acrescentar dois pinos de saída no projeto e designá-los para os leds LEDR5 e LEDR6, respectivamente.
m) Analise a sequência de sinais ativados no circuito e responda: 11. Quando SINAL é acionado por 5 seg, qual é a saída apresentada na saída Q? 12. O que acontece quando o sinal LIGA é desativado antes do SINAL?
13. Qual é a saída do contador se SINAL fica acionado por mais de 15 segundos?
14. O que acontece quando SINAL é acionado várias vezes por intervalos de tempo diferentes?
l) Uma MODIFICAÇÃO do circuito vai ser solicitada pelo professor. Implemente e documente a modificação para a placa DE0-CV e faça uma demonstração do seu funcionamento.
DICA: apresente no Relatório o diagrama ASM modificado e um diagrama de blocos do fluxo de dados.
2. BIBLIOGRAFIA
ALTERA. DE0-CV User Manual. 2015.
ALTERA. Quartus Prime Introduction Using VHDL Designs. 2016.
ALTERA. Quartus Prime Introduction to Simulation of VHDL Designs. 2016. D’AMORE, R. VHDL - descrição e síntese de circuitos digitais. 2a edição, LTC, 2012 MENEZES, M.P.; SATO, L.M.; MIDORIKAWA, E.T. Projeto de Circuitos com Quartus II 9.1.
Apostila de Laboratório Digital. Departamento de Engenharia de Computação e Sistemas Digitais, Escola Politécnica da USP. Edição de 2011.
TEXAS INSTRUMENTS. Digital Logic Pocket Data Book. 2006.
WAKERLY, John F. Digital Design Principles & Practices. 4th edition, Prentice Hall, 2006.