Verilog-AMS
Стиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. |
Verilog-AMS (от Verilog Analog Mixed-Signal Simulation) — язык описания и моделирования аппаратуры, был создан компанией Accellera на основе Verilog-A и Verilog-D с дополнительными возможностями, целью которого является работа с аналоговыми, аналогово-цифровыми системами и интегральными микросхемами, использование модулей, на высоких уровнях поведенческого и структурного описания систем и её компонентов.
Описание и структура Verilog-AMS
[править | править код]Verilog-AMS — язык описания аппаратуры (hardware description language (HDL); Verilog (IEEE 1364—1995 Verilog HDL)). Характеристики Verilog-AMS модулей могут быть описаны математически и внутренними параметрами этого модуля. Структура компонента также может быть описана в термах связанных с ним подкомпонент. Данное описание может быть использовано в разных дисциплинах. Компоненты и архитектура Verilog-AMS HDL состоят из полной IEEE 1364—1995 Verilog HDL спецификации (Verilog-D) для описания аналоговых систем (Verilog-A) плюс дополнения к ним Verilog-AMS HDL.
Применение
[править | править код]Verilog-AMS HDL применяется для описания контактов, портов и цепей. При работе с аналоговыми устройствами используются законы сохранения обобщённой формы, такие как Кирхгофа и потенциала (KPL и KFL). Они определены в терминах количеств (например, напряжения и тока), связанных с поведением аналоговых схем. Verilog-AMS HDL может также использоваться, чтобы описать цифровые системы (в IEEE 1364-1995 Verilog HDL) и смешанные (аналогово-цифровые) системы, используя дискретные и непрерывные описания как определено в LRM.
Verilog-AMS HDL расширяет особенности цифрового языка моделирования (IEEE 1364—1995 Verilog HDL), обеспечивая единственный объединённый язык совместимый с аналоговой и цифровой семантикой.
Особенности языка
[править | править код]- сигналы аналогового и цифрового типов могут быть объявлены в одном головном модуле, и аналоговые блоки могут появиться в этом же модуле
- аналоговые и цифровые значения сигнала можно прочитать (операцией чтения) в любом контексте (аналог или цифра) в том же самом модуле
- цифровые значения сигнала могут быть установлены (операция записи) в любом контексте вне аналогового процедурного блока
- аналоговые потенциалы и потоки могут получить данные (операцией записи) только от аналогового процедурного блока
- характеристики цифровых сигналов расширены
- новая конструкция, добавлена, для облегчения автовставки определяемых пользователем модулей подключения между аналоговыми и цифровыми доменами
- когда иерархические подключения имеют смешанный тип (то есть, аналоговый сигнал, связан с цифровым портом или цифровой сигнал, связанный с аналоговым портом), определяемые пользователем модули подключаются автоматически, чтобы преобразовать сигнал, с использованием аналогово-цифровой семантики.
Система Verilog-AMS
[править | править код]Решение аналого-цифрового моделирования
[править | править код]Система является совокупностью связанных компонентов, которые взаимодействуют, самими компонентами также могут быть системы, когда иерархическая система определена. Если компонент не имеет никаких подкомпонентов, то он является примитивом. Каждый примитив связан с нулем или большим количеством сетей. Каждая цепь связана с сигналом, который может перемещаться по множественным уровням иерархии. Поведение каждого компонента определено значениями в сети. Если все цепи, которые связаны с сигналом, находятся в дискретном домене, сигнал — цифровой. Если находятся в непрерывном домене, сигнал — аналоговый. Сигнал, который является совокупностью от сетей обоих доменов, называют смешанным сигналом. Точно так же и порт, аналоговый порт и цифровой порт, и порт, подключенный к аналоговым, и цифровым — смешанный порт. Компоненты соединяются с узлами через порты и цепи, чтобы формировать иерархию. Если сигнал — аналоговый или смешанный, это связано с узлом, в то время как цифровой сигнал не связан с узлом. Независимо от количества аналоговых сетей в аналоговом или смешанном сигнале, аналоговый сигнал представлен только единственным узлом. Это гарантирует, что смешанный или аналоговый сигнал имеет только одно значение-потенциал относительно земли. Чтобы моделировать системы, необходимо иметь законченное описание системы и всех её компонентов. Описания систем обычно дается структурно, то есть содержит образцы компонентов и как они связаны, используя поведенческое или структурное описание. Поведенческое описание — математическое описание, на уровне сигналов в портах компонентов.
Основные характеристики
[править | править код]Важная характеристика систем — есть два значения, связанные с каждым узлом, потенциал (значение напряжения в электрических системах) и ток (поток в электрических системах). Потенциал узла связан со всеми непрерывными портами и сетями, связанными с узлом, и цепи видят тот же самый потенциал. Поток разделен, как поток от всех непрерывных портов и сетей в узле, и при суммировании дает ноль (0). Таким образом, узел действует как малая точка взаимосвязи, в которой потенциал один и тот же на всем узле, и на котором ток не сможет накопиться. Таким образом, узел сочетает в себе Закон Кирхгофа и Законы Тока (KPL и KFL). Когда элемент соединяется с узлом через порт или сеть, он может воздействовать, на потенциал в узле, или на ток в узле через порт или сеть. С консервативными системами также можно определить поведение ветви. Ветвь — путь потока между двумя узлами через элемент. Каждый ветвь имеет связанный потенциал (разница потенциалов между этими двумя узлами) и поток. Поведенческое описание элемента — это совокупность связанных ветвей.
Примеры
[править | править код]Повторитель напряжения
[править | править код]В результате подключений порта аналоговых сетей, один узел может быть связан со множеством сетей с различными характеристиками. Модели потока сигнала могут быть описаны, как потенциалы выводов модуля, функции потенциалов при вводах, не зависят от потока. Как пример — изменяющийся повторитель напряжения:
module shiftPlus5(in, out);
input in;
output out;
voltage in, out; //напряжение-ток сигнала,
//но только потенциального характера
analog begin
V(out) <+ 5.0 + V(in);
end
endmodule
Если бы множество таких модулей было расположено каскадом последовательно, то было бы необходимо сохранить заряд (то есть, суммировать токи) в любом пройденном узле. Если, с другой стороны, вывод этого устройства были соединены с узлом, то вывод устройства, будет управляем источником напряжения. В этом случае ток через источник способствовал бы тому, чтобы сохранить заряд в узле.
Дифференциальный усилитель напряжения
[править | править код]Подход состоит в том, чтобы записать составляющие характеристики описания, используя консервативную семантику, кроме порта, требуются значения для всех составляющих, которые фактически используются в описании. Таким образом, порты сигнала требуют только потенциал, который определен.
Например, рассмотрим дифференциальный усилитель напряжения, и резистор. Усилители описаны, используя порты напряжения или тока сигнала, а резистор использует смешанные порты.
В этом случае, объявлено только напряжение на портах, потому что только напряжение используется в теле модели.
module voltage_amplifier (out, in) ;
input in ;
output out ;
voltage out , // Значение напряжения определенно функцией V()
in;
parameter real GAIN_V = 10.0 ;
analog
V(out) <+ GAIN_V * V(in) ;
endmodule
Здесь только ток используется в теле модели
module current_amplifier (out, in) ;
input in ;
output out ;
current out , // Значение тока определенно функцией I()
in ;
parameter real GAIN_I = 10.0 ;
analog
I(out) <+ GAIN_I * I(in) ;
endmodule
Резистор
[править | править код]Описание резистора связывает напряжение и ток на портах.
module resistor (a, b) ;
inout a, b ;
electrical a, b ; //функции V() и I()
parameter real R = 1.0 ;
analog
V(a,b) <+ R * I(a,b) ;
endmodule
См. также
[править | править код]Ссылки
[править | править код]- https://www.eda-stds.org/verilog-ams/
- https://www.designers-guide.org/VerilogAMS/
- https://web.archive.org/web/20190611093910/https://www.verilog-ams.com/
- https://ovams.sourceforge.net/—OpenVAMS (недоступная ссылка), a Open-Source VerilogAMS-1.3 Parser with internal VPI-like representation