Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> VHDL

Использование операторов Wait For для задержки выполнения в VHDL

В предыдущем уроке мы сравнили процесс VHDL с потоком программы и представили оператор wait;, который приостанавливает процесс бесконечно. Но что, если процесс должен приостановиться на определенную длительность?

Удаление wait; полностью вызывает ошибку компиляции, потому что каждый процесс VHDL — это бесконечный цикл, который должен содержать хотя бы один оператор wait. Цикл выполняется непрерывно между разделителями begin и end process;.

Эта статья входит в серию базовых уроков VHDL.

В то время как wait; останавливает выполнение навсегда, конструкция wait for позволяет задержать процесс на любой желаемый интервал времени.

Синтаксис wait for:

wait for <time_value> <time_unit>;

где <time_value> — числовой литерал, а <time_unit> может быть одним из следующих:

fsфемтосекунды
psпикосекунды
nsнаносекунды
usмикросекунды
msмиллисекунды
secсекунды
minминуты
hrчасы

Упражнение

Посмотрите видеоурок, чтобы увидеть wait for в действии, приостанавливающем процесс на заданный пользователем период.

Пример VHDL, который мы построили, показан ниже:

entity T02_WaitForTb is end entity; architecture sim of T02_WaitForTb is begin process is begin -- Процесс "поток" начинается здесь report "Peekaboo!"; wait for 10 ns; -- Возврат к началу end process; end architecture; 

Запуск в ModelSim дает следующий вывод консоли:

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 ... 

Анализ

В этом примере задержка 10 ns типична для логики, работающей на частотах МГц, где наносекундная гранулярность соответствует периодам тактового сигнала.

Во время симуляции оператор report и управление циклом потребляют нулевое время; только wait for продвигает симуляционное время.

Использование операторов Wait For для задержки выполнения в VHDL

Вывод

Переходите к следующему уроку →


VHDL

  1. Расчет времени достижения целевого напряжения в RC и RL цепях
  2. Создание списков строк в VHDL: лучшие практики и пример
  3. Создание Tcl-управляемого тестбенча для VHDL-модуля кодового замка
  4. Использование внутрипроцессных процедур для более чистого проектирования FSM на VHDL
  5. Бесплатный симулятор и редактор VHDL: руководство для студентов
  6. Баланс детализации и эффективности в планировании заданий обслуживания
  7. Когда планировать ТО крановых тормозов: ключевые индикаторы
  8. Ускорение обучения робототехнической сварке: сократите время, повысьте эффективность
  9. Первое автострахование: пошаговое руководство для новичков
  10. Точные прогнозы сроков поставки при аутсорсинге металлофаabricации