exponenta event banner

Настройка управляющих сигналов пути данных панели инструментов SerDes

В этом примере показано, как настроить управляющие сигналы в системном канале данных SerDes путем добавления новых пользовательских параметров AMI и использования функциональных блоков MATLAB ®. Это позволяет настраивать существующие управляющие параметры без изменения встроенных блоков в библиотеке SerDes Toolbox™.

В этом примере показано, как добавить новый параметр AMI для управления работой трех отводов передатчика, используемых блоком FFE. Пользовательский параметр AMI одновременно устанавливает для всех трех отводов одно из десяти значений, определенных спецификацией PCIe4, или позволяет ввести три пользовательских значения отводов с плавающей запятой. Чтобы знать больше о том, как определить модель передатчика PCIe4, см. Модель PCIe4 Transmitter/Receiver IBIS-AMI.

Модель переноса PCIe4

Модель датчика в этом примере соответствует спецификации PCIe4. Приёмник представляет собой простую проходную модель. Датчик, совместимый с PCIe4, использует 3-расширенный эквалайзер прямой подачи (FFE) с одним предварительным и одним последующим отводом и десятью предустановками.

Открытие модели adding_tx_ffe_params. Модель SerDes системы Simulink ® состоит из блоков конфигурации, стимула, передачи, аналогового канала и приема.

open_system('adding_tx_ffe_params.slx')

  • Подсистема Tx содержит блок FFE для моделирования временной области модели AMI и блок Init для моделирования статистической области.

  • Блок аналогового канала имеет PCIe4 значения параметров для параметров целевой частоты, потерь, импеданса и аналоговой модели Tx/Rx.

  • Подсистема Rx имеет блок сквозной передачи и блок Init.

Добавить новый параметр AMI

Добавьте новый параметр AMI к передатчику, который доступен для блоков и функций пути данных Init и GetWave. Параметр также включен в файл Tx IBIS-AMI.

Дважды щелкните блок «Конфигурация», чтобы открыть диалоговое окно «Параметры блока». Нажмите кнопку Open Serdes IBIS-AMI Manager. Перейдите на вкладку AMI-Tx диалогового окна SerDeS IBIS-AMI Manager.

  • Выберите параметр FFE, затем щелкните Добавить параметр... для добавления нового подпараметра FFE.

  • Задайте для имени параметра значение ConfigSelect.

  • Сохранить текущее значение как 0.

  • В разделе «Описание» добавить Pre/Main/Post tap configuration selector.

  • Сохранить использование как In.

  • Задайте для параметра «Тип» значение Integer.

  • Задайте для параметра «Формат» значение List.

  • В разделе Сведения о формате списка установите значение По умолчанию 0.

  • Задать значения списка для [-1 0 1 2 3 4 5 6 7 8 9]

  • Установить List_Tip значения как ["User Defined" "P0" "P1" "P2" "P3" "P4" "P5" "P6" "P7" "P8" "P9"]

На вкладку AMI-Tx добавляется новый параметр ConfigSelect *.

Изменить Init

Измените функцию 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.

Выполните моделирование и просмотрите результаты статистического анализа Init. Примечание.Форма сигнала временной области не будет правильной до тех пор, пока вы не проведете блок константы для нового параметра ConfigSelect в холсте для FFE. Вы увидите, как это сделать в следующем разделе.

Затем задайте для текущего значения параметра ConfigSelect * значение User Defined. Это соответствует пользовательским весам отводов: Pre = 0,000, Main = 1,000 и Post = 0,000.

Выполните моделирование и просмотрите результаты статистического анализа Init.

Попробуйте использовать различные значения ConfigSelect * для проверки правильности работы. Статистический глаз открывается и закрывается на основе величины выравнивания, применяемой FFE. Насколько изменяется глаз, и значения отводов, которые создают наиболее открытый глаз, изменяются в зависимости от потерь, определенных в блоке аналогового канала.

Изменить GetWave

Чтобы изменить GetWave, добавьте новую функцию MATLAB, которая работает так же, как функция Initialize.

В подсистеме Tx введите Ctrl-U для просмотра под маской блока FFE.

  • Можно видеть, что блок константы был автоматически добавлен менеджером IBIS-AMI к холсту со значением константы, равным FFEParameter.ConfigSelect.

  • Добавьте функциональный блок MATLAB в холст из библиотеки Simulink/User-Defined.

  • Переименование функционального блока MATLAB в PCIe4FFEconfig.

  • Дважды щелкните по блоку MATLAB Function и замените код шаблона следующим:

% PCIe4 tap configuration selector
%   Selects pre-defined Tx FFE tap weights based on PCIe4 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 = PCIe4FFEconfig(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. Проверьте форму выходного сигнала.

Затем задайте для текущего значения параметра ConfigSelect * значение User Defined. Это соответствует пользовательским весам отводов: Pre = 0,000, Main = 1,000 и Post = 0,000. Наблюдайте за изменением формы выходного сигнала.

Попробуйте использовать различные значения ConfigSelect * для проверки правильности работы. Глаз временной области открывается и закрывается на основе величины выравнивания, применяемой FFE. Насколько изменяется глаз, и значения отводов, которые создают наиболее открытый глаз, изменяются в зависимости от потерь, определенных в блоке аналогового канала.

Экспорт модели Tx IBIS-AMI

Убедитесь, что Init и GetWave ведут себя так, как ожидалось, а затем создайте окончательные исполняемые файлы модели, файлы IBIS и AMI, совместимые с IBIS-AMI PCIe4.

Дважды щелкните блок «Конфигурация», чтобы открыть диалоговое окно «Параметры блока». Нажмите кнопку Open Serdes IBIS-AMI Manager, затем выберите вкладку Export:

  • Обновить имя модели Tx до pcie4_tx.

  • Процент угла Tx и Rx устанавливается равным 10. Это позволит масштабировать минимальные/максимальные угловые значения аналоговой модели на +/-10%.

  • Убедитесь, что в качестве типа модели для Tx выбрана двойная модель. Это создаст исполняемые файлы модели, которые поддерживают как статистический (Init), так и анализ во временной области (GetWave).

  • Установите биты модели Tx для игнорирования параметра в значение 3 поскольку в Tx FFE имеется три отвода.

  • Задайте для модели экспорт только в Tx.

  • Задайте для имени IBIS-файла (.ibs) значение pcie4_tx_serdes.ibs

  • Нажмите кнопку Экспорт (Export), чтобы создать модели в целевой папке.

Тестовая модель IBIS-AMI

Модель PCIe4 измерительного преобразователя IBIS-AMI теперь полностью укомплектована и готова к тестированию в любом модельном симуляторе AMI промышленного стандарта.

Ссылки

PCI-SIG.

См. также

| |

Связанные темы