Buscar

Logica_Programavel_AulaTeorica4

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 52 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

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 6, do total de 52 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

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 9, do total de 52 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

Prévia do material em texto

15
1
Prof. Ederson Cichaczewski
Lógica Programável
Aula 4
15
2
Conversa Inicial
15
3
Linguagem VHDL – Projeto 
de circuitos integrados
15
4
Tema 1
Unidade lógica e aritmética
Tema 2
Circuitos codificadores e multiplexadores
15
5
Tema 3
Contadores em VHDL
Tema 4
Registradores de deslocamento em VHDL
Tema 5
Geradores de sinais em VHDL
15
6
A linguagem de descrição de hardware VHDL 
permite implementar qualquer circuito 
digital, sem mesmo se preocupar
quais são as primitivas de base para
configuração ou como conectá-las
Após a síntese é possível ver
como ficará o circuito final
15
7
Unidade lógica e aritmética
15
8
Realiza todas as operações lógicas e 
aritméticas de um sistema computacional
As operações são realizadas de acordo
com instruções provenientes
da unidade de controle
O dados utilizados nas operações
são binários e provenientes
da memória do sistema
ULA
15
9
Exemplo básico de uma ULA de 1 bit,
que realiza apenas 4 operações lógicas
As entradas ‘d1’ e ‘d0’ definem a operação 
executada entre os bits das entradas ‘a’ e ‘b’.
O resultado é apresentado na saída ‘s’
Fon
te:
 D’
AM
OR
E, 
RO
BE
RT
O. 
VH
DL
 
De
scr
içã
o e
 Sí
nte
se 
de 
Cir
cui
tos
 Di
git
ais
. 
2ª 
ed.
 Ri
o d
e 
Jan
eir
o: 
LTC
, 2
01
2. 
Ca
pít
ulo
 7.
 Pg
. 1
01
15
10
Em VHDL podem-se usar as 
estruturas IF ELSE e CASE 
WHEN com e sem aninhamento
em uma codificação sequencial
15
11
Exemplos sem aninhamento:
IF ELSE CASE WHEN
15
12
Exemplo de uma ULA que realiza 8 
operações, entre lógicas e aritméticas
15
13
Na entrada, o barramento ‘opr' define a 
operação a ser realizada entre os dados 
‘rs’ e ‘ss’, ‘ci’ é uma entrada de carry.
A saída ‘ov’ significa overflow, ‘zr’
indica resultado nulo, e ‘ts’
o resultado da operação
15
14
Para os barramentos de dados de entrada 
e saída pode-se usar a definição de sinal 
com o padrão STD_LOGIC_VECTOR
Observações sobre a codificação
15
15
O bit MSB da entrada de controle pode definir
se a operação será lógica ou aritmética, e as 
operações em si são definidas pelos demais bits
A estratégia de codificação concorrente também 
pode ser utilizada, por meio da estrutura
WITH SELECT
15
16
Exemplo de ULA com barramento de dados 
de 8 bits, 8 operações lógicas e 8 operações 
aritméticas em código concorrente
15
17
15
18
Circuitos codificadores
e multiplexadores
15
19
Um codificador monitora várias entradas, quando 
uma é ativada produz um código na saída
Quando mais de uma entrada é ativada ao 
mesmo tempo, o codificador de prioridade
ignora a entrada menos significativa
Codificador de prioridade
15
20
Descrição VHDL com construção concorrente 
WHEN ELSE
15
21
É um dispositivo que atua comouma chave seletora para sinais digitais
As entradas de seleção são usadas para especificar o canal de entrada que vai transferir os dados para a saída
Multiplexador
15
22
Descrição VHDL de MUX com 4 bits usando 
construção concorrente WITH SELECT
15
23
Circuito usado para receber uma entrada no código BCD de 4 bits (D3, D2, D1, D0) e gerar 7 saídas (a, b, c, d, e, f, g) que acionam os segmentos de um display de LEDs
Decodificador BCD para 7 segmentos
15
24
Tabela verdade para a configuração anodo comum
Entrada D3 D2 D1 D0 Saída (segmentos) h g f e d c b a Dígito decimal
0000 11000000 0
0001 11111001 1
0010 10100100 2
0011 10110000 3
0100 10011001 4
0101 10010010 5
0110 10000010 6
0111 11111000 7
1000 10000000 8
1001 10010000 9
15
25
Descrição VHDL usando PROCESS
15
26
Contadores
15
27
Podem ser descritos como uma máquina de 
estados, em que o código de cada estado 
corresponde ao valor da contagem
Não é necessário preocupar-se em como 
conectar flip-flops na descrição
15
28
É importante considerar
algumas características
Entrada de clock ativo por borda
Entrada de reset assíncrona
A saída é atualizada sincronamente
à ocorrência de uma borda ativa
(subida ou descida) no clock
15
29
Exemplo de um contador de 0 a 9 (4 bits)
15
30
Descrição VHDL usando PROCESS
e estrutura sequencial IF ELSE
15
31
Este código adiciona uma entradaque controla a operação de cargade dados, chamada ‘ld’ (load)
O incremento se dá poruma operação de soma
A borda ativa é a de subida no clock
Para armazenar o valor da contagemusa-se uma variável, ao invésde sinal, como registrador
Caso ocorra um incremento acimade 9, a contagem vai para 0
15
32
Síntese: a ferramenta associa aprimitiva de um módulo contador conter_up_sload_sclear_aclear_clock4
15
33
Registradores de deslocamento
15
34
Realizam a transferência de dados, podendo realizar conversões de dados em formato serial e paralelo
Em VHDL utilizam-se vetorespara descrever os dados
O deslocamento de dados significaque cada bit é transferido para a posição imediatamente à direita nos índices do vetor
O novo bit é armazenado na posiçãomais à esquerda, já o último bit naposição mais à direita é perdido 
15
35
Processo de deslocamento de bits para a direita
O novo bit entra na posição Q3
O bit da posição Q0 é perdido
15
36
Utiliza-se um vetor de bits como registrador
O deslocamento se dá por uma
operação de concatenação (&)
Uma entrada chamada shift permite habilitar 
a operação de deslocamento, caso contrário, 
mantém-se na saída os dados atuais
(que já estão guardados lá)
Registrador de entrada serial/ 
saída serial (SISO)
15
37
Descrição VHDL do registrador SISO com 
PROCESS e estrutura sequencial IF
15
38
Este registrador possui entradas
de controle distintas para:
Carga (load) paralela
Deslocamento (shift) serial
Operação de concatenação
usada para o deslocamento de bits
Vetor de bits como registrador
Registrador de entrada paralela/
saída serial (PISO)
15
39
Descrição VHDL do registrador PISO 
15
40
Geradores de sinais
15
41
A partir de um sinal de clock podemos obter 
sinais com formatos específicos (arbitrários) 
e frequências diferentes
Uma estratégia para implementação
é utilizar máquina de estados
A base para definir o formato
do sinal arbitrário é um contador
Pode-se implementar circuitos monoestáveis, 
que mantêm sua saída ativa por um tempo 
definido
15
42
Exemplo
Máquina de 8 estados
Contador de 0 a 7
Detecção da borda de subida do clock
Sinal a ser gerado:
Gerador de sinal arbitráriocom máquina de estados
15
43
Descrição VHDL do gerador
15
44
Gerador de sinal arbitrário sem máquina de 
estados, usando a construção CASE WHEN
15
45
Exemplo
Contador de 0 a 7
Detecção da borda de subida do clock
Resultado da simulação:
15
46
Descrição VHDL do gerador
15
47
Monoestável
Um sinal de disparo (trigger)
carrega um contador descrescente
A saída fica em nível alto enquanto
o contador não chega em zero
Abordagem não redisparável
15
48
Descrição VHDL do monoestável
15
49
Simulação do monoestável
A saída é ativada apenas na borda de subida 
do clock quando o trigger está ativado
Eventos de trigger durante a contagem são 
ignorados
15
50
Referências
15
51
COSTA, C. Projetos de circuitos digitais com FPGA. 3. ed. São Paulo: Érica, 2014. cap. 3.
D’AMORE, R. VHDL Descrição e síntese de circuitos digitais. 2. ed. Rio de Janeiro: LTC, 2012. cap. 3, 4, 6, 11.
PEDRONI, V. A. Eletrônica digital moderna e VHDL. Rio de Janeiro: Elsevier, 2010. cap. 5, 9.
TOCCI, R.; WIDMER, N. S. Sistemas Digitais –princípios e aplicações. 11. ed. São Paulo: Pearson, 2011. cap. 7, 9. 
15
52

Outros materiais