Настройка базовых блоков Datapath

В этом примере показано, как настроить блок 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 в приложении SerDes Designer

Запустите приложение SerDes Designer. Поместите блок PassThrough после аналоговой модели приемника. Измените имя блока PassThrough с PT на CustomExample.

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

Добавьте параметр AMI для управления усилением

Дважды кликните блок 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, соответственно.

Подтвердите настройки и нажмите кнопку ОК.

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

Измените PassThrough на блок MATLAB function

Можно создать 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 для вашей модели - использовать встроенный блок. Для примера блок Gain может быть добавлен в пределах блока PassThrough. Вместо создания MATLAB функциональный блок, смотрите под маской блока «CustomExample» после создания параметра ExampleGain из шагов в разделе «Add AMI Parameter to Control Gain» выше:

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

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

Добавьте блок Gain из библиотеки Simulink > MathOperators и соедините блок Gain между входом и выходным портами:

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

Соедините параметры блоков Gain с добавленным параметром AMI

Константы представлены как параметры 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».

См. также

| |

Похожие темы