Cтраница 1
Последовательные операторы могут записываться только в теле оператора process. При моделировании фрагменты алгоритма, заключенные в оператор process, будут исполняться друг за другом после возникновения в системе инициализирующего события - изменении одного из сигналов, перечисленных в списке инициализаторов, или в заранее определенный момент времени. Параллельные операторы в теле процесса не определены. Переменные могут быть определены только в теле процесса, а сигналы во всем архитектурном теле. [1]
Последовательные операторы заключаются в выделенные программные блоки и при моделировании выполняются последовательно друг за другом в порядке записи. Результаты преобразований доступны для других блоков программы только после выполнения всех вложенных в блок операторов. В число последовательных операторов, в частности, входят последовательные операторы присваивания, условный оператор if, оператор выбора case, операторы повторения loop. Вводятся конструкции, которые представляют действия, исполняемые в течение некоторого ненулевого временного интервала. [2]
Последовательные операторы выполняются друг за другом в порядке записи, параллельные же при любом изменении сигнала, используемого в качестве аргумента. Последовательные операторы должны быть локализованы в теле составных операторов. [3]
![]() |
Атрибуты сигналов. [4] |
Последовательные операторы ( Sequential Statement) по характеру исполнения подобны операторам традиционных языков программирования. Операторы этого типа обязательно вложены в оператор process или подпрограмму и выполняются последовательно друг за другом в порядке записи. Результаты исполнения последовательных операторов недоступны прочим программным модулям по крайней мере до того, как будет выполнен оператор ожидания wait, или не будут выполнены до конца все процессы, инициированные общим событием. [5]
![]() |
Влияние уровня силы драйвера на значение сигнала. [6] |
Процедурные последовательные операторы присваивания, которые мы будем называть просто последовательными присваиваниями, потому что последовательными могут быть только процедурные присваивания, локализуются в так называемых последовательных блоках. Подробнее концепция блока будет рассмотрена далее, пока же определим, что последовательный блок - это последовательность операторов, заключенная между парой ключевых слов begin и end. Последовательные операторы выполняются друг за другом в порядке записи, а приемником в них может быть только переменная регистрового типа. Но с точки зрения доступности результатов присвоения для последующих операторов имеются модификации. Язык Verilog не различает, в отличие от VHDL, категорий сигналов и переменных. Но для отображения причинно-следственных связей наряду с параллельными операторами вводятся специфические, подобные VHDL, механизмы управления доступностью, задаваемые формой записи оператора: блокирующие и неблокирующие операторы присваивания, и соответствующая символика. [7]
Некоторые параллельные и последовательные операторы совпадают по форме записи. В этом случае различие устанавливается по контексту: если оператор локализован в теле процесса, он трактуется как последовательный, а если в другом месте программы - как параллельный. [8]
Возможно использование последовательных операторов присваивания с учетом тех же особенностей, которые были отмечены при изложении интерпретации функций с использованием логических выражений. Если это в проекте представляется важным, лучше на основании таблицы истинности построить оператор присваивания по выбору или использовать последовательный оператор выбора. [9]
Между двумя последовательными операторами обнаружено более 30 комментариев. [10]
Раздел операторов содержит только последовательные операторы. [11]
Если префикс предшествует последовательному оператору, то оператор исполняется после предыдущего в последовательности через временной интервал, заданный префиксом. Фактически, это означает приостанов исполнения программного блока. В качестве исходных данных для оператора используется значение переменных на момент начала его исполнения. [12]
Оператор PRINT аналогичен форматному, последовательному оператору WRITE и предназначен для вывода на экран. Он не может передавать данные на логическое устройство, заданное пользователем. [13]
Ниже приведен полный список последовательных операторов языка. [14]
Последовательность операторов ( здесь могут быть только последовательные операторы), заключенная между словами loop и end loop, называется телом оператора повторения или телом цикла. Операторы в теле цикла выполняются друг другом в порядке записи, причем такое выполнение повторяется многократно. Число повторений определяется итерационной схемой. [15]