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

Como usar Loop e Exit em VHDL


No tutorial anterior, aprendemos como atrasar o tempo usando o wait for declaração. Também aprendemos sobre o loop de processo. Agora sabemos que, se permitirmos, o “thread” do processo entrará em loop dentro do processo para sempre.

Mas e se quisermos fazer algo apenas uma vez no início do processo? E, em seguida, fazer um loop sobre algum outro código no final? O tipo mais simples de loop em VHDL pode ser criado usando o loop declaração.

Esta postagem do blog faz parte da série de tutoriais básicos de VHDL.

A sintaxe para o loop simples é:
loop
end loop;

Esse loop continuará indefinidamente, ou até que um exit; é encontrado. O exit A instrução pode ser usada para interromper qualquer loop.

Exercício


Este tutorial em vídeo ensina como criar um loop simples e como sair dele:



O código final que criamos neste tutorial:
entity T03_LoopTb is
end entity;

architecture sim of T03_LoopTb is
begin

    process is
    begin
 
        report "Hello!";
        
        loop
            report "Peekaboo!";
            exit;
        end loop;
        
        report "Goodbye!";
        wait;
        
    end process;

end architecture;

A saída para o console do simulador quando pressionamos o botão de execução no ModelSim:
VSIM 2> run
# ** Note: Hello!
#    Time: 0 ns  Iteration: 0  Instance: /t03_looptb
# ** Note: Peekaboo!
#    Time: 0 ns  Iteration: 0  Instance: /t03_looptb
# ** Note: Goodbye!
#    Time: 0 ns  Iteration: 0  Instance: /t03_looptb




Análise


Ao executar o código final no simulador vimos que o primeiro “Hello!” foi impresso no console do ModelSim. Então, o “Peekaboo!” entre o loop; e end loop; foi impresso. Na próxima linha, o programa atingiu o exit; instrução, fazendo com que o programa saia do loop. Finalmente, “Adeus!” foi impresso. Depois disso nada mais acontece porque o programa é pausado para sempre no wait; declaração.

Podemos ver pelos timestamps das impressões que tudo aconteceu no tempo de simulação de 0 ns. Como aprendemos no tutorial anterior, tudo menos wait instruções consomem zero tempo.


Retirada


Ir para o próximo tutorial »

VHDL

  1. Como usar um procedimento em um processo em VHDL
  2. Como usar uma função impura em VHDL
  3. Como usar uma função em VHDL
  4. Como usar um procedimento em VHDL
  5. Como criar um temporizador em VHDL
  6. Como usar constantes e mapa genérico em VHDL
  7. Como usar a instanciação do mapa de portas em VHDL
  8. Como instalar um simulador e editor VHDL gratuitamente
  9. Microcontrolador PIC18:o que é e como usá-lo
  10. O que é um designador de referência e como o usamos na montagem?