Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> VHDL

Uso de sentencias Wait-For para retrasar ejecución en VHDL

En nuestro tutorial previo comparamos un proceso VHDL a un hilo de programa e introdujimos la sentencia wait;, que suspende un proceso indefinidamente. Pero ¿qué pasa si necesitas que un proceso pause por una duración específica?

Remover el wait; completamente dispara error de compilador porque todo proceso VHDL es un bucle infinito que debe contener al menos una sentencia wait. El bucle corre continuamente entre los delimitadores begin y end process;.

Este artículo es parte de la serie Tutoriales Básicos VHDL.

Mientras wait; halta ejecución para siempre, el constructo wait for permite retrasar un proceso por cualquier intervalo de tiempo deseado.

La sintaxis de wait for es:

wait for <time_value> <time_unit>;

donde <time_value> es un literal numérico y <time_unit> puede ser uno de los siguientes:

fsfemto segundos
pspico segundos
nsnano segundos
usmicro segundos
msmili segundos
secsegundos
minminutos
hrhoras

Ejercicio

Mira el tutorial de video para ver wait for en acción, pausando un proceso por período definido por usuario.

El ejemplo VHDL que construimos se muestra abajo:

entity T02_WaitForTb is end entity; architecture sim of T02_WaitForTb is begin process is begin -- Process "thread" starts here report "Peekaboo!"; wait for 10 ns; -- Loop back to the start end process; end architecture; 

Ejecutando esto en ModelSim produce la siguiente salida de consola:

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

Análisis

En este ejemplo el delay de 10 ns es típico para lógica operando a frecuencias MHz, donde granularidad nanosegundo alinea con periodos de clock.

Durante simulación, la sentencia report y control de bucle consumen tiempo cero; solo la sentencia wait for avanza tiempo de simulación.

Uso de sentencias Wait-For para retrasar ejecución en VHDL

Conclusión

Proceda al siguiente tutorial →

VHDL

  1. Equilibrando Detalle y Eficiencia en la Planificación de Trabajos de Mantenimiento
  2. Primer seguro de coche: guía paso a paso para conseguir cobertura asequible
  3. Cálculo del tiempo para alcanzar un voltaje objetivo en circuitos RC y RL
  4. Estimaciones precisas de plazos de entrega para externalización de fabricación de metales
  5. Acelera la Formación en Soldadura Robótica: Reduce Tiempos y Aumenta la Eficiencia
  6. Cuándo programar el mantenimiento de frenos de grúa: indicadores clave
  7. Creación de listas de cadenas en VHDL: Buenas prácticas y ejemplo
  8. Creación de un testbench dirigido por Tcl para un módulo VHDL de cerradura por código
  9. Aprovechando procedimientos en-proceso para diseños FSM más limpios en VHDL
  10. Dominando funciones VHDL: Guía práctica para diseño eficiente
  11. Configuración gratis de simulador y editor VHDL: Guía para estudiantes