Buscar

Logica_Programavel_AulaTeorica3

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 59 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 59 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 59 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

58
1
Prof. Ederson Cichaczewski
Lógica Programável
Aula 3
58
2
Conversa Inicial
58
3
Linguagem VHDL: componentes e 
registradores
58
4
Tema 1
Componentes e circuitos em VHDL
Tema 2
Configurações em VHDL
58
5
Tema 3
Registradores em VHDL
Tema 4
Máquinas de estados em VHDL
Tema 5
Descrição VHDL a partir de um algoritmo
58
6
Na linguagem VHDL é importante organizar os projetos hierarquicamente, por meio de componentes e pacotes, assim como estabelecer uma relação entre eles, por meio de configurações
Iniciando com aplicações, os registradores são elementos de memória que são a base para máquinas de estados
Descrição de hardware não é um algoritmo, mas é possível estabelecer uma relação que permite uma conversão
58
7
Componentes e pacotes em VHDL
58
8
Um componente é uma entidade de projeto 
empregada na arquitetura de outra entidade
É possível criar um projeto hierárquico
É como interligar vários componentes 
em um diagrama esquemático
A instanciação de um componente é 
um comando concorrente
Componentes
58
9
A declaração de um componente é 
semelhante à de uma entidade
Usa-se a palavra reservada COMPONENT
A declaração pode ser inserida no corpo da 
arquitetura ou em pacotes
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 7. Pg. 101
58
10
Para instanciar/chamar um componente é 
necessário: 
atribui-lo um label (rótulo) 
nome do componente 
e, com a palavra reservada PORT MAP, 
define-se as conexões dos sinais do 
componente com os sinais da entidade 
que o instanciou
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 7. Pg. 102
58
11
Exemplo
A arquitetura final da entidade topo
solicita dois componentes u1 e u2
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 7. Pg. 102
58
12
Permitem reunir declarações de constantes, 
tipos, sinais, subprogramas e componentes
Diferentes projetos (design units) podem 
compartilhar essas declarações
Os pacotes ficam associados a uma biblioteca
Pacotes
58
13
A estrutura do pacote é composta de duas 
partes
Declaração do pacote
Corpo do pacote (opcional)
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 9. Pg. 139
58
14
O pacote pode ser compilado e usado por 
meio da cláusula USE
Especifica-se a biblioteca, o nome do pacote 
e, se desejar, o item do pacote
Caso quiser deixar todos os itens visíveis, 
usa-se a palavra reservada ALL
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 9. Pg. 140
58
15
Configurações em VHDL
58
16
A configuração estabelece o elo entre a 
declaração de um componente e uma 
entidade de projeto
É possível especificar uma entidade com 
várias arquiteturas
Neste caso, o elo é estabelecido com a 
última arquitetura compilada
Configuration
58
17
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 14
58
18
Pode ser necessária uma alteração das 
associações entre componentes e entidades, 
sem recompilar as entidades
Mecanismos para atender aos requisitos
Especificação da configuração
Declaração da configuração
58
19
Define o elo entre uma solicitação de 
componente e uma entidade de projeto
Inserida na região de declaração de uma 
arquitetura que solicita os componentes
Especificação da configuração
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 14. Pg. 230
58
20
A especificação da configuração do 
componente contém uma lista de rótulos, 
seguidos do nome do componente e da 
indicação do elo
A indicação do elo associa o componente a 
uma entidade, identificando sua biblioteca
Permite especificar a arquitetura a ser 
usada da entidade
Também pode-se definir mapas de portas
58
21
Permite que a configuração seja realizada 
fora da arquitetura
A declaração da configuração é uma outra 
unidade de projeto (design unit)
Declaração da configuração
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 14. Pg. 231
58
22
A declaração da configuração deve ser 
compilada
Está no nível mais alto da hierarquia do 
projeto
A simulação é executada a partir da sua 
unidade de projeto
Pode-se alterar a configuração do projeto 
sem recompilar as unidades dependentes 
da configuração
58
23
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 14. Pg. 232
58
24
A declaração contém dois nomes
O 1º identifica o nome da configuração
O 2º identifica a entidade de projeto a 
que a configuração se aplica
Podem ser inseridas configurações de 
bloco e cláusulas USE
A configuração de bloco inicia com a 
palavra reservada FOR
58
25
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 14. Pg. 232
58
26
Registradores
58
27
Registrador é um elemento de memória que pode ser 
sensível a:
Nível – caso dos latches, em que a condição de 
memorização corresponde a um determinado nível 
lógico do sinal de controle
Borda – caso dos flip-flops, em que a condição de 
memorização corresponde à transição de um nível 
lógico para outro do sinal de clock
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 79
58
28
Uma transição de sinal pode ser detectada 
por meio dos atributos EVENT ou STABLE
Exemplo:
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 79
58
29
Operações de inicialização do registrador
Set – leva a saída para nível lógico alto
Reset – leva a saída para nível lógico baixo
58
30
As operações de inicialização set e reset
podem ser síncronas com o sinal de clock ou 
assíncronas
Na implementação de um registrador em 
VHDL, a palavra-chave é PROCESS
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 80
58
31
Registrador sensível a nível – latch em VHDL
A saída é atualizada com o valor de entrada 
apenas quando en = 1
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 80
58
32
Registrador Sensível a Borda – Flip-Flop em VHDL com Inicialização Síncrona
O código “ck‘EVENT AND ck = ‘1’ “ identifica uma borda de subida.
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 82
58
33
Registrador sensível a borda – flip-flop em VHDL com inicialização assíncrona
Apenas a atualização da saída depende do sinal de clock
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 83
58
34
Síntese do código VHDL
A síntese do circuito gera um 
esquemático em nível RTL
Exemplo: flip-flop com inicialização 
assíncrona
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 83
58
35
Máquinas de estados em VHDL
58
36
É um circuito sequencial que transita em 
uma sequência finita de estados
A transição entre estados é comandada 
por um sinal de controle (clock)
O estado atual é definido por um elemento 
de memória
O estado futuro é determinado com base no 
estado atual e na condição das entradas
58
37
Máquina de Mealy
O valor da saída depende exclusivamente 
do estado atual e das condições das 
entradas
Máquina de Moore
O valor da saída depende exclusivamente 
do estado atual
Estilos de máquinas de estados
58
38
Sua operação é descrita por um diagrama 
de transição de estados, sendo cada estado 
representadopor um nó, e as transições 
(de subida ou descida do clock), por arcos 
com setas
58
39
No diagrama de estados o valor da saída é 
incluído no arco
Exemplo de operação com mudança de 
estado na borda de subida do sinal de 
controle 
(clock).
Máquina de Mealy
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 87D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 88
58
40
No diagrama de estados o valor da 
saída é indicado no nó
Exemplo de operação com mudança de 
estado na borda de subida do sinal de 
controle (clock)
Máquina de Moore
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 87
58
41
Máquina de Moore com 4 estados que realiza 
uma contagem 00, 01, 11 e 10. Inclui uma 
entrada de inicialização assíncrona chamada 
“rst”
O valor que representa o estado atual 
corresponde ao valor das saídas
Exemplo
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 88
58
42
Sendo um circuito sequencial, 
necessita do recurso PROCESS
Não necessariamente os estados são 
valores, então podem ser definidos 
como tipos enumerados com TYPE
Código VHDL
58
43
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 6. Pg. 88
58
44
O padrão de contagem não necessariamente 
é uma sequência
Uma máquina de estado controla eventos
A síntese gera um conjunto de flip-flops e 
também uma lógica combinacional
Observações
58
45
As saídas de uma máquina de Moore são 
síncronas ao clock. É necessário ter um 
ciclo de inicialização
As saídas de uma máquina de Mealy
podem mudar assincronamente
58
46
Descrição a partir de um algoritmo
58
47
A linguagem VHDL não funciona exatamente 
como uma linguagem de programação 
baseada em algoritmos
Pseudocódigo  VHDL
58
48
São necessárias considerações com relação: 
ao armazenamento de informações
ao controle das operações
às tomadas de decisões
às unidades funcionais empregadas
É importante considerar o diagrama de 
blocos do circuito, definindo seus elementos 
e suas interligações
58
49
Pseudocódigo de um algoritmo para 
determinação do MDC:
Exemplo: Máximo Divisor Comum (MDC)
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 258
58
50
1º passo: previsão dos registradores “a” e 
“b”
Linhas 1, 2, 3 e 4 do pseudocódigo
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 260
58
51
2º passo: tomada de decisão com um 
comparador
Linha 5 do pseudocódigo
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 260
58
52
3º passo: comparação e subtração entre os 
registradores “a” e “b”
Linha 6 do pseudocódigo
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 261
58
53
Final: na linha 7 tem-se a necessidade de 
um circuito de seleção e subtração. Para 
a execução das linhas 9 e 10 é necessário 
mais um registrador
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 262
58
54
Fluxograma: converte-se o pseudocódigo em 
forma gráfica para facilitar a descrição.
Tem-se uma máquina com 4 estados
Inicialização assíncrona
Mudanças de estado na borda de subida
58
55
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 263
58
56
Código VHDL final do MDC
Fonte: D’AMORE, ROBERTO. VHDL Descrição e Síntese de Circuitos Digitais. 2ª ed. Rio de Janeiro: LTC, 2012. Capítulo 16. Pg. 266
58
57
Referências
58
58
D’AMORE, R. VHDL – descrição e síntese de 
circuitos digitais. 2. ed. Rio de Janeiro: LTC, 
2012. cap. 6, 7, 9, 14 e 16.
58
59

Continue navegando