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