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

Учебное пособие - Написание комбинационного и последовательного кода

Использование процесса VHDL или Verilog Always Blocks

В этом руководстве показано, как записывать блоки VHDL или Verilog, которые содержатся в любом процессе. или Всегда блокировать соответственно. Процессы (в VHDL) и Always Blocks (в Verilog) являются фундаментальными, и их необходимо хорошо понимать. Они ведут себя совершенно одинаково, поэтому оба представлены здесь для вас. Если вы сейчас изучаете только один язык, обратите внимание на примеры, посвященные этому конкретному языку. Процессы или Always Blocks используются в двух основных сценариях:

  1. Чтобы определить блок комбинированных логика
  2. Чтобы определить блок последовательного логика

Первый сценарий — это то, что обычно встречается в учебниках при знакомстве нового ученика с процессами или постоянными блоками. Он представлен здесь для вас, чтобы вы знали о его существовании. Но на самом деле блок Process/Always, используемый для определения блока комбинационной логики, гораздо реже встречается в «реальном» коде, чем блок Process/Always, используемый для определения последовательной логики.

Первый вопрос, который вы можете задать себе, — в чем разница между комбинационной и последовательной логикой? Комбинационная (или комбинаторная) логика — это логика, для работы которой не требуются часы. Приведенный выше пример с воротами «и» является комбинационным примером. Последовательная логика — это логика, для работы которой требуются часы. Наиболее фундаментальным строительным блоком последовательной логики является D-триггер (на фото ниже).

D Flip-Flop!

Если вы не знаете, как работает D-Flip-Flop, немедленно прекратите читать это! Вам нужно понять, как триггеры используются внутри ПЛИС, прежде чем продолжить чтение. Все готово? Хорошо.

Комбинационный процесс в VHDL:

01

Комбинация всегда блокируется в Verilog:

10 

В приведенном выше коде VHDL и Verilog input_1 и input_2 находятся в так называемом списке чувствительности. . Список чувствительности — это список всех сигналов, которые вызывают выполнение блока Process/Always. В приведенном выше примере изменение input_1 или input_2 приведет к выполнению блока Process/Always. Этот блок процесса/всегда берет два входа, выполняет над ними операцию «и» и сохраняет результат в сигнале and_gate. Это та же самая функциональность, что и в этом коде:

28
32

Оба примера кода служат одной цели:назначить сигнал and_gate. Разница в том, что один находится в комбинированном блоке Process/Always, а другой нет. Поэтому, поскольку тот же результат может быть достигнут без использования комбинации Process/Always Block, я не рекомендую начинающим цифровым дизайнерам использовать эти операторы таким образом.

Второй способ использования Process или Always Block (и гораздо более интересный пример) — это определение блока последовательной логики. Опять же, последовательная логика — это логика, которая синхронизируется.


VHDL

  1. Учебное пособие - Написание комбинационного и последовательного кода
  2. Плюсы и минусы "Инфраструктура как код"
  3. Введение в комбинированные логические функции
  4. Что такое кодирование:работа, языки и его проблемы
  5. Использование встроенного логического анализатора (ILA) и виртуального ввода/вывода (VIO)
  6. Стек Java и куча:руководство по распределению памяти в Java
  7. Как читать CSV-файл в Python | Чтение и запись файлов CSV
  8. Лестничная логика 102:плюсы и минусы
  9. Процедуры написания:простые и эффективные благодаря переходу на цифровые технологии
  10. Различия между G-кодом и M-кодом