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 Sistemas 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 Sistemas 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 Etapas de um projeto

6 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 Nível RTL Nível de Portas Otimização velocidade/área Dados da Tecnologia Opção de Projeto Rede de Ligações Estímulos Temporização Nova Descrição VHDL Simulador VHDL Ferramenta de Síntese Teste do circuito sintetizado

11 Síntese de Circuitos Rede de Ligações Estímulos Temporização Nova Descrição VHDL Simulador VHDL Teste do circuito sintetizado: Interligações definidas Ferramenta de Posicionamento & Interligação Implementação

12 Descrição VHDL

13

14

15 Modos de Portas

16 Descrição VHDL

17 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 TipoVariá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, nome2 : 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, nome2 : 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

22 Tipos VHDL

23

24

25

26

27 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

30

31

32

33

34 Exercícios Compilar e simular as descrições apresentadas nos 2 slides prévios!

35 Comandos Concorrentes Básicos O Atraso Delta Δ 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. 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 | ENTITYsig_tes0 IS 2 |PORT( sa:INBIT; 3 |sb, sc:BUFFERBIT); 4 | END sig_tes0; 5 | 6 | ARCHITECTURE testeOFsig_tes0IS 7 | BEGIN 8 |sc<=sb; 9 |sb<=sa; 10 | ENDteste;

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 1 | ENTITYpr_cod IS 2 |PORT( p:INBIT_VECTOR(3 DOWNTO 1); 3 | c:OUTBIT_VECTOR(1 DOWNTO 0)); 4 | END pr_cod; 5 | 6 | ARCHITECTURE teste1OFpr_codIS 7 | BEGIN-- p3 p2 p1 c1 c0 8|c <= 11 WHENp(3) = 1ELSE | 10 WHENp(2) = 1ELSE | 01 WHENp(1) = 1ELSE | 00; | ENDteste1; 1 | ENTITYpr_codIS 2 |PORT( p:INBIT_VECTOR(3 DOWNTO 1); 3 | c:OUTBIT_VECTOR(1 DOWNTO 0)); 4 | END pr_cod; 5 | 6 | ARCHITECTURE teste2OFpr_codIS 7| BEGIN 8| WITH p SELECT -- p3 p2 p1 c1 c0 9 |c <= 11 WHEN111|110|101|100, | 10 WHEN011|010, | 01 WHEN001, | 00 WHEN 000; | ENDteste2;

50 Comandos Concorrentes Básicos Criação de latch com as construções WHEN ELSE e WITH SELECT 1 | ENTITYlatchIS 2 |PORT( enb, d1, d2, d3 :INBIT; 3 | q1, q2, q3, : BUFFERBIT); 4 | END latch; 5 | 6 | ARCHITECTURE funcionamento OFlatchIS 7 | BEGIN 8|q1 <= d1 WHENenb = 1ELSE 9| q1; 10| q2 <= d2 WHENenb = 1; 11 | WITH enb SELECT 12 | q3 <= d3 WHEN 1; 13 | q3 WHEN 0; 14 | ENDfuncionamento;


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

Apresentações semelhantes


Anúncios Google