В этом примере показано, как создать типовую Генерацию PCIe 5 моделей IBIS-AMI передатчика и приемника (PCIe5) с помощью библиотечных блоков в SerDes Toolbox. Модели IBIS-AMI, сгенерированные этим примером, соответствуют PCIe Gen5 Base-Specification, опубликованному PCIE-SIG.
Первая часть этого примера настраивает целевой передатчик и приемник архитектура модели AMI с помощью блоков, требуемых для PCIe5 в приложении SerDes Designer. Модель затем экспортируется в Simulink® для дальнейшей индивидуальной настройки.
Этот пример использует модель SerDes Designer pcie5_ibis-ami
. Введите следующую команду в командном окне MATLAB®, чтобы открыть модель:
>> serdesDesigner('pcie5_ibis-ami');
Время символа установлено в 31.25
PS, поскольку максимальный допустимый PCIe5 datarate составляет 32 ГТ/с с частотой Найквиста 16 ГГц.
Целевой BER установлен в 1e-12
.
Выборки на Символ установлены в 32.
Модуляция установлена в NRZ
(невозврат к нулю).
Сигнализация установлена в Differential
.
Блок Tx FFE настраивается для одного предварительного касания, одного основного касания и одного посткасания включением трех весов касания. Определенные предварительные установки касания будут включены позже в примере, когда модель будет экспортироваться в Simulink.
Модель Tx AnalogOut настраивается так, чтобы Напряжением был 1
V, Временем нарастания является 12
PS, R (выходное сопротивление) является 50
Омами (Примечание 3 к таблице 8-10), и C (емкость) является 0.5
pF согласно спецификации PCIe5.
Потеря канала установлена в 34 дБ (37 дБ максимальная потеря для Основного канала плюс карта CEM).
Дифференциальный импеданс установлен в 85 Ом (см. Базовую Спецификацию PCIe5, разделите 8.4.1.2, рисунок 8-28 и 8-29).
Целевая Частота установлена в частоту Найквиста для 32GT/s скорости передачи данных, которая составляет 16 ГГц.
Модель Rx Analogin настраивается так, чтобы R (входное сопротивление) был 50
Омами (Примечание 3 к таблице 8-10), и C (емкость) является 0.5
pF согласно спецификации PCIe5.
Существует два блока Rx CTLE, чтобы отделиться, PCIe Gen5 повторил полюса, поскольку тулбокс SerDes CTLE не допускает повторные или перекрывающиеся полюса.
Первый блок Rx CTLE имеет одну передаточную функцию с двумя полюсами и одним нулем.
Второй Rx CTLE создан для 11 настроек (от 0 до 10) из спецификации CTLE.
Объединенный CTLEs и их связанный GPZ Matricies соответствуют полюсам и Нулям, данным в Базовой Спецификации PCIe5 (уравнение 8-7).
Блок Rx DFE/CDR настраивается для трех касаний DFE. Пределы для каждого касания были индивидуально заданы согласно спецификации PCIe5 к +/-80
мВ для касания 1, +/-20
мВ для касания 2, и +/-20
мВ для касания 3.
Используйте графики SerDes Designer визуализировать результаты настройки PCIe5.
Можно подтвердить TX, FFE функционален путем устанавливания значения Tx FFE TapWeights от [0 1 0]
и режим Rx CTLE2 к adapt
. Добавьте график BER из Графиков ADD и наблюдайте результаты.
Измените режим Rx CTLE2 в fixed
и Rx CTLE2 ConfigSelect к 3 и наблюдает изменения графика BER:
Перед продолжением, изменение Режим Rx CTLE2 в Adapt
. Сброс значений для TX, FFE и RX CTLE2 здесь избегут потребности установить их снова после модели, был экспортирован в Simulink. Эти значения станут значениями по умолчанию, когда итоговые модели AMI будут сгенерированы.
На панели инструментов нажмите на кнопку для Дрожания Tx/Rx. Можно включить, какие параметры дрожания экспортируются в Simulink. Можно также добавить параметры дрожания в более позднее время с помощью менеджера по IBIS-AMI в Simulink. В разделе Tx Jitter установите флажки для Tx_DCD, Tx_Rj, Tx_Dj. В разделе Rx Jitter установите флажки для Rx_DCD, Rx_Rj и Rx_Dj.
Можно добавить параметры Дрожания в Tx из Базовой спецификации PCIe Gen5, таблицы 8-6, "Зависимые Параметры Передатчика Скорости передачи данных". Когда вы добавляете параметры, график BER покажет их эффект на сигнале. Примечание: эти параметры экспортируют как тип "Плавание" с форматом "Значение". После экспорта в Simulink можно изменить их в формат "Область значений" с помощью менеджера по IBIS-AMI.
Установите значение к 6.25e-12
Измените модули от пользовательского интерфейса до секунд.
Установите значение к 0.45e-12
Измените модули от пользовательского интерфейса до секунд.
Установите значение к 2.5e-12
Измените модули от пользовательского интерфейса до секунд.
Можно установить намного больше Параметров Дрожания в Приложении SerDes Designer. Примечание: после экспорта в Simulink, можно отредактировать их Тип, Использование, Формат и Значение с помощью менеджера по IBIS-AMI.
Нажмите на кнопку Export, чтобы экспортировать вышеупомянутую настройку в Simulink для дальнейшей индивидуальной настройки и генерации исполняемых файлов модели AMI.
Вторая часть этого примера берет систему SerDes, экспортируемую приложением SerDes Designer, и настройте его как требуется для PCIe5 в Simulink.
Система SerDes, импортированная в Simulink, состоит из Настройки, Стимула, Tx, Analog Channel и блоков Rx. Все настройки из приложения SerDes Designer были переданы модели Simulink. Сохраните модель и рассмотрите каждую настройку блока.
Можно подтвердить, что настройки перенесены из приложения SerDes Designer путем двойного щелчка по Блоку Configuration и блоку Analog Channel. Затем откройте диалоговое окно Block Parameters и проверяйте их значения.
Дважды щелкните по блоку Stimulus, чтобы открыть диалоговое окно Block Parameters. Можно установить PRBS (псевдослучайная двоичная последовательность) порядок и количество символов симулировать. Этот блок не перенесен из приложения SerDes Designer.
Можно дважды щелкнуть по блоку Tx и блоку Rx, чтобы посмотреть в каждой из их подсистем, которые наследованы от приложения SerDes Designer.
Прежде, чем запустить симуляцию, откройте менеджера по IBIS-AMI. Можно установить биты игнорировать для Tx к 3, потому что FFE имеет 3 касания. Установите биты игнорировать для Rx к 1 000, таким образом, DFECDR может сходиться во время симуляции области времени.
Можно изменить Формат, чтобы "Расположиться" для Параметров Дрожания путем нажатия на вкладку AMI - Tx, выбрать Tx_DCD и нажать кнопку Edit.
Следующие области значений позволяют вам подстраивать значения дрожания, чтобы удовлетворить требования маски дрожания PCIe5. Например, см. таблицу 8-6, "Зависимые Параметры Передатчика Скорости передачи данных" в Базовой спецификации PCIe Gen5.
Выберите Tx_DCD, затем нажмите Edit... кнопка, чтобы поднять Добавлять/Редактировать диалоговое окно Параметра AMI.
Проверьте тип к Float
.
Измените формат в Range
.
Установите текущее значение к 0
.
Установите значение Typ к 0
.
Установите значение Min к 0
.
Установите значение Max к 6.25e-12
Нажмите ОК, чтобы сохранить изменения.
Выберите Tx_Rj, затем нажмите Edit... кнопка, чтобы поднять Добавлять/Редактировать диалоговое окно Параметра AMI.
Выполните шаги для Tx_DCD, выше.
Установите значение Max к 0.45e-12
Нажмите ОК, чтобы сохранить изменения.
Выберите Tx_Dj, затем нажмите Edit... кнопка, чтобы поднять Добавлять/Редактировать диалоговое окно Параметра AMI.
Выполните шаги для Tx_DCD, выше.
Установите значение Max к 2.5e-12
Нажмите ОК, чтобы сохранить изменения.
Откройте вкладку AMI-Rx в менеджере SerDes IBIS/AMI диалоговое окно. После формата типичного файла AMI зарезервированные параметры перечислены сначала сопровождаемые определенными параметрами модели.
Выберите Rx_DCD, Rx_Dj и Rx_Rj и выполните шаги выше от Tx_DCD. Следующие области значений позволяют вам подстраивать значения дрожания, чтобы удовлетворить требования маски дрожания PCIe5.
Выберите Rx_DCD, затем нажмите Edit... кнопка, чтобы поднять Добавлять/Редактировать диалоговое окно Параметра AMI.
Измените тип в Float
.
Измените формат в Range
.
Установите текущее значение к 0
.
Установите значение Typ к 0
.
Установите значение Min к 0
.
Установите значение Max к 0
.
Нажмите ОК, чтобы сохранить изменения.
Выберите Rx_Rj, затем нажмите Edit... кнопка, чтобы поднять Добавлять/Редактировать диалоговое окно Параметра AMI.
Выполните шаги для Rx_DCD.
Установите значение Max к 0.5e-12
Нажмите ОК, чтобы сохранить изменения.
Выберите Rx_Dj, затем нажмите Edit... кнопка, чтобы поднять Добавлять/Редактировать диалоговое окно Параметра AMI.
Выполните шаги для Rx_DCD.
Нажмите ОК, чтобы сохранить изменения.
Запустите модель, чтобы симулировать Систему SerDes.
Много графиков сгенерированы, включая живой временной интервал (GetWave) глазковая диаграмма, которая обновляется, когда модель запускается.
Второй график содержит представления статистического (Init) результаты и персистентный временной интервал (GetWave) результаты, похожие на то, что доступно в Приложении SerDes Designer.
В подсистеме Tx, дважды щелкают по блоку FFE, чтобы открыть диалоговое окно FFE Block Parameters.
Проверьте, что текущее значение Режима установлено к Fixed
.
В подсистеме Rx, дважды щелкают по блоку CTLE2, чтобы открыть диалоговое окно Block Parameters.
Нулевые данные о полюсе усиления перенесены из приложения SerDes Designer. Эти данные, объединенные с нулевыми данными о полюсе усиления CTLE1, применяют полную передаточную функцию поведенческого CTLE, данного Базовой Спецификацией PCIe5.
Режим CTLE установлен в Adapt
, что означает, что алгоритм оптимизации, встроенный в системный объект CTLE, выбирает оптимальную настройку во время выполнения.
В подсистеме Rx, дважды щелкают по блоку DFECDR, чтобы открыть диалоговое окно DFECDR Block Parameters.
Расширьте параметры IBIS-AMI, чтобы показать список параметров, которые будут включены в модель IBIS-AMI.
Значение (значения) касания DFE перенесено из приложения SerDes Designer.
Итоговая часть этого примера берет индивидуально настраиваемую модель Simulink, изменяет параметры AMI для PCIe5, затем генерирует IBIS-AMI совместимые исполняемые файлы модели PCIe5, IBIS и файлы AMI.
Откройте диалоговое окно Block Parameter для Блока Configuration и нажмите на кнопку Open SerDes IBIS/AMI Manager. Во вкладке IBIS в менеджере SerDes IBIS/AMI диалоговое окно значения аналоговой модели преобразованы в стандартные параметры IBIS, которые могут использоваться любым средством моделирования промышленного стандарта. Во вкладке AMI-Rx в менеджере SerDes IBIS/AMI диалоговое окно зарезервированные параметры перечислены сначала сопровождаемые определенными параметрами модели после формата типичного файла AMI.
Откройте вкладку AMI-Tx в менеджере SerDes IBIS/AMI диалоговое окно. После формата типичного файла AMI зарезервированные параметры перечислены сначала сопровождаемые определенными параметрами модели.
В параметрах Model_Specific можно установить TX значения касания FFE путем создания новых параметров AMI и реализации алгоритма в Init секция кода для конкретного заказчика, чтобы выбрать значения PCIe5 Preset P0 через P10.
Когда вы непосредственно задаете предварительно установленные коэффициенты, вы изменяете формат трех TapWeights и задаете точное значение, чтобы использовать для каждой предварительной установки. Только эти одиннадцать заданных предварительных установок будут позволены, и все три касания должны собираться в ту же предварительную установку получить правильные значения.
Измените Инициализировать функцию MATLAB в блоке Init в подсистеме Tx, чтобы использовать недавно добавленного Конфигселект*параметера. ConfigSelect* параметр управляет существующими тремя касаниями передатчика. Чтобы выполнить это, добавьте оператор switch, который берет в значениях ConfigSelect* и автоматически устанавливает значения для всех трех касаний Tx, игнорируя определяемые пользователем значения для каждого касания. Если значение ConfigSelect -1
используется, затем пользовательские значения касания Tx передаются до FFE datapath неизменный блок.
В подсистеме Tx дважды кликните блок Init, чтобы открыть диалоговое окно Block Parameters и нажать кнопку Refresh Init, чтобы распространить новый параметр AMI к Инициализировать подсистеме.
Введите Ctrl-U, чтобы посмотреть под маской для блока Init, затем дважды кликните на инициализировать блоке, чтобы открыть Инициализировать Функцию.
Дважды кликните на impulseEqualization блоке MATLAB function, чтобы открыть функцию в MATLAB. Это - автоматически сгенерированная функция, которая обеспечивает обработку импульсной характеристики системного блока SerDes (AMI-Init IBIS). %% BEGIN:
и % END:
линии обозначают раздел, где пользовательский пользовательский код может быть введен. Данные в этом разделе не будут перезаписаны, когда Обновление Init будет запущено:
%% BEGIN: Custom user code area (retained when 'Refresh Init' button is pressed)
FFEParameter.ConfigSelect;
% User added AMI parameter
% END: Custom user code area (retained when 'Refresh Init' button is pressed)
Чтобы добавить пользовательский код системы управления ConfigSelect, прокрутите Потребительскую пользовательскую область кода вниз, закомментируйте FFEParameter.ConfigSelect
линия, затем введите следующий код:
%% BEGIN: Custom user code area (retained when 'Refresh Init' button is pressed)
%FFEParameter.ConfigSelect; % User added AMI parameter
switch
FFEParameter.ConfigSelect
case
-1
% User defined tap weights
FFEInit.TapWeights = FFEParameter.TapWeights;
case
0
% PCIe Configuration: P0
FFEInit.TapWeights = [0.000 0.750 -0.250];
case
1
% PCIe Configuration: P1
FFEInit.TapWeights = [0.000 0.830 -0.167];
case
2
% PCIe Configuration: P2
FFEInit.TapWeights = [0.000 0.800 -0.200];
case
3
% PCIe Configuration: P3
FFEInit.TapWeights = [0.000 0.875 -0.125];
case
4
% PCIe Configuration: P4
FFEInit.TapWeights = [0.000 1.000 0.000];
case
5
% PCIe Configuration: P5
FFEInit.TapWeights = [-0.100 0.900 0.000];
case
6
% PCIe Configuration: P6
FFEInit.TapWeights = [-0.125 0.875 0.000];
case
7
% PCIe Configuration: P7
FFEInit.TapWeights = [-0.100 0.700 -0.200];
case
8
% PCIe Configuration: P8
FFEInit.TapWeights = [-0.125 0.750 -0.125];
case
9
% PCIe Configuration: P9
FFEInit.TapWeights = [-0.166 0.834 0.000];
otherwise
FFEInit.TapWeights = FFEParameter.TapWeights;
end
% END: Custom user code area (retained when 'Refresh Init' button is pressed)
Чтобы протестировать это, новый параметр управления FFE работает правильно, откройте диалоговое окно SerDes IBIS-AMI Manager от Блока Configuration. Во вкладке AMI-Tx отредактируйте ConfigSelect* параметр, чтобы установить Текущее значение к P7
. Это соответствует Настройке PCIe P7: Пред =-0.100, Основной = 0.700 и Сообщение =-0.200.
Чтобы изменить GetWave, добавьте новую функцию MATLAB, которая действует таким же образом в качестве Инициализировать функции.
В подсистеме Tx введите Ctrl-U, чтобы посмотреть под маской блока FFE.
Вы видите, что новый постоянный блок был добавлен названный FFEParameter.ConfigSelect. Это автоматически создано менеджером по IBIS-AMI, когда новый Зарезервированный Параметр добавляется. Затем можно выполнить эти шаги, чтобы реконфигурировать выбор предварительных установок веса касания для временного интервала (GetWave) симуляция:
Добавьте блок MATLAB function в холст от библиотеки Simulink / User-Defined.
Переименуйте блок MATLAB function в PCIe5FFEconfig
.
Дважды кликните блок MATLAB function и замените шаблон кода на следующее:
% PCIe5 tap configuration selector
% Selects pre-defined Tx FFE tap weights based on PCIe5 specified
% configurations.
%
% Inputs:
% TapWeightsIn: User defined floating point tap weight values.
% ConfigSelect: 0-9: PCIe4 defined configuration (P0-P9).
% -1: User defined configuration (from TapWeightsIn).
% Outputs:
% TapWeightsOut: Array of tap weights to be used.
%
function
TapWeightsOut = PCIe5FFEconfig(TapWeightsIn, ConfigSelect)
switch ConfigSelect
case
-1
% User defined tap weights
TapWeightsOut = TapWeightsIn;
case
0
% PCIe Configuration: P0
TapWeightsOut = [0.000 0.750 -0.250];
case
1
% PCIe Configuration: P1
TapWeightsOut = [0.000 0.833 -0.167];
case
2
% PCIe Configuration: P2
TapWeightsOut = [0.000 0.800 -0.200];
case
3
% PCIe Configuration: P3
TapWeightsOut = [0.000 0.875 -0.125];
case
4
% PCIe Configuration: P4
TapWeightsOut = [0.000 1.000 0.000];
case
5
% PCIe Configuration: P5
TapWeightsOut = [-0.100 0.900 0.000];
case
6
% PCIe Configuration: P6
TapWeightsOut = [-0.125 0.875 0.000];
case
7
% PCIe Configuration: P7
TapWeightsOut = [-0.100 0.700 -0.200];
case
8
% PCIe Configuration: P8
TapWeightsOut = [-0.125 0.750 -0.125];
case
9
% PCIe Configuration: P9
TapWeightsOut = [-0.166 0.834 0.000];
otherwise
TapWeightsOut = TapWeightsIn;
end
Повторно соедините подсистему FFE так, чтобы FFETapWeights и FFEConfigSelect постоянные блоки соединились с входными параметрами недавно заданного блока MATLAB function PCIe4FFEconfig. TapWeightsOut сигнализируют от подключений блока PCIe4FFEconfig до порта TapWeights блока FFE.
Чтобы протестировать это, новый параметр управления FFE работает правильно, откройте диалоговое окно SerDes IBIS-AMI Manager от Блока Configuration. Во вкладке AMI-Tx отредактируйте ConfigSelect* параметр, чтобы установить Текущее значение к P7
. Это соответствует Настройке PCIe P7: Пред =-0.100, Основной = 0.700 и Сообщение =-0.200. Наблюдайте выходные формы волны.
Откройте вкладку Export в менеджере SerDes IBIS/AMI диалоговое окно.
Обновите имя модели Tx к pcie5_tx
.
Обновите имя модели Rx к pcie5_rx
.
Обратите внимание на то, что угловой процент Tx и Rx установлен в 10
. Это будет масштабировать угловые значения аналоговой модели min / макс. угловые значения аналоговой модели +/-10%.
Проверьте, что модель Dual выбрана и для Tx и для Настроек Модели AMI Rx. Это создаст исполняемые файлы модели, которые поддерживают и статистический (Init) и временной интервал (GetWave) анализ.
Установите Биты модели Tx игнорировать значение к 3
с тех пор в Tx FFE существует три касания.
Установите Биты модели Rx игнорировать значение к 1000
позволить достаточное количество времени для Rx DFE касается, чтобы обосноваться во время симуляций области времени.
Установите Модели экспортировать и как Tx и как Rx так, чтобы все файлы были выбраны, чтобы быть сгенерированными (файл IBIS, файлы AMI и файлы DLL).
Установите имя файла IBIS быть pcie5ami.
Нажмите кнопку Export, чтобы сгенерировать модели в директории Target.
Модели IBIS-AMI передатчика и приемника PCIe Gen5 теперь завершены и готовы быть протестированными в любом промышленном стандарте средство моделирования модели AMI.
[1] PCI-SIG, https://pcisig.com.
FFE | CTLE | DFECDR | SerDes Designer