В этом примере показано, как создать типовые модели передатчика и приемника PCIe Generation 5 (PCIe5) IBIS-AMI с использованием блоков библиотеки в SerDes Toolbox. Модели IBIS-AMI, созданные в этом примере, соответствуют базовой спецификации PCIe Gen5, опубликованной PCIE-SIG.
Первая часть этого примера устанавливает целевую архитектуру модели AMI передатчика и приемника с использованием блоков, необходимых для PCIe5 в приложении SerDes Designer. Затем модель экспортируется в Simulink ® для дальнейшей настройки.
В этом примере используется модель SerDes Designer pcie5_ibis-ami. Введите следующую команду в окне команд MATLAB ®, чтобы открыть модель:
>> serdesDesigner('pcie5_ibis-ami');

Для параметра «Время символа» установлено значение 31.25 ps, так как максимально допустимый PCIe5 datarate составляет 32 GT/s с частотой Найквиста 16GHz.
Целевой BER имеет значение 1e-12.
Для параметра Samples per Symbol установлено значение 32.
Для модуляции установлено значение NRZ (невозврат к нулю).
Для сигнализации установлено значение Differential.
Блок Tx FFE настраивается на один предварительный отвод, один основной отвод и один последующий отвод, включая три веса отвода. При экспорте модели в Simulink в приведенном ниже примере будут добавлены определенные стили отводов.
Модель Tx AnalogOut настроена так, что напряжение равно 1V, Время подъема равно 12 ps, R (выходное сопротивление) - 50 Ом (таблица 8-10, примечание 3), и С (емкость) равно 0.5 pF согласно PCIe5 спецификации.
Потеря канала устанавливается равной 34 дБ (37dB - максимальная потеря для базового канала плюс плата CEM).
Дифференциальный импеданс устанавливается равным 85 Ом (см. PCIe5 Base Spec, раздел 8,4,1,2, рис. 8-28 и 8-29).
Целевая частота устанавливается на частоту Найквиста для 32GT/s скорости передачи данных, которая равна 16 ГГц.
Модель Rx Analogin настроена таким образом, что R (входное сопротивление) равно 50 Ом (таблица 8-10, примечание 3), и С (емкость) равно 0.5 pF согласно PCIe5 спецификации.
Существует два блока Rx CTLE, разделяющих Gen5 повторные полюса PCIe, поскольку панель инструментов SerDes CTLE не допускает повторных или перекрывающихся полюсов.
Первый блок Rx CTLE имеет единственную передаточную функцию с двумя полюсами и одним нулем.
Вторая установка Rx CTLE для 11 конфигураций (от 0 до 10) из спецификации CTLE.
Объединенные CTLEs и связанные с ними матрицы GPZ соответствуют полям и нулям, указанным в базовой спецификации 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 Mode to adapt. Добавьте график BER из ADD Plots и просмотрите результаты.

Изменение режима CTLE2 Rx на fixed и Rx CTLE2 ConfigSelect to 3 и наблюдать за изменениями графика BER:

Перед продолжением измените режим CTLE2 Rx на Adapt. Сброс значений для CTLE2 TX FFE и RX позволит избежать необходимости их повторной установки после экспорта модели в Simulink. Эти значения станут значениями по умолчанию при создании окончательных моделей AMI.
На панели инструментов нажмите кнопку для дрожания Tx/Rx. Можно включить параметры дрожания, экспортируемые в Simulink. Можно также добавить параметры дрожания позже с помощью менеджера IBIS-AMI в Simulink. В разделе Дрожание передачи установите флажки для Tx_DCD, Tx_Rj, Tx_Dj. В разделе Rx Jitter установите флажки для Rx_DCD, Rx_Rj и Rx_Dj.
Параметры джиттера можно добавить в Tx из спецификации PCIe Gen5 Base, таблица 8-6, «Параметры передатчика, зависящие от скорости передачи данных». При добавлении параметров график BER покажет их влияние на сигнал. Примечание: эти параметры будут экспортироваться как тип «Float» с форматом «Value». После экспорта в Simulink их можно изменить на формат «Диапазон» с помощью IBIS-AMI Manager.
Задайте значение 6.25e-12
Измените единицы измерения с пользовательского интерфейса на секунды.
Задайте значение 0.45e-12
Измените единицы измерения с пользовательского интерфейса на секунды.
Задайте значение 2.5e-12
Измените единицы измерения с пользовательского интерфейса на секунды.
В приложении SerDes Designer можно задать множество других параметров дрожания. Примечание: после экспорта в Simulink можно отредактировать их тип, использование, формат и значение с помощью менеджера IBIS-AMI.

Нажмите кнопку Export, чтобы экспортировать вышеуказанную конфигурацию в Simulink для дальнейшей настройки и создания исполняемых файлов модели AMI.
Во второй части этого примера рассматривается система SerDes, экспортированная приложением SerDes Designer, и ее настройка в соответствии с требованиями PCIe5 в Simulink.
Система SerDes, импортированная в Simulink, состоит из блоков конфигурации, стимула, передачи, аналогового канала и приема. Все настройки из приложения SerDes Designer перенесены в модель Simulink. Сохраните модель и просмотрите каждую настройку блока.

Вы можете подтвердить перенос настроек из приложения SerDes Designer, дважды щелкнув блок Конфигурация и блок Аналоговый канал. Затем откройте диалоговое окно «Параметры блока» и проверьте их значения.
Дважды щелкните блок Стимул (Stimulus), чтобы открыть диалоговое окно Параметры блока (Block Parameters). Можно задать порядок PRBS (псевдослучайная двоичная последовательность) и количество симулируемых символов. Этот блок не переносится из приложения SerDes Designer.
Дважды щелкните блок Tx и блок Rx, чтобы просмотреть каждую из подсистем, унаследованных из приложения SerDes Designer.
Перед запуском моделирования откройте диспетчер IBIS-AMI. Можно установить биты для игнорирования для Tx в 3, поскольку FFE имеет 3 отвода. Установите биты для игнорирования для Rx в 1000, чтобы DFECDR мог сходиться во время моделирования временной области.

Можно изменить формат на «Диапазон» для параметров дрожания, щелкнув на вкладке AMI - Tx, выберите Tx_DCD и нажмите кнопку Edit.

Следующие диапазоны позволяют точно настроить значения дрожания в соответствии PCIe5 требованиями к маске дрожания. Например, см. таблицу 8-6 «Параметры измерительного преобразователя, зависящие от скорости передачи данных» в спецификации PCIe Gen5 Base.
Выберите Tx_DCD, затем нажмите кнопку Изменить... для открытия диалогового окна Add/Edit AMI Parameter.
Проверьте тип для Float.
Изменение формата на Range.
Установить текущее значение в 0.
Задайте для параметра Typ значение 0.
Установите минимальное значение в 0.
Установить максимальное значение в 6.25e-12
Нажмите кнопку ОК, чтобы сохранить изменения.

Выберите Tx_Rj, затем нажмите кнопку Изменить... для открытия диалогового окна Add/Edit AMI Parameter.
Выполните действия для Tx_DCD, описанные выше.
Установить максимальное значение в 0.45e-12
Нажмите кнопку ОК, чтобы сохранить изменения.
Выберите Tx_Dj, затем нажмите кнопку Изменить... для открытия диалогового окна Add/Edit AMI Parameter.
Выполните действия для Tx_DCD, описанные выше.
Установить максимальное значение в 2.5e-12
Нажмите кнопку ОК, чтобы сохранить изменения.
Откройте вкладку AMI-Rx в диалоговом окне SerDes IBIS/AMI Manager. После формата типичного файла AMI сначала перечисляются зарезервированные параметры, за которыми следуют параметры модели.
Выберите Rx_DCD, Rx_Dj и Rx_Rj и выполните описанные выше шаги из Tx_DCD. Следующие диапазоны позволяют точно настроить значения дрожания в соответствии PCIe5 требованиями к маске дрожания.
Выберите Rx_DCD, затем нажмите кнопку Изменить... для открытия диалогового окна Add/Edit AMI Parameter.
Измените тип на Float.
Изменение формата на Range.
Установить текущее значение в 0.
Задайте для параметра Typ значение 0.
Установите минимальное значение в 0.
Установить максимальное значение в 0.
Нажмите кнопку ОК, чтобы сохранить изменения.
Выберите Rx_Rj, затем нажмите кнопку Изменить... для открытия диалогового окна Add/Edit AMI Parameter.
Выполните действия для Rx_DCD.
Установить максимальное значение в 0.5e-12
Нажмите кнопку ОК, чтобы сохранить изменения.
Выберите Rx_Dj, затем нажмите кнопку Изменить... для открытия диалогового окна Add/Edit AMI Parameter.
Выполните действия для Rx_DCD.
Нажмите кнопку ОК, чтобы сохранить изменения.
Запустите модель для моделирования системы SerDes.
Генерируется множество графиков, включая диаграмму глаз в реальном времени (GetWave), которая обновляется по мере запуска модели.

Второй график содержит представления статистических результатов (Init) и результатов постоянной временной области (GetWave), аналогично тому, что доступно в приложении SerDes Designer.

В подсистеме Tx дважды щелкните блок FFE, чтобы открыть диалоговое окно «Параметры блока FFE».
Убедитесь, что текущее значение параметра Mode установлено в Fixed.
В подсистеме Rx дважды щелкните на блоке CTLE2, чтобы открыть диалоговое окно «Параметры блока».
Данные нулевого полюса усиления переносятся из приложения SerDes Designer. Эти данные в сочетании с данными нулевого полюса усиления CTLE1 применяют общую передаточную функцию поведенческого КТЛ, заданную базовой спецификацией PCIe5.
Для режима CTLE установлено значение Adapt, что означает алгоритм оптимизации, встроенный в объект системы CTLE, выбирает оптимальную конфигурацию во время выполнения.
В подсистеме Rx дважды щелкните блок DFECDR, чтобы открыть диалоговое окно Параметры блока DFECDR.
Разверните параметры 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 Manager значения аналоговой модели преобразуются в стандартные параметры IBIS, которые могут использоваться любым имитатором отраслевого стандарта. На вкладке «AMI-Rx» диалогового окна «SerDes IBIS/AMI Manager» сначала перечисляются зарезервированные параметры, за которыми следуют параметры модели, соответствующие формату типичного файла AMI.
Откройте вкладку AMI-Tx в диалоговом окне SerDes IBIS/AMI Manager. После формата типичного файла AMI сначала перечисляются зарезервированные параметры, за которыми следуют параметры модели.
Внутри параметров Model_Specific можно задать значения отводов TX FFE, создав новые параметры AMI и внедрив алгоритм в разделе Init customer specific code, чтобы выбрать PCIe5 Предустановленные значения P0 через P10.
При непосредственном указании предварительно определенных коэффициентов изменяется формат трех тапуаров и указывается точное значение, используемое для каждого набора. Будут разрешены только эти одиннадцать определенных наборов параметров, и для получения правильных значений для всех трех отводов должен быть установлен один и тот же набор параметров.

Измените функцию Initialize MATLAB в блоке Init в подсистеме Tx, чтобы использовать только что добавленный параметр ConfigSelect *. Параметр ConfigSelect * управляет существующими тремя отводами датчика. Для этого добавьте инструкцию switch, которая принимает значения ConfigSelect * и автоматически устанавливает значения для всех трех отводов Tx, игнорируя пользовательские значения для каждого отвода. Если значение ConfigSelect равно-1 используется, то определяемые пользователем значения отводов Tx передаются в блок канала данных FFE без изменений.
В подсистеме Tx дважды щелкните блок Init, чтобы открыть диалоговое окно Block Parameters, и нажмите кнопку Refresh Init, чтобы распространить новый параметр AMI на подсистему Initialize.
Введите Ctrl-U для поиска блока Init под маской, затем дважды щелкните по блоку инициализации, чтобы открыть функцию инициализации.

Дважды щелкните по функциональному блоку impulseEqualization MATLAB, чтобы открыть функцию в MATLAB. Это автоматически генерируемая функция, которая обеспечивает обработку импульсной характеристики системного блока SerDes (IBIS AMI-Init). %% 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. Это соответствует P7 конфигурации PCIe: Pre = -0.100, Main = 0.700 и Post = -0.200.
Чтобы изменить GetWave, добавьте новую функцию MATLAB, которая работает так же, как функция Initialize.
В подсистеме Tx введите Ctrl-U для просмотра под маской блока FFE.

Можно увидеть, что добавлен новый блок констант с именем FFEParameter.ConfigSelect. Он создается автоматически диспетчером IBIS-AMI при добавлении нового зарезервированного параметра. Далее можно выполнить следующие действия для повторной настройки выбора наборов параметров веса отводов для моделирования во временной области (GetWave):
Добавьте функциональный блок MATLAB в холст из библиотеки Simulink/User-Defined.
Переименование функционального блока MATLAB в 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 постоянные блоки соединились с исходными данными недавно определенного функционального блока PCIe4FFEconfig MATLAB. Сигнал TapWeatingOut от блока PCIe4FFEconfig подключается к порту TapWeights блока FFE.

Чтобы проверить правильность работы нового параметра управления FFE, откройте диалоговое окно SerDes IBIS-AMI Manager из блока Configuration. На вкладке AMI-Tx измените параметр ConfigSelect *, чтобы установить текущее значение вP7. Это соответствует P7 конфигурации PCIe: Pre = -0.100, Main = 0.700 и Post = -0.200. Проверьте формы выходных сигналов.


Откройте вкладку Экспорт (Export) в диалоговом окне Диспетчер SerDes IBIS/AMI.
Обновить имя модели Tx до pcie5_tx.
Обновите имя модели Rx до pcie5_rx.
Обратите внимание, что процент угла Tx и Rx равен 10. Это позволит масштабировать минимальные/максимальные угловые значения аналоговой модели на +/-10%.
Убедитесь, что для параметров модели Tx и Rx AMI выбрана двойная модель. Это создаст исполняемые файлы модели, которые поддерживают как статистический (Init), так и анализ во временной области (GetWave).
Установите биты модели Tx для игнорирования значения 3 поскольку в Tx FFE имеется три отвода.
Установите биты модели Rx для игнорирования значения 1000 для обеспечения достаточного времени для установки отводов Rx DFE во время моделирования временной области.
Задайте для параметра Модели экспорт как Tx и Rx, чтобы все файлы были выбраны для создания (IBIS-файл, AMI-файлы и DLL-файлы).
Задайте имя файла IBIS как pcie5ami.
Нажмите кнопку Экспорт (Export), чтобы создать модели в целевой папке.
В настоящее время модели PCIe Gen5 передатчика и приемника IBIS-AMI полностью укомплектованы и готовы к тестированию в любом модельном симуляторе AMI промышленного стандарта.
[1] PCI-SIG, https://pcisig.com.
CTLE | DFECDR | FFE | Конструктор SerDes