Прежде чем вы сможете написать модель Verilog-A объекта RF-схемы, вам нужно создать rfmodel.rational
объект для представления компонента.
Существует два способа создать объект модели RF:
Вы можете подгонять рациональную модель функции к данным компонента, используя rationalfit
функция.
Можно использовать rfmodel.rational
конструктор, чтобы задать представление полюсного остатка компонента непосредственно.
В этом разделе рассматривается использование рациональной модели функции. Для получения дополнительной информации об использовании конструктора смотрите rfmodel.rational
страница с описанием.
Когда вы используете rationalfit
функция для создания rfmodel.rational
объект, который представляет компонент RF, аргументы, которые вы задаете, влияют на то, как быстро полученная модель Verilog-A запускается в симуляторе схем.
Вы можете использовать rationalfit
функция только с двумя необходимыми аргументами. Синтаксис:
model_obj = rationalfit(freq,data)
где
model_obj
является указателем на объект модели рациональной функции.
freq
является вектором значений частоты, которые соответствуют значениям данных.
data
- вектор, содержащий подходящие данные.
Для более быстрой симуляции создайте объект модели с наименьшим количеством полюсов, необходимым для точного представления компонента. Для управления количеством полюсов используйте синтаксис:
model_obj = rationalfit(freq,data,tol,weight,delayfactor)
где
tol
- относительный погрешный допуск, в децибелах. Укажите наибольший допустимый допуск для вашего приложения. Использование более жестких значений допуска может заставить rationalfit
функция, чтобы добавить больше полюсов к модели, чтобы достичь лучшей подгонки.
weight
- вектор, который задает взвешивание подгонки на каждой частоте.
delayfactor
- значение, которое управляет величиной задержки, используемой для подгонки данных. Задержка вводит сдвиг фазы в частотный диапазон, который может потребовать большого количества полюсов для аппроксимации с помощью рациональной модели функции. Когда вы задаете коэффициент задержки, rationalfit
функция представляет задержку как экспоненциальный сдвиг фазы. Этот сдвиг фазы позволяет функции подгонять данные с помощью меньшего количества полюсов.
Эти аргументы подробно описаны в rationalfit
страница с описанием функции.
Примечание
Можно также задать количество полюсов непосредственно с помощью npoles
аргумент. Точность модели не гарантирована при подходе, поэтому не стоит указывать npoles
когда точность является критической. Для получения дополнительной информации о npoles
аргумент, см. rationalfit
страница с описанием.
Если вы планируете интегрировать модуль Verilog-A в большой проект для симуляции с помощью подробных моделей, таких как модели схемы уровня транзистора, время симуляции, затраченное модулем Verilog-A, может оказать тривиальное влияние на общее время симуляции. В этом случае нет оснований тратить время на оптимизацию модели рациональной функции компонента.
Для получения дополнительной информации о rationalfit
аргументы функции, см. rationalfit
страница с описанием.
Вы используете writeva
метод для создания модуля Verilog-A, который описывает объект модели RF. Этот метод записывает модуль в указанный файл. Используйте синтаксис:
status = writeva(model_obj,'obj1',{'inp','inn'},{'outp','outn'})
для записи модуля Verilog-A для объекта модели model_obj
в файл obj1.va
. Модуль имеет дифференциальные входные сети, inp
и inn
, и дифференциальные выходные сети, outp
и outn
. Метод возвращает status
, логическое значение true
если операция успешна и false
в противном случае.
write
страница с описанием подробно описывает аргументы метода.
Пример экспорта модуля Verilog-A появляется в примере RF- Toolbox™, Моделирование высокоскоростной объединительной платы (Рациональная функция в модуль Verilog-A).