A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

VHDL Linguagem de Descrição e Síntese de Circuitos Digitais

Cópias: 1
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais.

Apresentações semelhantes


Apresentação em tema: "VHDL Linguagem de Descrição e Síntese de Circuitos Digitais"— Transcrição da apresentação:

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;


Carregar ppt "VHDL Linguagem de Descrição e Síntese de Circuitos Digitais"

Apresentações semelhantes


Anúncios Google