ВУЗ:
Составители:
13
2.6. Операторы
В разделе операторов архитектурного тела могут присутствовать два типа
параллельных операторов: simultaneous_statement и concurrent_statement [3].
Операторы simultaneous_statement появились лишь в последней версии
языка и предназначены специально для описания аналоговой части модели.
Совокупность всех simultaneous_statement – это система алгебраических и
дифференциальных уравнений, возможно с управляющими операторами. Неиз-
вестными этой системы являются переменные класса quantity. Система должна
быть совместной: число уравнений, решаемых в каждый момент времени моде-
лирования, должно равняться числу неизвестных переменных класса quantity.
Кроме уравнений, явно записываемых в разделе операторов архитектурного те-
ла, существуют неявные уравнения, поддерживающие законы консервативно-
сти системы. Эти уравнения формируются автоматически при трансляции
VHDL-AMS описания для переменных классов terminal.
В разделе операторов описания architecture_body допускается использо-
вать следующие типы simultaneous_statement [3].
1. Операторы simple_simultaneous_statement – это простые уравнения, в
правой и левой части которых записываются выражения. Операндами выраже-
ний могут быть переменные классов quantity или signal, константы, деклариро-
ванные в архитектурном теле, или в области видимости архитектурного тела, а
также функции и атрибуты переменных. Все операнды выражений, входящих в
simple_simultaneous_statement, должны иметь базовый тип real или integer. Опе-
раторами в этих выражениях могут быть обычные арифметические операторы:
+, -, *, /, **. Для изменения порядка выполнения действий в выражениях можно
применять круглые скобки.
Пример записи simple_simultaneous_statement:
a’DOT == 2.0*(b + x**3.0);
2. Операторы simultaneous_if_statement и simultaneous_case_statement
применяются для модификации системы уравнений в зависимости от значений
управляющих переменных в условиях. В качестве управляющих переменных
могут использоваться как переменные класса quantity, так и signal. Это откры-
вает возможность влияния цифровой части модели на ее аналоговую часть и
наоборот.
Синтаксис simultaneous_if_statement:
IF <условие_1> USE
<раздел_операторов_1>;
ELSIF <условие_2> USE
<раздел_операторов_2>;
…
ELSE
<раздел_операторов_n>;
END USE;
Пример simultaneous_if_statement:
IF sig = ‘1’ USE
var == a + b;
ELSE
var == a + b**2.0;
END USE;
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »