Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> VHDL

Usando Instruções Wait-For para Atrasar Execução em VHDL

No tutorial anterior, comparamos um processo VHDL a uma thread de programa e introduzimos a instrução wait;, que suspende um processo indefinidamente. Mas e se você precisar que um processo pause por uma duração específica?

Remover o wait; completamente dispara um erro de compilador porque todo processo VHDL é um loop infinito que deve conter pelo menos uma instrução wait. O loop roda continuamente entre os delimitadores begin e end process;.

Este artigo faz parte da série Tutoriais Básicos de VHDL.

Enquanto wait; halta a execução para sempre, o construto wait for permite atrasar um processo por qualquer intervalo de tempo desejado.

A sintaxe de wait for é:

wait for <valor_tempo> <unidade_tempo>;

onde <valor_tempo> é um literal numérico e <unidade_tempo> pode ser uma das seguintes:

fsfemtossegundos
pspicossegundos
nsnanossegundos
usmicrossegundos
msmilissegundos
secsegundos
minminutos
hrhoras

Exercício

Assista ao tutorial em vídeo para ver wait for em ação, pausando um processo por um período definido pelo usuário.

O exemplo de VHDL que construímos é mostrado abaixo:

entity T02_WaitForTb is end entity; architecture sim of T02_WaitForTb is begin process is begin -- "Thread" do processo começa aqui report "Cucú!"; wait for 10 ns; -- Volta ao início end process; end architecture; 

Executando isso no ModelSim produz a seguinte saída do console:

VSIM 2> run # ** Note: Cucú! # Time: 0 ns Iteration: 0 Instance: /t02_waitfortb # ** Note: Cucú! # Time: 10 ns Iteration: 0 Instance: /t02_waitfortb # ** Note: Cucú! # Time: 20 ns Iteration: 0 Instance: /t02_waitfortb ... 

Análise

Neste exemplo, o atraso de 10 ns é típico para lógica operando em frequências MHz, onde granularidade de nanossegundos alinha com períodos de clock.

Durante a simulação, a instrução report e controle de loop consomem tempo zero; apenas a instrução wait for avança o tempo de simulação.

Usando Instruções Wait-For para Atrasar Execução em VHDL

Conclusão

  • Um processo VHDL pausa precisamente pela duração especificada em wait for.
  • Todas as outras instruções em um processo executam instantaneamente em tempo de simulação.

Prossiga para o próximo tutorial →


VHDL

  1. Calculando o Tempo para Atingir uma Tensão Alvo em Circuitos RC e RL
  2. Criando Listas de Strings em VHDL: Boas Práticas e Exemplo
  3. Criando um Testbench Dirigido por Tcl para um Módulo Code-Lock VHDL
  4. Aproveitando Procedimentos In-Process para Design de FSM em VHDL Mais Limpo
  5. Configuração Gratuita de Simulador e Editor VHDL: Guia para Estudantes
  6. Equilibrando Detalhe e Eficiência no Planejamento de Trabalhos de Manutenção
  7. Quando Agendar a Manutenção dos Freios do Guindaste: Indicadores-Chave
  8. Acelere o Treinamento de Soldagem Robótica: Reduza Tempo, Aumente Eficiência
  9. Seguro Auto para Primeira Vez: Guia Passo a Passo para Cobertura Acessível
  10. Estimativas Precisas de Prazo de Entrega para Terceirização de Fabricação de Metais