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

Как использовать «Подождать» и «Подождать до» в VHDL

В предыдущем уроке мы узнали основные различия между сигналами и переменными. Мы узнали, что сигналы имеют более широкий охват, чем переменные, которые доступны только внутри одного процесса. Так как же мы можем использовать сигналы для связи между несколькими процессами?

Мы уже научились использовать wait; ждать бесконечно, и wait for ждать определенное время. В VHDL существует еще два типа операторов ожидания.

Эта запись в блоге является частью серии учебных пособий по основам VHDL.

Оператор Wait On приостанавливает процесс до тех пор, пока не изменится один из указанных сигналов:
wait on <signal_name1>, <signal_name2> ...;

Оператор «Ждать до» будет приостановлен до тех пор, пока событие не приведет к тому, что условие станет истинным:
wait until <condition>;

На самом деле, «Подождать», «Подождать до» и «Подождать» можно комбинировать:
wait on <signal_name1> until <condition> for <time_value>;

В этом примере будет сделана пауза на 10 наносекунд или до signal1. изменения и signal2 равно signal3 :
wait on signal1 until signal2 = signal3 for 10 ns;

Упражнение

В этом видеоруководстве мы узнаем, как использовать операторы «Ждать» и «Ждать до» для межпроцессного взаимодействия в VHDL:

Окончательный код, который мы создали в этом руководстве:

06

Вывод в консоль симулятора, когда мы нажали кнопку запуска в ModelSim:

15 

Анализ

Первый процесс увеличивает CountUp счетчик и уменьшает CountDown прилавок. Они обновляются одновременно. Хотя назначения сигналов двух сигналов находятся в разных строках процесса, назначенные значения сигналов вступают в силу только тогда, когда программа нажимает оператор ожидания. Процесс выполняет эту операцию в начале моделирования, а затем каждые 10 наносекунд.

Первая строка второго процесса — wait on CountUp, CountDown; . Программа будет ждать в этой строке, пока один или оба сигнала не изменятся. Как мы видим из распечатки, это происходит при времени моделирования 0 нс, когда счетчики меняются в первый раз, и каждый раз, когда они меняются после этого.

Первая строка третьего процесса — wait until CountUp = CountDown;. . Программа будет просыпаться каждый раз при изменении одного из двух сигналов, как это делал первый процесс. Но это будет продолжаться только в том случае, если выражение оценивается как true , иначе он снова заснет. Как видно из распечатки, «Джекпот!» печатается только один раз, через 40 нс, когда оба счетчика имеют одинаковое значение.

Вывод

  • Wait On будет ждать, пока не изменится один из сигналов.
  • Подождите до тех пор, пока не активируется, если один из сигналов изменится, но продолжится только в том случае, если выражение true
  • Подождите, подождите, пока и подождите, можно комбинировать

Перейти к следующему руководству »


VHDL

  1. Как использовать процедуру в процессе в VHDL
  2. Как использовать нечистую функцию в VHDL
  3. Как использовать функцию в VHDL
  4. Как использовать процедуру в VHDL
  5. Как использовать константы и общую карту в VHDL
  6. Как использовать создание экземпляра карты портов в VHDL
  7. Как использовать оператор Case-When в VHDL
  8. Как бесплатно установить симулятор и редактор VHDL
  9. Микроконтроллер PIC18:что это такое и как его использовать
  10. Что такое позиционное обозначение и как мы его используем в ассемблере?