В этом примере показано, как настроить блок PassThrough в Simulink ® для использования функционального блока MATLAB ® или других блоков библиотеки Simulink. Вы увидите, как реализация каскада усиления или ослабления приемника управляется параметром IBIS-AMI, и в этом примере приводится руководство по изменению блоков PassThrough для реализации пользовательских функций для системы SerDes.
По умолчанию блок PassThrough является, как следует из названия, блоком, который передает входной импульс или форму сигнала на выход без изменений. Этот блок можно использовать в качестве инструмента планирования этажа в приложении SerDes Designer, а затем настроить после экспорта в Simulink. Под маской блока PassThrough находится системный блок MATLAB, ссылающийся на serdes. PassThrough System object™, который при вызове Simulink пересылает входные данные на выход. Системный блок MATLAB может быть обновлен для ссылки на другие объекты системы SerDes или может быть заменен другими блоками Simulink, как показано в этом примере. Пример настройки с системными объектами см. в разделе Внедрение пользовательского CTLE в PassThrough Block панели инструментов SerDes.
Запустите приложение SerDes Designer. Поместите блок PassThrough после аналоговой модели приемника. Изменение имени блока PassThrough из PT кому CustomExample.

Экспортируйте систему SerDes в Simulink.

Дважды щелкните по блоку Rx для просмотра подсистемы Rx и открытия диалогового окна SerDes IBIS-AMI Manager.

На вкладке AMI-Rx выберите узел CustomExample. Нажмите кнопку Add Parameter (добавить параметр) и задайте переменные:
Имя параметра для ExampleGain
Описание для Gain setting for Receiver
Форматировать в Range
Typ to 0.8
Мин. до 0
Макс. до 1.
Текущее значение, использование и тип сохраняются на уровне значений по умолчанию 0, In, и Floatсоответственно.

Подтвердите настройки и нажмите кнопку ОК.
Вы увидите параметр, автоматически созданный на холсте, как показано ниже.

Можно создать MATLAB функциональный блок и добавление кода для использования параметра ExampleGain в качестве модификатора сигнала In. Чтобы проиллюстрировать рабочий процесс, в этом примере показано, как реализовать усиление (с использованием умножения), но любое MATLAB может быть реализована для вашей системы.
function out = fcn(in,ExampleGain)
gainSignal = ExampleGain*in;
out=gainSignal;
Затем можно удалить блок PassThrough и подключить MATLAB блок с входными сигналами In, ExampleGain и выходным сигналом Out, как показано:

Не забудьте вернуться к подсистеме Rx, дважды щелкните Init и нажмите кнопку Refresh Init. Вы можете увидеть влияние значения параметра ExampleGain, открыв IBIS AMI Manager и изменив текущее значение ExampleGain на 0.8.

Выполните моделирование и просмотрите результаты.

Изменение текущего значения ExampleGain на 1.0 и повторно запустите моделирование, чтобы подтвердить, что параметр ExampleGain модифицирует сигнал приемника.

Эти шаги показали, как реализовать параметр AMI под названием ExampleGain с помощью MATLAB функциональный блок в системе. Можно также использовать встроенные блоки для настройки блока PassThrough, как описано в разделе «Изменение блока PassThrough на блок Gain или другой встроенный блок».
Другим способом настройки пользовательского блока PassThrough для модели является использование встроенного блока. Например, блок усиления может быть добавлен в блок PassThrough. Вместо создания MATLAB функциональный блок, посмотрите под маской блока «CustomExample» после создания параметра ExampleGain из шагов в разделе «Add AMI Parameter to Control Gain» выше:

Удалите параметр ExampleGain. Теперь холст должен выглядеть как по умолчанию serdes.PassThrough Системный объект:

Затем удалите системный блок MATLAB, который указывает на serdes.PassThrough Системный объект:

Добавьте блок усиления из библиотеки Simulink > MathOperators и подключите блок усиления к входному и выходному портам:
Примечание.Хотя в этом примере используется блок усиления для иллюстрированного рабочего процесса, можно использовать любой встроенный блок (а также MATLAB функция).

Константы представлены в виде параметров Simulink. Дважды щелкните блок усиления, чтобы открыть диалоговое окно «Параметры блока». Установить значение коэффициента усиления в CustomExampleParameter.ExampleGain.

Чтобы включить усиление, применяемое к импульсной характеристике во время статистического анализа, дважды щелкните блок Init в подсистеме Rx. Нажмите кнопку «Обновить Init» для добавления нового параметра AMI к коду Init. Нажмите кнопку Show Init, чтобы открыть окно редактора MATLAB и найти область пользовательского кода, окруженную %%BEGIN и %END комментарии. Код, связанный с настроенным блоком PassThrough, инкапсулирован в этом разделе.

В области Пользовательский код пользователя отредактируйте пользовательский код, чтобы выполнить операцию усиления для локальной переменной, содержащей импульсный отклик. Для этого замените код:
CustomExampleParameter.ExampleGain;
с:
LocalImpulse = LocalImpulse*CustomExampleParameter.ExampleGain;
Область пользовательского кода должна отображаться следующим образом:

Сохраните изменения.
Примечание.Если Init-код не изменен, результаты статистического моделирования не отражают операцию усиления и отображаются только в результатах моделирования временной области (GetWave).
Откройте диалоговое окно SerDes IBIS-AMI Manager и перейдите на вкладку AMI-Rx. Выберите узел ExampleGain * и установите значение Current равным0.8.
Выполните моделирование и просмотрите амплитуду сигнала из временной области (GetWave) и сигнал из статистических (Init) результатов.


Откройте диалоговое окно SerDes IBIS-AMI Manager и перейдите на вкладку AMI-Rx. Выберите узел ExampleGain * и установите значение Current равным0.4.
Снова запустите моделирование и проверьте, как изменяется амплитуда как для формы сигнала из временной области (GetWave), так и для формы сигнала из статистической области (Init).


Эти шаги показали, как реализовать параметр AMI под названием ExampleGain, используя встроенный блок для настройки блока PassThrough. Можно также реализовать параметр AMI с помощью MATLAB функциональный блок в системе, как описано в разделе «Изменение сквозного прохода на функциональный блок MATLAB».
Конфигурация | PassThrough | Конструктор SerDes