В этом примере показано, как настроить блок PassThrough в Simulink®, чтобы использовать функциональный блок MATLAB® или другую библиотеку блоков Simulink. Вы будете видеть, как реализацией усиления приемника или этапа затухания управляет параметр IBIS-AMI, и этот пример предоставляет руководство, чтобы изменить блоки PassThrough, чтобы реализовать пользовательские функции для системы SerDes.
По умолчанию блок PassThrough, когда имя подразумевает, блок, который передает входной импульс или форму волны к выходу без модификаций. Этот блок может использоваться в качестве инструмента планирования пола в Приложении SerDes Designer и затем настраиваться после экспорта в Simulink. Под маской PassThrough блок является блоком MATLAB System, ссылающимся на serdes.PassThrough Систему object™, который, когда названо Simulink направляет входные данные к выходу. Блок MATLAB System может быть обновлен, чтобы сослаться на другие Системные объекты SerDes или может быть заменен другими блоками Simulink как этот пример основы. Для примера настройки с Системными объектами смотрите Реализацию Пользовательский CTLE в SerDes Toolbox Блок PassThrough.
Запустите приложение 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 к 0.8
Min к 0
Max к 1
.
Текущее значение, Использование и Тип сохранены в их значениях по умолчанию 0
\in
, и Float
, соответственно.
Подтвердите настройки и нажмите ОК.
Вы будете видеть параметр, автоматически сгенерированный на холсте как показано ниже.
Можно создать MATLAB
функциональный блок и добавляет код, чтобы использовать параметр ExampleGain в качестве модификатора к В сигнале. Чтобы проиллюстрировать рабочий процесс, этот пример покажет, как реализовать усиление (использующий умножение), но любой MATLAB
функция может быть реализована для вашей системы.
function out = fcn(in,ExampleGain)
gainSignal = ExampleGain*in;
out=gainSignal;
Затем можно удалить блок PassThrough и обеспечить электричеством MATLAB
блокируйтесь с входными сигналами В, ExampleGain и выходной сигнал как показано:
Не забудьте возвращаться к подсистеме Rx, дважды кликать на Init и кликать по кнопке Refresh Init. Вы видите влияние значения параметра ExampleGain путем открытия менеджера AMI IBIS и изменения Текущего значения ExampleGain к 0.8
.
Запустите симуляцию и наблюдайте результаты.
Измените Текущее значение ExampleGain к 1.0
и повторно выполненный симуляция, чтобы подтвердить параметр ExampleGain изменяет сигнал Приемника.
Эти шаги показали вам, как реализовать параметр AMI под названием ExampleGain с помощью MATLAB
функциональный блок в вашей системе. Можно также использовать встроенные блоки, чтобы настроить блок PassThrough, как объяснено в разделе "Change PassThrough to Gain Block or Other Built-in Block".
Другой способ сконфигурировать пользовательский блок 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, чтобы открыть диалоговое окно Block Parameters. Установите значение Усиления к 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
.
Запустите симуляцию и наблюдайте амплитуду формы волны от Временного интервала (GetWave) и формы волны от Статистического (Init) результаты.
Откройте диалоговое окно SerDes IBIS-AMI Manager и нажмите на вкладку AMI-Rx. Выберите ExampleGain* узел и установите Текущее значение к 0.4
.
Запустите симуляцию снова и наблюдайте, как амплитуда изменяется и для формы волны от Временного интервала (GetWave) и для формы волны от Статистического (Init).
Эти шаги показали вам, как реализовать параметр AMI под названием ExampleGain с помощью встроенного блока, чтобы настроить блок PassThrough. Можно также реализовать параметр AMI с помощью MATLAB
функциональный блок в вашей системе, как объяснено в разделе "Change PassThrough to a MATLAB Function Block".
Configuration | PassThrough | SerDes Designer