Последовательные переменные3.2.6. Последовательные операторы..............................................................................343
Для того чтобы представить различия сигналов и переменных, следует сделать несколько предварительных замечаний. В языке VHDL введены два типа операторов — последовательные и параллельные. Последовательные операторы выполняются последовательно друг за другом в порядке записи. Такие операторы во многом подобны операторам традиционных языков программирования и описывают набор действий, которые последовательно выполняются над исходными данными с целью получения результата. К этому классу операторов относят оператор присваивания переменной, последовательный оператор присваивания сигналу, условные операторы, оператор выбора и ряд других.
Последовательные операторы могут записываться только в теле оператора process. При моделировании фрагменты алгоритма, заключенные в оператор process, будут исполняться друг за другом после возникновения в системе "инициализирующего события" — изменении одного из сигналов, перечисленных в списке инициализаторов, или в заранее определенный момент времени. Параллельные операторы в теле процесса не определены. Переменные могут быть определены только в теле процесса, а сигналы во всем архитектурном теле.
Некоторые параллельные и последовательные операторы совпадают по форме записи. В этом случае различие устанавливается по контексту: если оператор локализован в теле процесса, он трактуется как последовательный, а если в другом месте программы — как параллельный.
3.2.6. Последовательные операторы
Последовательные операторы (Sequential Statement) по характеру исполнения подобны операторам традиционных языков программирования. Операторы этого типа обязательно "вложены" в оператор process или подпрограмму и выполняются последовательно друг за другом в порядке записи. Результаты исполнения последовательных операторов недоступны прочим программным модулям по крайней мере до того, как будет выполнен оператор ожидания wait, или не будут выполнены до конца все процессы, инициированные общим событием. Это можно трактовать так, что с точки зре-
В качестве операторов в приведенной конструкции могут выступать любые последовательные операторы, в том числе и операторы условия или выбора. В этом случае говорят об иерархическом вложении операторов. Формальных ограничений на глубину вложений не вводится, хотя надо иметь в виду, что некоторые компиляторы могут оказаться неспособны выполнить прямую реализацию в аппаратуре синтаксических конструкций с большим числом уровней вложения. Для пояснения порядка исполнения оператора рассмотрим менее формальную, но достаточно обобщенную форму его записи:
Процесс, содержащий оператор wait, не может иметь списка инициализаторов. Это связано с тем, что трудно описать систему, в которой может произойти повторная инициализация действий, в то время как реакция на предыдущее событие еще не реализована, например, произошло изменение одного из инициирующих сигналов, когда время ожидания еще не вышло. Еще раз напомним, что оператор wait, как и другие последовательные операторы, может размещаться только в теле процесса или теле подпрограммы.
Последовательность операторов (здесь могут быть только последовательные операторы), заключенная между словами loop и end loop, называется телом оператора повторения или телом цикла. Операторы в теле цикла выполняются друг другом в порядке записи, причем такое выполнение повторяется многократно. Число повторений определяется итерационной схемой.
В разделе деклараций подпрофаммы могут определяться локальные, т. е. определенные только в теле подпрофаммы, объекты: вложенные подпрофаммы, типы и подтипы данных, переменные, константы, атрибуты. Раздел операторов содержит только последовательные операторы.
Оператор вызова процедуры является последовательным, если локализован в теле процесса или теле другой подпрограммы. В иных случаях оператор вызова подпрограммы интерпретируется как параллельный оператор. Одна и та же подпрограмма может вызываться как параллельным, так и последовательным оператором. Как и другие последовательные операторы, оператор последовательного вызова выполняется после исполнения всех операторов, предшествующих ему в теле процесса или теле подпрограммы. Параллельный оператор вызова исполняется после изменения любого из сигналов, перечисленных в списке соответствий этого оператора. Иными словами, параллельный вызов процедуры эквивалентен процессу, тело которого совпадает с телом процедуры с точностью до обозначений, а список инициализаторов содержит входные фактические параметры оператора вызова.
2-4. Параллельные и последовательные переменные. Полюсные уравнения......... 67
2-4. ПАРАЛЛЕЛЬНЫЕ И ПОСЛЕДОВАТЕЛЬНЫЕ ПЕРЕМЕННЫЕ. ПОЛЮСНЫЕ УРАВНЕНИЯ
Как и при выводе полюсного представления компонент, мы не будем накладывать никаких ограничений на физическую природу системы и частей, ее образующих. Условимся лишь, что полюсное представление компонент известно и что они описываются через параллельные и последовательные переменные, которые могут быть измерены и произведения которых физически совместимы (для фундаментальных переменных произведение всегда дает мощность).
Из 3-1,г можно видеть, что приборы у\ и уг покажут одинаковые по величине, но противоположные по знаку величины. Это очевидно, если в качестве приборов #i и г/2 используются амперметры; тогда при одном и том же токе ( 3-1,6) их показания будут одинаковыми по величине, но с разными знаками. Сумма показаний приборов г/з, У5, Уб и г/г будет равна нулю, что также очевидно, если эти приборы — амперметры, и может быть проверено для любых приборов, измеряющих последовательные переменные. Очевидно, что эти закономерности являются отражением первого закона Кирхгофа,и дают основу для обобщения. Можно сформулировать закон, являющийся обобщением первого закона Кирхгофа.
Последние уравнения, относящиеся к идеальным источникам, мы выделили в связи с тем, что они принципиально отличаются от обычных полюсных уравнений, связывающих параллельные и последовательные переменные. Так, для идеального' источника #зад(0 последовательная переменная определится поведением присоединенной к источнику системы и может быть найдена лишь в результате решения задачи.
Заданные последовательные переменные должны входить в дополнение дерева (хорды), а заданные параллельные переменные должны входить в дерево (ветви).
Аналогично из уравнений отсечений (3-5) можно выразить в явном виде последовательные переменные ветвей:
найдем связь между параллельными переменными ветвей и последовательными переменными хорд, включая заданные. При выводе уравнений (3-11) мы выбрали дерево так, чтобы параллельные переменные Хг входили в дерево графа, а последовательные переменные Yz — в дополнение.
если для вывода уравнений применяется метод хорд, то искомые последовательные переменные должны входить в дополнение дерева.
пу — количество элементов, для которых последовательные переменные заданы; CST — количество хорд дополнения.
Третьим шагом является выбор дерева графа в соответствии с правилами, сформулированными в предыдущем параграфе. В нашем случае заданная параллельная переменная u\(t) входит в дерево, а заданная последовательная переменная i\\(t) и искомые последовательные переменные /2, /е и /7 — в дополнение. Дерево графа системы показано на 3-5,в.
Похожие определения: Последовательно включаются Последовательно включенную Последующей термической Последующих преобразований Получения выходного Послужило основанием Поставить переключатель
|