В этом примере показано, как создать типовые модели PCIe Generation 5 (PCIe5) передатчика и приемника IBIS-AMI с использованием библиотечных блоков в SerDes Toolbox. Модели IBIS-AMI, сгенерированные этим примером, соответствуют Gen5 Base-Specification PCIE-SIG.
Первая часть этого примера настраивает архитектуру модели AMI целевого передатчика и приемника, используя блоки, необходимые для PCIe5 в приложении SerDes Designer. Модель затем экспортируется в Simulink ® для дальнейшей индивидуальной настройки.
Этот пример использует модель SerDes Designer pcie5_ibis-ami
. Введите следующую команду в командном окне MATLAB ®, чтобы открыть модель:
>> serdesDesigner('pcie5_ibis-ami');
Для параметра Symbol Time задано значение 31.25
ps, поскольку максимально допустимый PCIe5 datarate составляет 32 GT/s с частотой Nyquist 16GHz.
Целевое BER установлено в 1e-12
.
Выборки на символ устанавливаются равным 32.
Модуляция установлена на NRZ
(невозврат в нуль).
Для сигнализации задано значение D ifferential
.
Блок Tx FFE настраивается на одно предварительное касание, одно основное касание и одно последующее касание путем включения трех весов касания. Конкретные стили касания будут добавлены позже в примере, когда модель экспортируется в Simulink.
Модель Tx AnalogOut настраивается так, чтобы Напряжение 1
V, Время нарастания 12
ps, R (выходное сопротивление) 50
Ом (таблица 8-10 примечание 3), и C (емкость) 0.5
pF согласно спецификации PCIe5.
Потеря канала устанавливается на 34 дБ (37dB максимальные потери для базового канала и платы CEM).
Дифференциальное сопротивление устанавливается на 85 Ом (см. PCIe5 основа, раздел 8.4.1.2, рис. 8-28 и 8-29).
Целевая частота устанавливается на частоту Nyquist для 32GT/s скорости передачи данных, которая составляет 16 ГГц.
Модель Rx Analogin настраивается так, чтобы R (входное сопротивление) было 50
Ом (таблица 8-10 примечание 3), и C (емкость) 0.5
pF согласно спецификации PCIe5.
Существует два блока Rx CTLE, чтобы разделить PCIe Gen5 повторными полюсами, поскольку CTLE тулбокса SerDes не допускает повторных или перекрывающихся полюсов.
Первый блок Rx CTLE имеет одну передаточную функцию с двумя полюсами и одним нулями.
Второй Rx CTLE настроен на 11 строения (от 0 до 10) из спецификации CTLE.
Объединенные CTLE и связанные с ними GPZ Matricies соответствуют полюсам и нулям, данным в PCIe5 Base Specification (Уравнение 8-7).
Блок Rx DFE/CDR настраивается для трех ответвлений DFE. Пределы для каждого отвода были индивидуально определены в соответствии со спецификацией PCIe5, чтобы +/-80
мВ для отвода 1, +/-20
мВ для отвода 2 и +/-20
мВ для отвода 3.
Используйте графики SerDes Designer, чтобы визуализировать результаты настройки PCIe5.
Можно подтвердить работоспособность TX FFE путем установки значения Tx FFE TapWeights из [0 1 0]
и режим CTLE2 Rx для adapt
. Добавьте график BER из ADD Plots и наблюдайте результаты.
Измените режим CTLE2 Rx на fixed
и Rx CTLE2 ConfigSelect на 3 и наблюдать изменения BER на графике:
Прежде чем продолжить, измените режим CTLE2 Rx на Adapt
. Сброс значений для TX FFE и RX CTLE2 здесь позволит избежать необходимости снова устанавливать их после экспорта модели в Simulink. Эти значения станут значениями по умолчанию, когда будут сгенерированы окончательные модели AMI.
На панели инструментов нажмите кнопку для Tx/Rx Jitter. Можно включить экспорт параметров дрожания в Simulink. Можно также добавить параметры дрожания позже с помощью менеджера IBIS-AMI в Simulink. В разделе Tx Jitter установите флажки для Tx_DCD, Tx_Rj, Tx_Dj. В разделе Rx Jitter установите флажки для Rx_DCD, Rx_Rj и Rx_Dj.
Можно добавить параметры Джиттера к Tx из спецификации PCIe Gen5 Base, таблица 8-6, «Параметры зависимого передатчика скорости данных». Когда вы добавляете параметры, график BER покажет их эффект на сигнал. Примечание: эти параметры будут экспортироваться как тип «Float» с форматом «Value». После экспорта в Simulink, вы можете изменить их на формат «Range» с помощью IBIS-AMI Manager.
Установите значение равным 6.25e-12
Измените модули с UI на секунды.
Установите значение равным 0.45e-12
Измените модули с UI на секунды.
Установите значение равным 2.5e-12
Измените модули с UI на секунды.
В приложении SerDes Designer можно задать еще много параметров дрожания Примечание.После экспорта в Simulink можно отредактировать их Тип, Использование, Формат и Значение с помощью менеджера IBIS-AMI.
Нажмите кнопку Экспорт, чтобы экспортировать вышеуказанное строение в Simulink для дальнейшей индивидуальной настройки и генерации исполняемых файлов модели AMI.
Вторая часть этого примера берет систему SerDes, экспортированную приложением SerDes Designer, и настраивает ее по мере необходимости для PCIe5 в Simulink.
Система SerDes, импортированная в Simulink, состоит из блоков Configuration, Stimulus, Tx, Analog Channel и Rx. Все настройки из приложения SerDes Designer перенесены в модель Simulink. Сохраните модель и проверьте каждую настройку блока.
Можно подтвердить перенос настроек из приложения SerDes Designer, дважды нажатие блок Configuration и блок Analog Channel. Затем откройте диалоговое окно Параметров блоков и проверьте их значения.
Дважды кликните блок Simulus, чтобы открыть диалоговое окно Параметры Блоков. Можно задать порядок 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
.
Установите значение Min равным 0
.
Установите значение Max на 6.25e-12
Нажмите кнопку ОК, чтобы сохранить изменения.
Выберите Tx_Rj, затем щелкните Изменить... для вызова диалогового окна Add/Edit AMI Parameter.
Следуйте инструкциям для Tx_DCD, выше.
Установите значение Max на 0.45e-12
Нажмите кнопку ОК, чтобы сохранить изменения.
Выберите Tx_Dj, затем щелкните Изменить... для вызова диалогового окна Add/Edit AMI Parameter.
Следуйте инструкциям для Tx_DCD, выше.
Установите значение Max на 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
.
Установите значение Min равным 0
.
Установите значение Max на 0
.
Нажмите кнопку ОК, чтобы сохранить изменения.
Выберите Rx_Rj, затем щелкните Изменить... для вызова диалогового окна Add/Edit AMI Parameter.
Следуйте инструкциям для Rx_DCD.
Установите значение Max на 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 применяют общую передаточную функцию поведенческого CTLE, заданную PCIe5 Основы Спецификацией.
Режим CTLE установлен в Adapt
, что означает, что алгоритм оптимизации, встроенный в системный объект CTLE, выбирает оптимальное строение во время исполнения.
Внутри подсистемы Rx дважды нажатие кнопки блок DFECDR, чтобы открыть диалоговое окно DFECDR Block Parameters.
Разверните параметры IBIS-AMI, чтобы показать список параметров, которые будут включены в модель IBIS-AMI.
Значения (значения ) касания DFE переносятся из приложения SerDes Designer.
Финальная часть этого примера берет настроенную модель Simulink, изменяет параметры AMI для PCIe5, затем генерирует совместимые PCIe5 IBIS-AMI исполняемые файлы модели, IBIS и AMI файлы.
Откройте диалоговое окно Параметров блоков для блока 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, чтобы выбрать PCIe5 Preset values P0 through P10.
Когда вы непосредственно задаете предустановленные коэффициенты, вы изменяете формат трех TapWeights и задаете точное значение, которое будет использоваться для каждого предустановленного набора. Будут разрешены только эти одиннадцать определенных наборов параметров, и все три отвода должны быть установлены на один и тот же набор, чтобы получить правильные значения.
Измените функцию Initialize MATLAB в блоке Init подсистемы Tx, чтобы использовать только что добавленный параметр ConfigSelect *. Параметр ConfigSelect * управляет существующими тремя отводами датчика. Для этого добавьте оператор switch, который принимает значения ConfigSelect * и автоматически устанавливает значения для всех трех отводов Tx, игнорируя пользовательские значения для каждого отвода. Если значение ConfigSelect -1
используется, затем пользовательские значения Tx tap передаются в блок FFE datapath без изменений.
Внутри подсистемы Tx дважды кликните блок Init, чтобы открыть диалоговое окно Параметры Блоков и нажмите кнопку Refresh Init, чтобы распространить новый параметр AMI на подсистему Initialize.
Введите Ctrl-U, чтобы найти под маской блок Init, затем дважды щелкните по блоку initialize, чтобы открыть Initialize Function.
Дважды кликните по Блоку MATLAB function impulseEqualization, чтобы открыть функцию в MATLAB. Это автоматически сгенерированная функция, которая обеспечивает импульсной характеристике обработку системного блока SerDes (IBIS AMI-Init). The %% BEGIN:
и % END:
линии обозначают раздел, в который можно ввести пользовательский код. Данные в этом разделе не будут переписаны при запуске Refresh 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, прокрутите область кода пользователя Customer, закомментируйте 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 *, чтобы задать значение Current P7
. Это соответствует строению PCIe P7: Pre = -0.100, Main = 0.700 и Post = -0.200.
Чтобы изменить GetWave, добавьте новую функцию MATLAB, которая действует так же, как функция Initialize.
Внутри подсистемы Tx введите Ctrl-U, чтобы заглянуть под маску блока FFE.
Можно увидеть, что добавлен новый блок константы FFEParameter.ConfigSelect. Это автоматически создается IBIS-AMI Manager при добавлении нового зарезервированного параметра. Далее можно следовать следующим шагам, чтобы повторно сконфигурировать выбор предустановок веса касания для симуляции временного интервала (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 соединялись с входами только что определенного PCIe4FFEconfig функционального блока MATLAB. Сигнал TapWeightsOut от блока PCIe4FFEconfig соединяется с портом TapWeights блока FFE.
Чтобы проверить, что новый параметр управления FFE работает правильно, откройте диалоговое окно SerDes IBIS-AMI Manager из блока Configuration. На вкладке AMI-Tx измените параметр ConfigSelect *, чтобы задать значение Current P7
. Это соответствует строению PCIe P7: Pre = -0.100, Main = 0.700 и Post = -0.200. Наблюдайте выходные формы волны.
Откройте вкладку Экспорт в диалоговом окне SerDes IBIS/AMI manager.
Обновите имя модели Tx на pcie5 _tx
.
Обновите имя модели Rx на pcie5 _rx
.
Обратите внимание, что процент угла Tx и Rx установлен на 10
. Это приведет к масштабированию значений угла аналоговой модели min/max на +/-10%.
Проверьте, что Dual модель выбрана для настроек модели Tx и Rx AMI. Это создаст исполняемые файлы модели, которые поддерживают как статистический (Init), так и временной интервал (GetWave) анализ.
Установите биты модели Tx, чтобы игнорировать значение следующим образом 3
поскольку в Tx FFE существует три отвода.
Установите биты модели Rx, чтобы игнорировать значение равным 1000
чтобы предоставить достаточное время для того, чтобы тапы Rx DFE обосновались во время симуляций временного интервала.
Установите Модели, чтобы экспортировать как Tx и Rx, чтобы все файлы были выбраны для генерации (IBIS-файл, AMI-файлы и DLL-файлы).
Установите имя файла IBIS на pcie5ami.
Нажмите кнопку Export, чтобы сгенерировать модели в директории Target.
Модели PCIe Gen5 передатчика и приемника IBIS-AMI теперь полны и готовы к тестированию на любом промышленном стандартном симуляторе модели AMI.
[1] PCI-SIG, https://pcisig.com.
CTLE | DFECDR | FFE | SerDes Designer