Настройка управляющих сигналов SerDes Toolbox Datapath

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

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

PCIe4 передаточная модель

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

Откройте модель adding_tx_ffe_params. Модель SerDes system Simulink ® состоит из блоков Configuration, Stimulus, Tx, Analog Channel и Rx.

open_system('adding_tx_ffe_params.slx')

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

  • Блок Analog Channel имеет значения параметров PCIe4 для параметров Target frequency, Loss, Impedance и Tx/Rx аналоговой модели.

  • Подсистема Rx имеет блок Pass-Through и блок Init.

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

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

Дважды кликните блок Configuration, чтобы открыть диалоговое окно Параметры Блоков. Нажмите кнопку Open SerDes IBIS-AMI Manager. Перейдите на вкладку AMI-Tx диалогового окна SerDeS IBIS-AMI Manager.

  • Выберите параметр FFE, затем нажмите Add Parameter... для добавления нового подпараметра FFE.

  • Установите имя параметра равным ConfigSelect.

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

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

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

  • Установите для параметра Type значение 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 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.

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

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

Запустите симуляцию и наблюдайте результаты статистического анализа Init.

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

Изменение GetWave

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

Внутри подсистемы Tx введите Ctrl-U, чтобы заглянуть под маску блока FFE.

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

  • Добавьте блок MATLAB Function на холст из библиотеки Simulink/User-Defined.

  • Переименуйте блок MATLAB Function в 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. Сигнал 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. Наблюдайте выход сигнал.

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

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

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

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

Дважды кликните блок Configuration, чтобы открыть диалоговое окно Параметры Блоков. Нажмите кнопку Открыть SerDes IBIS-AMI Manager, затем выберите вкладку Экспорт:

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

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

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

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

  • Установите модели, чтобы экспортировать только в Tx.

  • Установите имя файла IBIS (.ibs) на pcie4_tx_serdes.ibs

  • Нажмите кнопку Экспорт, чтобы сгенерировать модели в директории Target.

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

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

Ссылки

PCI-SIG.

См. также

| |

Похожие темы