Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMarcelo Jacinto Alterado mais de 10 anos atrás
1
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais
Sistemas Digitais
2
Tópicos Abordados Aspectos gerais da linguagem Síntese de circuitos
Entidade de projeto Classes de objetos: constante, variável e sinal Tipos Operadores Construção concorrente WHEN ELSE Construção concorrente WITH SELECT Processos e lista de sensibilidade Construção sequencial IF ELSE Construção sequencial CASE WHEN Circuitos síncronos
3
Aspectos Gerais da Linguagem
4
Síntese de Circuitos
5
Síntese de Circuitos Etapas de um projeto
6
Verificação do Resultado
Síntese de Circuitos Elaboração da Descrição VHDL Descrição VHDL Compilador VHDL Simulador VHDL Verificação do Resultado Estímulos de teste
7
Síntese de Circuitos Síntese da descrição (ilustração das operações)
descrição do circuito circuito nível RTL sintetizado circuito nível portas (final)
8
Síntese de Circuitos Síntese da descrição (ilustração das operações)
descrição do circuito circuito nível RTL sintetizado circuito nível portas (final)
9
Síntese de Circuitos Síntese da descrição (ilustração das operações)
descrição do circuito circuito nível RTL sintetizado circuito nível portas (final)
10
Síntese de Circuitos Descrição VHDL Ferramenta de Síntese Nível RTL
Teste do circuito sintetizado Dados da Tecnologia Nível de Portas Otimização velocidade/área Opção de Projeto Nova Descrição VHDL Temporização Rede de Ligações Simulador VHDL Estímulos
11
Síntese de Circuitos Rede de Ligações Teste do circuito sintetizado:
Interligações definidas Ferramenta de Posicionamento & Interligação Nova Descrição VHDL Temporização Implementação Simulador VHDL Estímulos
12
Descrição VHDL
13
Descrição VHDL
14
Descrição VHDL
15
Descrição VHDL Modos de Portas
16
Descrição VHDL
17
Descrição VHDL Objetos: são elementos que armazenam valor.
Quatro classes de objetos são definidas em VHDL CONSTANT – objeto com valor estático VARIABLE – valor imposto pode ser alterado e é empregado em regiões de código sequencial SIGNAL – valor imposto pode ser alterado e é empregado em regiões de código concorrente ou sequencial FILE – objetos associados à criação de arquivos
18
Descrição VHDL Declarações de objetos das classes CONSTANT, VARIABLE e SIGNAL --Classe Lista de nomes Tipo Variável inicial CONSTANT nome_const : tipo_x; const sem valor CONSTANT nome_const : tipo_x := valor_inicial; CONSTANT nome_1, nome_2 : tipo_x := valor_inicial; --const mesmo tipo e vallor inicial VARIABLE nome_var : tipo_y; variável sem valor VARIABLE nome_var : tipo_y := valor_inicial; variável com valor inicial VARIABLE nome1, nome : tipo_y := valor_inicial; variáveis mesmo tipo e valor inicial SIGNAL nome_sinal : tipo_z; sinal sem valor SIGNAL nome_sinal : tipo_z := valor_inicial; sinal com valor inicial SIGNAL nome1, nome : tipo_z ; sinais mesmo tipo e sem valor inicial
19
Descrição VHDL Transferência de Informações entre objetos sinal_2 <= sinal_1; -- atribuição do valor de um sinal em outro sinal sinal_3 <= variavel_1; -- atribuição do valor de uma variável em um sinal sinal_4 <= constant_1; -- atribuição do valor de uma constante em um sinal variavel_2 := sinal_1; -- atribuição do valor de um sinal em uma variável variavel_3 := variavel_1; -- atribuição do valor de uma variável em outra variável variavel_4 := constant_1; -- atribuição do valor de uma constante em uma variável Observe a presença de delimitadores de atribuição diferentes!
20
Descrição VHDL
21
Descrição VHDL
22
Tipos VHDL
23
Tipos VHDL
24
Tipos VHDL
25
Tipos VHDL
26
Tipos VHDL
27
Tipos VHDL Definição de novos tipos
VHDL permite a criação de novos tipos enumerados, físicos e compostos Criação de novo tipo pode facilitar a leitura de um código, atribuindo nomes específicos para determinadas condições Aqui será apresentada apenas uma introdução sobre o assunto Declaração de um tipo é feito a partir da palavra reservada TYPE Exemplo: TYPE estado IS (parado, inicio, seguindo_caminho, rotacionando, desviando_obstaculo) -- declaração do tipo SIGNAL x : estado := parado; objeto sinal empregando o tipo estado
28
Operadores VHDL
29
Operadores VHDL
30
Operadores VHDL
31
Operadores VHDL
32
Operadores VHDL
33
Operadores VHDL
34
Compilar e simular as descrições apresentadas nos 2 slides prévios!
Exercícios Compilar e simular as descrições apresentadas nos 2 slides prévios!
35
Comandos Concorrentes Básicos
Comandos concorrentes são executados conjuntamente. Logo, a sequência como são apresentados no código é irrelevante Um atraso delta é empregado para o simulador avaliar as iterações resultantes dos comando concorrentes. O Atraso Delta Δ Ordem dos comandos no código não deve interferir no resultado final da simulação O simulador necessita de um atraso interno, denominado Δ, para coordenação da avaliação de eventos concorrentes Para todos os comandos ativados, o resultado é transferido 1Δ após A nova condição pode ativar novos comandos, e o processo se repete por sucessivas iterações até atingir uma condição estável
36
Comandos Concorrentes Básicos
O Atraso Delta Δ Observe que em uma linguagem sequencial, o comando da linha 9 deveria ser apresentado antes do comando da linha 8! 1 | ENTITY sig_tes0 IS 2 | PORT( sa : IN BIT; 3 | sb, sc : BUFFER BIT); 4 | END sig_tes0; 5 | 6 | ARCHITECTURE teste OF sig_tes0 IS 7 | BEGIN 8 | sc <= sb; 9 | sb <= sa; 10 | END teste;
37
Comandos Concorrentes Básicos
O Atraso Delta Δ Simulador Comportamento real
38
Comandos Concorrentes Básicos
O Atraso Delta Δ – condição instável Os simuladores normalmente limitam o número máximo de iterações e abortam a simulação!
39
Comandos Concorrentes Básicos
Atribuição de valor a um sinal Pode ocorrer tanto em regiões de código concorrente quanto sequencial Quando a atribuição ocorre em região concorrente, a ordem dos comandos é irrelevante A atribuição emprega o delimitador “<=“ A informação pode ser originada de um outro sinal ou expressão VHDL é rigorosa com relação a operações envolvendo tipos diferentes, não permitindo transferência de valor entre objetos nesse caso
40
Comandos Concorrentes Básicos
Atribuição de valor a um sinal Exemplo: MUX (Circuito de Seleção)
41
Comandos Concorrentes Básicos
Atribuição de valor a um sinal
42
Comandos Concorrentes Básicos
Atribuição de valor a um sinal
43
Comandos Concorrentes Básicos
Construção WHEN ELSE
44
Comandos Concorrentes Básicos
Construção WHEN ELSE s1_s0 <= s1 & s0;
45
Comandos Concorrentes Básicos
Construção WITH SELECT
46
Comandos Concorrentes Básicos
Construção WITH SELECT
47
Comandos Concorrentes Básicos
WHEN ELSE versus WITH SELECT Na construção WHEN ELSE a ordem de apresentação das condições indica a precedência na execução Primeira condição tem prioridade máxima e a última mínima Na construção WITH SELECT todas as condições possuem igual prioridade Tais diferenças podem ser aproveitadas pelo projetista para obter circuitos mais eficientes e descrições mais sucintas O exercício a seguir ilustra o caso onde a construção WHEN ELSE leva vantagem sobre a construção WITH SELECT
48
Exercícios
49
Exercícios 1 | ENTITY pr_cod IS
2 | PORT( p : IN BIT_VECTOR(3 DOWNTO 1); 3 | c : OUT BIT_VECTOR(1 DOWNTO 0)); 4 | END pr_cod; 5 | 6 | ARCHITECTURE teste1 OF pr_cod IS 7 | BEGIN p3 p2 p1 c1 c0 | c <= “11” WHEN p(3) = ‘1’ ELSE | “10” WHEN p(2) = ‘1’ ELSE | “01” WHEN p(1) = ‘1’ ELSE | “00”; 12 | END teste1; 1 | ENTITY pr_cod IS 2 | PORT( p : IN BIT_VECTOR(3 DOWNTO 1); 3 | c : OUT BIT_VECTOR(1 DOWNTO 0)); 4 | END pr_cod; 5 | 6 | ARCHITECTURE teste2 OF pr_cod IS | BEGIN | WITH p SELECT p3 p2 p1 c1 c0 9 | c <= “11” WHEN “111”|”110”|”101”|”100”, 10 | “10” WHEN “011”|”010” , 11 | “01” WHEN “001”, 12 | “00” WHEN “000”; 13 | END teste2;
50
Comandos Concorrentes Básicos
Criação de latch com as construções WHEN ELSE e WITH SELECT 1 | ENTITY latch IS 2 | PORT( enb, d1, d2, d3 : IN BIT; 3 | q1, q2, q3, : BUFFER BIT); 4 | END latch; 5 | 6 | ARCHITECTURE funcionamento OF latch IS 7 | BEGIN | q1 <= d1 WHEN enb = ‘1’ ELSE | q1; | q2 <= d2 WHEN enb = ‘1’; 11 | WITH enb SELECT 12 | q <= d WHEN ‘1’; 13 | q WHEN ‘0’; 14 | END funcionamento;
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.