Você está na página 1de 113

Projeto de Sistemas Digitais

para
Laboratório de
Informática e
Computadores
Introdução a VHDL

2021 - 2022
verão
2021-2022 verão LEIC
LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião
Etapas de projeto de um Sistema Digital

• Descrição do problema
• Especificação do sistema
• Arquitetura do sistema
• Implementação
–Circuitos integrados discretos
–Lógica Programável

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 2
Projeto: Contador de veículos
• Descrição do problema
–Projecte e realize um sistema de contagem de veículos, com base
em dois sensores. O sistema deverá validar o sentido de passagem
do veículo incrementando ou decrementando, dependendo do
sentido, o número de veículos no estacionamento, até 7 veículos.
–A verificação de sentido realiza-se pela observação dos dois
sensores, considerando que só ocorre uma passagem num sentido,
quando se observar a seguinte sequência nos sensores (F – falso; V -
verdadeiro): FF -> VF -> VV -> FV -> FF.
–O sistema deverá implementar também um botão de inicio de
contagem.

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 3
Projeto: Contador de veículos
• Especificação do sistema
• um botão RST para iniciar
o ciclo de contagem
• duas entradas S0 e S1, que
representam os sensores de
veículos
• um conjunto de saídas Q
onde se representa em
binário natural o número de
veículos presentes no
estacionamento

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 4
Projeto: Contador de veículos
• Arquitetura do sistema

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 5
Projeto: Contador de veículos
• Contador
–crescente/decrescente n bit

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 6
Projeto: Contador de veículos
• Contador
–crescente/decrescente n bit
• somador n bit

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 7
Projeto: Contador de veículos
• Contador
–crescente/decrescente n bit
• somador n bit
– somador completo de 1 bit

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 8
Projeto: Contador de veículos
bloco Contador
• Implementação
–Lógica Programável
• CUPL

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 9
Projeto: Identificador de Portas Lógicas
bloco Contador
• Implementação
–Lógica Programável
• CUPL
• VHDL (VHSIC Hardware Description Language)
–VHSIC (Very High Speed Integrated Circuit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 10
Descrição de circuitos em VHDL
• ficheiro VHDL (extensão .vhd)
–Entidade
• definição do componente, estabelecendo os sinais de
entrada e saída

–Arquitectura
• descrição da implementação do componente
– Structural, descrição estrutural
– Behavioral, descrição comportamental

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 11
Descrição de circuitos em VHDL
• Ficheiro VHDL - estrutura

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 12
Descrição de circuitos em VHDL
• Sinais em VHDL
–um signal (sinal) corresponde a uma interligação
• do tipo bit, podendo assumir os valores lógicos ‘0’ ou ‘1’
• do tipo std_logic, podendo assumir os valores:
–‘0’ ou ‘1’, zero ou um lógico
–‘Z’, alta impedância
–‘-’, indiferente (don’t care)
–‘U’, indefinido (undefined)
–‘X’, indeterminado (unknown)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 13
Descrição de circuitos em VHDL
• Sinais em VHDL
–a descrição de um barramento (bus) recorre à
definição de um vetor de sinais correspondendo a n
interligações, em vez de definir um a um
• do tipo std_logic_vector
–signal vetor, vetor2, meusinal : std_logic_vector(n-1 downto 0);
• acessíveis independentemente
–vetor(0), vetor(1), ..., vetor(n-1)

• Operações lógicas
– not, and, or, xor, xnor

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 14
Descrição de circuitos em VHDL
• Exemplo: somador completo de 1 bit (FA)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 15
Ferramenta Quartus - Criação de um projeto

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 16
Ferramenta Quartus - Criação de um projeto

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 17
Ferramenta Quartus - Criação de um projeto

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 18
Ferramenta Quartus - Criação de um projeto

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 19
Ferramenta Quartus - Criação de um projeto

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 20
Ferramenta Quartus - Criação de um projeto

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 21
Ferramenta Quartus - Criação de um projeto

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 22
Ferramenta Quartus - Criação de um projeto

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 23
Ferramenta Quartus - Criação de um projeto

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 24
Ferramenta Quartus - Criação de um projeto

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 25
Descrição do somador completo de 1 bit (FA)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião
Ferramenta Quartus - Criação de um módulo (FA)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 27
Ferramenta Quartus - Criação de um módulo (FA)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 28
Ferramenta Quartus - Criação de um módulo (FA)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 29
Ferramenta Quartus - Criação de um módulo (FA)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 30
Ferramenta Quartus - Criação de um módulo (FA)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 31
Ferramenta Quartus - Criação de um módulo (FA)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 32
Ferramenta Quartus - Criação de um módulo (FA)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 33
Ferramenta Quartus - Criação de um módulo (FA)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 34
Ferramenta Quartus - Criação de um módulo (FA)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 35
Projeto: Contador de veículos
• somador 3 bit

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 36
Descrição do somador de 3 bit (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 37
Ferramenta Quartus - Criação de um módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 38
Ferramenta Quartus - Criação de um módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 39
Ferramenta Quartus - Criação de um módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 40
Ferramenta Quartus - Criação de um módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 41
Ferramenta Quartus - Criação de um módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 42
Ferramenta Quartus - Criação de um módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 43
Ferramenta Quartus - Criação de um módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 44
Ferramenta Quartus - Criação de um módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 45
Ferramenta Quartus - Criação de um módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 46
Ferramenta Quartus - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 47
Ferramenta Quartus - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 48
Ferramenta Quartus - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 49
Ferramenta Quartus - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 50
Ferramenta Quartus - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 51
Ferramenta Quartus - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 52
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 53
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 54
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 55
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 56
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 57
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 58
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 59
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 60
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 61
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 62
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 63
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 64
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 65
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 66
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 67
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 68
Ferramenta ModelSim - Validação do módulo (adder3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 69
Projeto: Contador de veículos
• multiplexer

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 70
Descrição do multiplexer (mux2_1)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 71
Ferramenta Quartus - Criação do módulo MUX2_1

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 72
Projeto: Contador de veículos
• Counter Logic

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 73
Descrição do módulo combinatório (counterlogic_3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 74
Descrição do módulo combinatório (counterlogic_3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 75
Ferramenta Quartus - Criação do módulo CounterLogic_3bit

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 76
Ferramenta Quartus - Criação do módulo CounterLogic_3bit

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 77
Ferramenta Quartus - Validação do módulo (CounterLogic_3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 78
Ferramenta Quartus - Validação do módulo (CounterLogic_3bit)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 79
Projeto: Contador de veículos
• Counter Logic
Validar o módulo utilizando o ModelSim

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 80
Projeto de Sistemas Digitais
Circuitos sequenciais
2021 - 2022
verão

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião
Projeto: Contador de veículos
• registo de 1 bit

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 82
Projeto: Contador de veículos
• registo de WIDTH bit

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 83
Projeto: Contador de veículos
• registo de WIDTH bit com reset

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 84
Projeto: Contador de veículos
• Contador 3 bit

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 85
Projeto: Contador de veículos
• Contador 3 bit

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 86
Projeto: Contador de veículos
• Implementar um Contador de 3 bit
–usando o registo com enable e reset
• validar o seu funcionamento no ModelSim

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 87
Ferramenta Quartus - Atribuição de pinos

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 88
Ferramenta Quartus - Atribuição de pinos

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 89
Ferramenta Quartus - Atribuição de pinos

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 90
Ferramenta Quartus - Atribuição de pinos

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 91
Ferramenta Quartus - Atribuição de pinos

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 92
Ferramenta Quartus - Atribuição de pinos

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 93
Ferramenta Quartus - Atribuição de pinos

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 94
Ferramenta Quartus - Atribuição de pinos

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 95
Ferramenta Quartus - Atribuição de pinos

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 96
Ferramenta Quartus - Atribuição de pinos

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 97
Ferramenta Quartus - Atribuição de pinos

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 98
Ferramenta Quartus - Síntese e geração ficheiro programação

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 99
Ferramenta Quartus - Síntese e geração ficheiro programação

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 100
Ferramenta Quartus - Programação da FPGA

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 101
Ferramenta Quartus - Programação da FPGA

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 102
Ferramenta Quartus - Programação da FPGA

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 103
Ferramenta Quartus - Programação da FPGA

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 104
Ferramenta Quartus - Programação da FPGA

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 105
Ferramenta Quartus - Programação da FPGA

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 106
Ferramenta Quartus - Programação da FPGA

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 107
Ferramenta Quartus - Programação da FPGA

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 108
Contador 3 bit - Validação na placa DE10-Lite

CLK en ndecInc RST Count


(manual)

2021-2022 verão LEIC


LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno Sebastião 109
Projeto: Contador de veículos
• Arquitetura do sistema

2020-2021
2021-2022
inverno
verãoLI21N
LEIC
LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno
Pedro Sebastião
Miguens Matutino 110
/ Nuno Sebastião
Projeto:
Contador de veículos
• Máquina de estados

2020-2021
2021-2022
inverno
verãoLI21N
LEIC
LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno
Pedro Sebastião
Miguens Matutino 111
/ Nuno Sebastião
Projeto:
Contador de veículos
• Máquina de estados

Descrição: Para ser realizada como exercício após a próxima aula

2020-2021
2021-2022
inverno
verãoLI21N
LEIC
LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno
Pedro Sebastião
Miguens Matutino 112
/ Nuno Sebastião
Projeto: Contador de veículos

2020-2021
2021-2022
inverno
verãoLI21N
LEIC
LEIC - Laboratório de Informática e Computadores Pedro Miguens/Nuno
Pedro Sebastião
Miguens Matutino 113
/ Nuno Sebastião

Você também pode gostar