В этом примере показано, как настроить блок PassThrough в Simulink ® для использования функционального блока MATLAB ® или других библиотек блоков Simulink. Вы увидите, как реализация усиления приемника или стадии ослабления управляется параметром IBIS-AMI, и в этом примере приводится руководство по изменению блоков PassThrough для реализации пользовательских функций для системы SerDes.
По умолчанию блок PassThrough является, как подразумевается в имени, блоком, который передает входной импульс или форму волны в выход без изменений. Этот блок может использоваться как инструмент планирования этажа в приложении SerDes Designer, а затем настраиваться после экспорта в Simulink. Под маской блока PassThrough находится блок MATLAB System, ссылающийся на серверы. PassThrough System object™, который при вызове Simulink пересылает вход в выход. Блок MATLAB System может быть обновлен для ссылки на другие объекты SerDes System или может быть заменен на другие блоки Simulink в качестве контуров этого примера. Пример настройки системных объектов см. в разделе Реализация пользовательского CTLE в SerDes Toolbox PassThrough Block.
Запустите приложение 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
Тайп- 0.8
Min к 0
Max на 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 для вашей модели - использовать встроенный блок. Для примера блок Gain может быть добавлен в пределах блока PassThrough. Вместо создания MATLAB
функциональный блок, смотрите под маской блока «CustomExample» после создания параметра ExampleGain из шагов в разделе «Add AMI Parameter to Control Gain» выше:
Удалите параметр ExampleGain. Теперь полотно должно выглядеть как полотно по умолчанию serdes.PassThrough
Системный объект:
Затем удалите блок MATLAB System, который указывает на serdes.PassThrough
Системный объект:
Добавьте блок Gain из библиотеки Simulink > MathOperators и соедините блок Gain между входом и выходным портами:
Примечание: Хотя этот пример использует блок Gain для иллюстрированного рабочего процесса, можно использовать любой встроенный блок (а также MATLAB
функция).
Константы представлены как параметры Simulink. Дважды кликните блок Gain, чтобы открыть диалоговое окно Параметры Блоков. Установите значение усиления на CustomExampleParameter.ExampleGain
.
Чтобы включить применение усиления к импульсной характеристики во время статистического анализа, дважды нажатие кнопки блок Init внутри подсистемы Rx. Нажмите кнопку Refresh Init, чтобы добавить новый параметр AMI к коду Init. Нажмите кнопку Show Init, чтобы открыть окно редактора MATLAB и найти область пользовательского кода, окруженную %%BEGIN
и %END
комментарии. Ваш код, сопоставленный с настроенным блоком PassThrough, инкапсулируется в этом разделе.
В области Пользовательский код отредактируйте настроенный код, чтобы выполнить операцию Gain для локальной переменной, содержащей Импульсную характеристику. Для этого замените код:
CustomExampleParameter.ExampleGain;
с:
LocalImpulse = LocalImpulse*CustomExampleParameter.ExampleGain;
Область пользовательского кода должна появиться следующим образом:
Сохраните изменения.
Примечание. Если код Init не изменен, результаты статистического моделирования не отражают операцию усиления и показаны только в результатах симуляции временной области (GetWave).
Откройте диалоговое окно SerDes IBIS-AMI Manager и щелкните на вкладке AMI-Rx. Выберите узел ExampleGain * и установите текущее значение на 0.8
.
Запустите симуляцию и наблюдайте амплитуду волны из Time-Domain (GetWave) и формы волны из результатов Statistical (Init).
Откройте диалоговое окно SerDes IBIS-AMI Manager и щелкните на вкладке AMI-Rx. Выберите узел ExampleGain * и установите текущее значение на 0.4
.
Еще раз запустите симуляцию и наблюдайте, как изменяется амплитуда как для формы волны из Time-Domain (GetWave), так и для формы волны из Statistical (Init).
Эти шаги показали, как реализовать параметр AMI под названием ExampleGain с помощью встроенного блока для настройки блока PassThrough. Можно также реализовать параметр AMI с помощью MATLAB
функциональный блок в вашей системе как объяснено в разделе «Change PassThrough to a Блок MATLAB Function».
Configuration | PassThrough | SerDes Designer