Cтраница 1
Параллельные операторы представляют части алгоритма, которые в реальной системе могут исполняться одновременно. Эти части взаимодействуют между собой и с окружением проектируемой системы. Параллельные операторы могут быть простыми и составными. Составной оператор включает несколько простых операторов, для которых определены общие условия инициализации. Такая совокупность операторов называется телом составного оператора. [1]
Параллельные операторы это такие, каждый из которых выполняется при любом изменении сигналов, используемых в качестве его исходных данных. [2]
Параллельные операторы вызова first и second иллюстрируют альтерна-гивные способы записи списков соответствия. Первая форма записи списка ассоциаций соответствует позиционному сопоставлению фактических и формальных параметров подпрограмм, а вторая - сопоставлению по имени. Позиционное сопоставление требует точного совпадения порядка записи фактических параметров в списках соответствия и порядка записи формальных параметров в интерфейсном списке подпрограммы. Если какой-либо параметр не используется или используется значение входа по умолчанию, гоответствующая позиция в списке отмечается как пустая. При сопоставлении по имени порядок записи не имеет значения, важно лишь совпадение имени формального параметра с именем, указанным в декларации подпрограммы. [3]
Параллельные операторы проверки и вызова подпрограмм соотносятся с соответствующими последовательными операторами проверки и вызова подобно соотношению параллельного и последовательного присваивания, а именно: они имеют одинаковый синтаксис и правила выполнения, но различаются локализацией и условиями запуска к исполнению. [4]
При моделировании параллельный оператор интерпретируется таким образом, что он исполняется при любом изменении сигналов, являющихся его аргументами, точнее, при отработке реакции на соответствующее событие. Отметим, что моделирование на основе VHDL-описания должно выполняться на базе дискретной событийной модели. Кроме средств описания параллельных процессов определены конструкции, явно указывающие поведение объекта проектирования во времени - выражения задержки after, оператор приостановки wait и ряд других. [5]
Порядок записи параллельных операторов безразличен, допустимы обратные связи и петли. [6]
В теле модуля параллельные операторы и декларации размещаются в произвольном порядке, хотя любой объект декларируется раньше его использования в операторах. Правила декларирования будут определены позднее. [7]
Тогда после приостановки может быть инициировано исполнение других процессов и параллельных операторов, а реализация операторов, следующих за оператором wait, продолжится после наступления события, объявленного в этом операторе. [8]
В этом смысле операторы, включенные в блок, не отличаются от индивидуальных параллельных операторов. [9]
Схема генерации с ключевым словом if разрешает ( или блокирует) создание компонентов, представленных вложенными параллельными операторами. Схема с ключевым словом for определяет число компонентов, создаваемых в структуре модуля в зависимости от значения параметра настройки. [10]
Оператор блока block, подобно оператору process, является составным оператором, тело которого включает несколько операторов, но, в данном случае, параллельных. Операторы тела блока, как и другие параллельные операторы, обеспечивают возможность представления параллелизма в моделируемой системе. Эти операторы инициируются не по последовательному, а по событийному принципу, а результаты их исполнения становятся доступны другим операторам как включенным в блок, так и размещенным в других блоках или индивидуально, только после исполнения всех операторов, инициированных одним событием. [11]
Вариант ожидания по времени иллюстрируется процессом Generator, представленным в листинге 3.11. Данный процесс выполняется бесконечно, приостанавливаясь каждые 50 не модельного времени, причем перед приос-тановом уровень сигнала clock меняется на противоположный. В момент приостанова могут быть инициированы параллельные операторы программы, в том числе другие процессы. [12]
Оператор вызова процедуры является последовательным, если локализован в теле процесса или теле другой подпрограммы. В иных случаях оператор вызова подпрограммы интерпретируется как параллельный оператор. Одна и та же подпрограмма может вызываться как параллельным, так и последовательным оператором. Как и другие последовательные операторы, оператор последовательного вызова выполняется после исполнения всех операторов, предшествующих ему в теле процесса или теле подпрограммы. Параллельный оператор вызова исполняется после изменения любого из сигналов, перечисленных в списке соответствий этого оператора. Иными словами, параллельный вызов процедуры эквивалентен процессу, тело которого совпадает с телом процедуры с точностью до обозначений, а список инициализаторов содержит входные фактические параметры оператора вызова. [13]
О Вызов подпрограммы инициирует исполнение тела подпрограмм, являющегося набором последовательных операторов. Оператор вхождения вызывает к исполнению архитектурное тело, которое содержит параллельные операторы, и сам является параллельным оператором, исполняемым при каждом изменении его входных сигналов. [14]
О Вызов подпрограммы инициирует исполнение тела подпрограмм, являющегося набором последовательных операторов. Оператор вхождения вызывает к исполнению архитектурное тело, которое содержит параллельные операторы, и сам является параллельным оператором, исполняемым при каждом изменении его входных сигналов. [15]