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

Начальный блок Verilog

Набор операторов Verilog обычно выполняется последовательно при моделировании. Эти операторы помещаются внутри процедурного блокировать. В основном существует два типа процедурных блоки в Verilog - начальный и всегда

Синтаксис

  
  
	initial 
		[single statement]

	initial begin
		[multiple statements]
	end

  

Для чего используется начальный блок?

initial Блок не поддается синтезу и, следовательно, не может быть преобразован в аппаратную схему с цифровыми элементами. Следовательно, исходные блоки не служат особой цели, кроме использования в симуляциях. Эти блоки в основном используются для инициализации переменных и управления портами дизайна с определенными значениями.

Когда начинается и заканчивается начальный блок?

initial блок запускается в начале симуляции в единицу времени 0. Этот блок будет выполняться только один раз за всю симуляцию. Выполнение initial блок завершается, как только все операторы внутри блока выполнены.

Изображение, показанное выше, имеет module вызвало поведение, которое имеет два внутренних сигнала, называемых a и b. initial блок имеет только один оператор, поэтому нет необходимости помещать оператор в begin и end . Этот оператор присваивает значение 2'b10 a, когда начальный блок запускается в момент времени 0 единиц.

Что произойдет, если есть элемент задержки?

Код, показанный ниже, имеет дополнительную инструкцию, которая присваивает некоторое значение сигналу b. Однако это происходит только через 10 единиц времени после выполнения предыдущего оператора. Это означает, что a сначала присваивается заданное значение, а затем, через 10 единиц времени, b присваивается 0.

Сколько начальных блоков разрешено в модуле?

Количество initial не ограничено. блоки, которые могут быть определены внутри модуля.

Код, показанный ниже, имеет три initial блоки, все из которых запускаются одновременно и работают параллельно. Однако в зависимости от операторов и задержек в каждом начальном блоке время, необходимое для завершения блока, может варьироваться.

В этом примере первый блок имеет задержку 20 единиц, а второй имеет общую задержку 50 единиц (10 + 40), а последний блок имеет задержку 60 единиц. Следовательно, симуляция занимает 60 единиц времени, поскольку по крайней мере один начальный блок все еще работает до 60 единиц времени.

$finish — это системная задача Verilog, которая сообщает симулятору о завершении текущей симуляции.

Если бы последний блок имел задержку в 30 единиц времени, как показано ниже, симуляция закончилась бы на 30 единицах времени, тем самым убивая все остальные initial блоки, активные в это время.

  
  
	initial begin
		#30 $finish;
	end

  

Посмотрите приведенный ниже пример Flash, чтобы увидеть, как initial блок выполняется в моделировании.

Щелкните здесь, чтобы просмотреть слайд-шоу с примером моделирования!


Verilog

  1. Учебник Verilog
  2. Конкатенация Verilog
  3. Verilog - в ореховой скорлупе
  4. Верилог Задания
  5. Блокировка и неблокировка Verilog
  6. Верилог-функции
  7. Верилог Задача
  8. Генератор часов Verilog
  9. Математические функции Verilog
  10. Формат времени Verilog