В язык VHDL-AMS по сравнению с базовой версией VHDL введен ряд дополнений, позволяющих использовать VHDL-AMS для многоаспектного моделирования непрерывных процессов.
Концепция многоаспектного моделирования была сформулирована более двадцати лет тому назад. Она основана на аналогиях компонентных и топологических уравнений, составляющих математические модели объектов во многих предметных областях на макроуровне. При этом под макроуровнем моделирования понимается совокупность моделей с сосредоточенными параметрами (т.е. описываемых системами обыкновенных дифференциальных уравнений) и методов их решения. Зависимыми переменными в этих моделях являются фазовые переменные, которые могут быть двух типов — переменными типа потенциала или переменными типа потока. В VHDL-AMS первые из них называются переменными across quantity, вторые — through quantity. Компонентные уравнения выражают связи между across и through переменными в отдельных элементах моделируемых объектов, а топологические уравнения — между однотипными фазовыми переменными разных элементов. Так, в случае электрических систем примерами компонентных уравнений могут быть уравнения закона Ома, а топологических — уравнения законов Кирхгофа. Фазовые переменные, используемые в моделях разных предметных областей (Energy domains), перечислены в табл. 1.
Таблица 1    
Физическая системаacross quantitythrough quantity
Электрическая (electrical)Электрическое напряжение (voltage)Электрический ток (current)
Механическая поступательная (translational)Перемещение (displacement) или скоростьСила (force)
Механическая вращательная (rotational)Угол (angle) или угловая скоростьВращательный момент (torque)
Гидравлическая (fluidic)Давление (pressure)Объемный поток (flow rate)
Тепловая (thermal)Температура (temperature)Тепловой поток (heat flux)

Введение в язык VHDL-AMS средств аналогового, многоаспектного и смешанного моделирования потребовало реализации следующих возможностей. Во-первых, это появление средств описания дифференциальных и алгебраических уравнений. При этом подразумевается наличие в интерпретаторе языка VHDL-AMS средств для численного решения уравнений, хотя сами методы решения в стандарте не определяются. Во-вторых, компоненты общей модели могут быть аналоговыми или дискретными, взаимодействие компонентов происходит через порты, а порты могут быть как дискретного, так и аналогового типов. В-третьих, предусматривается синхронизация событий в дискретной части с временными характеристиками процессов в непрерывной части модели. В-четвертых, имеется возможность моделирования не только во временной, но и в частотной областях.
Наряду с такими объектами, как компоненты, сигналы, константы в язык введены непрерывные переменные quantity, имеющие тип real. Производная непрерывной переменной обозначаются как X'Dot, а интеграл от переменной от 0 до текущего момента времени — X'Integ.
Появляется новый тип операторов для записи уравнений (simultaneous statement), в которых фигурируют переменные quantity. Примером simultaneous statement может служить следующая запись:
x'dot == a*x + b*y;
Эти операторы могут появиться везде, где допускается запись операторов присваивания значений сигналам <=. Порядок записи этих операторов не имеет значения, т.е. они выполняются параллельно.
Указание природы приложения (energy domain) выполняется с помощью ссылки на запись общих для приложения свойств, которая должна быть сделана в специальном пакете (package). На каждое приложение составляется один пакет. В этом пакете, в частности, в конструкции nature вводятся идентификаторы для фазовых переменных типа потенциала и типа потока. Например, в пакете для электрических систем записывается
nature electrical is
voltage across
current through
electrical_ref reference;
voltage есть переменная типа потенциала, а currentпеременная типа потока. Последняя строка в этом фрагменте служит для указания физической природы системы. Для тепловой подсистемы идентификаторами для across, through и reference соответственно будут temperature, heatflow, termal_ref и т.п.
Каждому приложению при многоаспектном моделировании конкретного объекта соответствует своя эквивалентная схема, представленная в декларациях entity своими внешними портами. Например, описания внешних портов в некоторой электрогидравлической системе могут выглядеть следующим образом:
entity unit is
port (terminal x1,x2: electrical;
terminal g1,g2,g3: fluidic);
end unit;
Здесь x1, x2 — узлы в электрической подсистеме; g1, g2, g3 — в гидравлической подсистеме.
Входными и/или выходными переменными в моделях, описывающих потоки сигналов, могут быть переменные quantity. Тогда описание портов может быть следующим:
port (quantity input: in real; quantity output: out real);
Внутренние переменные quantity декларируются в архитектурных телах, например:
quantity v across i1, i2 through node_a to node_d;
Эта запись в электрической подсистеме означает, что переменная v есть разность потенциалов между узлами node_a и node_d эквивалентной схемы, а переменные i1 и i2 суть токи в ветвях, инцидентных этим узлам.
Начальные условия для переменных задаются в архитектурных телах с помощью оператора break.
Атрибутами некоторого узла T называют переменные T'Reference и T'Contribution. Переменная T'Reference есть across quantity относительно общего узла (ground). Переменная T'Contribution — сумма переменных through quantity в ветвях, инцидентных узлу T. При этом за положительное направление для T'Reference принято направление от узла T к общему узлу.
Поскольку численное решение является приближенным, то вводится понятие допусковой группы, каждая непрерывная величина и simultaneous statement принадлежат к определенной допусковой группе. Поэтому для переменных quantity наряду с записью их типа (real) обычно указывается допуск.