exponenta event banner

Управление параметрами AMI

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

Пример настройки

В этом примере добавляется новый параметр InOut «Count» рядом с блоком сквозного доступа к данным. Этот параметр будет отсчитывать количество проходов через AMI_Init (которое должно быть равно 1), затем передавать результат в AMI_GetWave, где он продолжит отсчет общего количества проходов. Хотя это не может быть особенно полезной функциональностью для разработки модели AMI, она будет служить для демонстрации того, как новые параметры AMI добавляются и используются во время генерации модели.

Проверка модели

Этот пример начинается с простой модели приемника, в которой используется только проходной блок.

open_system('serdes_add_param.slx')

Эта система Simulink SerDes состоит из блоков конфигурации, стимула, передачи, аналогового канала и приема.

  • Подсистема Tx имеет блок канала данных FFE для моделирования части временной области модели AMI и блок Init для моделирования статистической части. Подсистема передачи не будет использоваться в этом примере.

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

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

Запустить модель

Перед правкой запустите модель, чтобы убедиться, что базовая конфигурация работает так, как ожидалось. Создаются два графика. Первая - это диаграмма глаз в области реального времени (GetWave), которая обновляется по мере запуска модели.

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

Добавление нового параметра

Откройте диалоговое окно Block Parameter для блока Конфигурации, затем нажмите на кнопку Open SerDes IBIS-AMI Manager и выберите вкладку AMI-Rx.

1. Выделите блок PT datapath и нажмите Add Parameter...

2. Измените имя параметра на: Count

3. Убедитесь, что для параметра «Текущее значение» установлено значение 0 (это будет отправной точкой для нашего подсчета).

4. В поле Описание введите: Starting value of iteration count.

Существует четыре возможных значения для использования:

  • In: Эти параметры являются обязательными входными данными для исполняемого файла AMI.

  • OutЭти параметры выводятся из функций AMI_Init и/или AMI_GetWave и возвращаются в инструмент EDA.

  • InOut: Эти параметры являются обязательными входными данными для исполняемого файла AMI и могут также возвращать значения из AMI_Init и/или AMI_GetWave в инструмент EDA.

  • Info: Эти параметры являются информацией для пользователя и/или инструмента моделирования и не используются моделью.

5. Задайте для параметра Использование значение: InOut

Существует шесть возможных типов параметров:

  • Float: Число с плавающей запятой.

  • Integer: Целочисленные числа без дробного или десятичного компонента.

  • UI: Единичный интервал (инверсия частоты скорости передачи данных).

  • Tap: Число с плавающей запятой для использования линиями задержки Tx FFE и Rx DFE.

  • Boolean: Значения True и False без кавычек.

  • String: Последовательность символов ASCII, заключенных в кавычки.

6. Задайте для параметра Тип значение: Integer

Существует три возможных параметра Formats:

  • Value: Одно значение данных.

  • List: Дискретный набор значений, из которого пользователь может выбрать одно значение.

  • Range: Непрерывный диапазон, для которого пользователь может выбрать любое значение от Min до Max.

7. Задайте для параметра Формат значение: Value

8. Нажмите кнопку «ОК» для создания нового параметра, после чего на холсте будут автоматически размещены новые блоки.

Доступ к новому параметру из функции инициализации

Доступ к новым параметрам осуществляется из функции Initialize (для статистического анализа) через функциональный блок impulseEqualization MATLAB. В этом примере добавлен параметр InOut. Использование нового параметра InOut 'Count' в AMI_Init:

1. В подсистеме Rx дважды щелкните по блоку Init, чтобы открыть маску.

2. Нажмите кнопку Refresh Init для распространения новых параметров AMI на подсистему инициализации.

3. Нажмите кнопку ОК, чтобы закрыть маску.

4. Снова щелкните по блоку Init и введите Ctrl-U для просмотра под маской Init, затем дважды щелкните по блоку инициализации, чтобы открыть функцию инициализации.

Функциональный блок impulseEqualization MATLAB является автоматически генерируемой функцией, которая обеспечивает обработку импульсной характеристики системного блока SerDes (IBIS-AMI Init).

Следует отметить, что новый параметр Count был автоматически добавлен в качестве вывода этой функции MATLAB в качестве блока записи хранилища данных. Чтение хранилища данных не требуется, поскольку входные параметры передаются как PTSignal Simulink.Parameter.

5. Дважды щелкните по функциональному блоку impulseEqualization MATLAB, чтобы открыть функцию в MATLAB. Строки «»%% BEGIN: «» и «»% END: «» в этом функциональном блоке обозначают раздел, в который можно ввести пользовательский код. Данные в этом разделе не будут перезаписаны при запуске обновления Init:

%% BEGIN: Custom user code area (retained when 'Refresh Init' button is pressed)
% END: Custom user code area (retained when 'Refresh Init' button is pressed)

При запуске программы Refresh Init мы добавили новый параметр в область пользовательского кода Custom, чтобы его можно было использовать по мере необходимости:

%% BEGIN: Custom user code area (retained when 'Refresh Init' button is pressed)
PTCount = PTParameter.Count; % User added AMI parameter from SerDes IBIS-AMI Manager
% END: Custom user code area (retained when 'Refresh Init' button is pressed)

6. Чтобы добавить наш пользовательский код, прокрутите вниз до раздела Пользовательский код, затем введите PTCount = PTCount + 1; Раздел Пользовательский код пользователя должен выглядеть следующим образом:

%% BEGIN: Custom user code area (retained when 'Refresh Init' button is pressed)
PTCount = PTParameter.Count; % User added AMI parameter from SerDes IBIS-AMI Manager
PTCount = PTCount + 1;  % Count each iteration through this function.
% END: Custom user code area (retained when 'Refresh Init' button is pressed)

7. Сохраните обновленную функцию MATLAB, а затем запустите проект Simulink для тестирования нового кода. С помощью инспектора данных моделирования убедитесь, что значение Count после Init теперь равно «1».

Следует отметить, что окончательное значение Count было записано в хранилище данных PTSignal, чтобы теперь оно было доступно в AMI_GetWave.

Как использование влияет на параметры в Init

В зависимости от выбранного типа использования параметры отображаются в области пользовательского кода функционального блока impulseEqualization MATLAB различными способами:

Параметры информации

Информационные параметры являются информационными для пользователя или инструмента моделирования и не передаются или используются моделью, поэтому они не отображаются в коде инициализации.

В параметрах

В параметрах находятся объекты Simulink.Parameter, которые отображаются как константа, которую можно использовать при необходимости. Например, параметр In с именем InParam, добавленный в блок VGA, будет отображаться следующим образом:

VGAParameter.InParam; % User added AMI parameter from SerDes IBIS-AMI Manager

Параметры выхода

Исходящими параметрами являются объекты Simulink.Signal, которые отображаются как параметр с начальным значением, определенным в IBIS-AMI Manager. Например, параметр Out с именем OutParam, добавленный в блок VGA с текущим значением «2», будет отображаться следующим образом:

VGAOutParam=2; % User added AMI parameter from SerDes IBIS-AMI Manager

Выходные параметры используют блок записи хранилища данных для сохранения значений для передачи из Init в инструмент EDA (через строку AMI_Parameters_Out) и для использования в GetWave (при необходимости). В приведенном выше примере блок записи хранилища данных с именем OutParam был автоматически добавлен к функции инициализации:

Параметры InOut

Параметры InOut используют как объект Simulink.Parameter, так и объект Simulink.Signal. Например, параметр InOut с именем InOutParam, добавленный в блок VGA, будет отображаться следующим образом:

VGAInOutParam = VGAParameter.InOutParam; % User added AMI parameter from SerDes IBIS-AMI Manager

Доступ к входному значению осуществляется с помощью ссылки Simulink.Parameter VGAParameter.InOutParam, в то время как выходное значение использует блок записи хранилища данных для хранения значений. В приведенном выше примере блок записи хранилища данных с именем InOutParam был автоматически добавлен в функцию инициализации для передачи значений из Init в средство EDA (через строку AMI_Parameters_Out) и для использования в GetWave (при необходимости):

Доступ к новому параметру из функции GetWave

Новые параметры автоматически создаются в виде блоков типа Constant, Data Store Read или Data Store Write и добавляются в холст блока пути данных. В этом примере добавлен параметр InOut. Чтобы использовать новый параметр InOut 'Count' в GetWave:

1. В подсистеме Rx щелкните по блоку сквозного доступа к данным и введите Ctrl-U для просмотра маски сквозного доступа.

2. Добавьте блок Simulink/Math Operations Sum на холст.

3. Добавление блока константы Simulink/Sources в холст и установка значения 1.

4. Проведите вверх каждый из элементов таким образом, чтобы блок прохождения теперь выглядел следующим образом:

7. Сохраните, затем запустите проект Simulink для тестирования нового кода.

Добавляя метки значений к выходному порту блока Sum, убедитесь, что значение Count после GetWave равно 3 .2e + 04 (Samples Per Symbol * Количество символов). После генерации исполняемых файлов модели AMI значение Count будет доступно в строке Parameters out в симуляторе AMI.

Как использование влияет на параметры в GetWave

Доступ к новым параметрам из функции GetWave осуществляется различными способами в зависимости от выбранного параметра «Использование».

Параметры информации

Информационные параметры являются информационными для пользователя или инструмента моделирования и не могут использоваться моделью.

В параметрах

В качестве параметров используются объекты Simulink.Parameter, используемые при добавлении блока Constant. Например, параметр In с именем «InParam», добавленный в блок Rx VGA, может быть доступен любому из блоков Rx путем добавления блока Constant следующим образом:

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

Параметры выхода

Исходящими параметрами являются объекты Simulink.Signal, которые используют блок записи хранилища данных для сохранения значений для передачи из GetWave в инструмент EDA (через строку AMI_Parameters_Out) или в другие блоки Rx. Например, параметр Out с именем OutParam, добавленный в блок Rx VGA, может быть записан в блок записи хранилища данных следующим образом:

Параметры InOut

Параметры InOut используют как объект Simulink.Parameter, так и объект Simulink.Signal. К входному значению можно обратиться либо с постоянным блоком, либо с блоком чтения хранилища данных, в то время как выходное значение использует блок записи хранилища данных для хранения значений для передачи из GetWave инструменту EDA (через AMI_Parameters_Out строку) или другим блокам Rx. Например, если параметр InOut с именем InOutParam добавлен в блок Rx VGA, начальное входное значение может быть получено любым блоком Rx путем добавления блока Constant следующим образом:

Кроме того, обновленное входное значение можно получить с помощью блока чтения хранилища данных, например:

Выходное значение можно записать в блок записи хранилища данных следующим образом:

Переименование параметра

Параметры, используемые встроенными системными объектами SerDes Toolbox, могут быть изменены или скрыты, но не могут быть переименованы.

Пользовательские параметры AMI переименовываются следующим образом.

Обновление параметров AMI

1. Откройте диалоговое окно «Параметр блока» для блока «Конфигурация», затем нажмите кнопку «Открыть серверы IBIS-AMI Manager».

2. Перейдите на вкладку AMI-Tx или AMI-Rx, где находится параметр.

3. Выделите параметр, который необходимо переименовать, и нажмите кнопку Изменить...

4. В поле Имя параметра измените имя.

5. Нажмите кнопку ОК, после чего на холсте появятся новые параметры, переименованные автоматически.

Обновить Init

1. Нажмите кнопку в блоке подсистемы Tx или Rx, где используется параметр.

2. Дважды щелкните по блоку Init, чтобы открыть маску.

3. Нажмите кнопку Refresh Init для распространения изменения имени параметра AMI на подсистему инициализации.

4. Нажмите кнопку ОК, чтобы закрыть маску.

5. Снова щелкните по блоку Init и введите Ctrl-U для просмотра под маской Init, затем дважды щелкните по блоку инициализации, чтобы открыть функцию инициализации.

6. Дважды щелкните по функциональному блоку impulseEqualization MATLAB, чтобы открыть функцию в MATLAB.

7. Прокрутите вниз до раздела с названием:

%% BEGIN: Custom user code area (retained when 'Refresh Init' button is pressed)

8. Можно подтвердить, что все экземпляры параметра были переименованы.

9. Сохраните и закройте функциональный блок MATLAB.

Обновить GetWave

Вставьте в каждый блок пути данных, где использовался переименованный параметр, и переименуйте каждый экземпляр параметра.

Проверка результатов

Выполните моделирование, чтобы убедиться, что проект по-прежнему работает без ошибок или предупреждений.

Удаление параметра

Параметры, используемые встроенными системными объектами SerDes Toolbox, могут быть изменены или скрыты, но не могут быть удалены.

Пользовательские параметры AMI удаляются следующим образом.

Обновление параметров AMI

1. Откройте диалоговое окно «Параметр блока» для блока «Конфигурация», затем нажмите кнопку «Открыть серверы IBIS-AMI Manager».

2. Перейдите на вкладку AMI-Tx или AMI-Rx, где находится параметр.

3. Выделите удаляемый параметр и нажмите клавишу Delete Parameter.

4. Блоки параметров будут автоматически удалены из холста.

Обновить Init

Примечание.Параметры в пользовательской области пользовательского кода не удаляются автоматически, поэтому их можно комментировать или удалять, выполнив следующие шаги:

1. Вставьте в блок подсистемы Tx или Rx, где использовался параметр.

2. Дважды щелкните по блоку Init, чтобы открыть маску.

3. Нажмите кнопку Refresh Init, чтобы удалить все удаленные хранилища данных параметров Out или InOut из подсистемы инициализации.

4. Нажмите кнопку ОК, чтобы закрыть маску.

5. Снова щелкните блок Init и введите Ctrl-U для просмотра под маской Init

6. Дважды щелкните по блоку инициализации, чтобы открыть функцию инициализации.

7. Дважды щелкните по функциональному блоку impulseEqualization MATLAB, чтобы открыть функцию в MATLAB.

8. Прокрутите вниз до раздела с названием:

%% BEGIN: Custom user code area (retained when 'Refresh Init' button is pressed)

9. Удалите или прокомментируйте все экземпляры удаленного параметра.

10. Сохраните и закройте функциональный блок MATLAB.

Обновить GetWave

Вставка в каждый блок пути данных, в котором использовался удаленный параметр, и удаление каждого экземпляра параметра.

Проверка результатов

Выполните моделирование, чтобы убедиться, что проект по-прежнему работает без ошибок или предупреждений.

Скрытие параметра

Может быть время, когда параметр необходим для функциональности модели, но должен быть скрыт от пользователя. Например, чтобы удержать пользователя от изменения режима FFE, отредактируйте параметр режима FFE и установите флажок «Hidden».

Это предотвратит присутствие этого параметра в файле .ami, что приведет к закодировке параметра до значения по умолчанию. Другими словами, параметр режима FFE все еще присутствует в коде, так что FFE продолжает работать так, как ожидалось, но пользователь больше не может изменять значение.

Чтобы скрыть параметр от Init и GetWave, выполните следующие действия.

1. Откройте маску путем двойного щелчка по интересующему блоку пути данных.

2. Разверните параметры IBIS-AMI для отображения списка параметров, которые должны быть включены в модель IBIS-AMI.

3. Отмените выбор скрытых параметров.

Несколько вещей, которые следует помнить о скрытии параметров:

  • При скрытии параметров проверьте правильность текущих значений параметров. Теперь текущее значение всегда будет использоваться в качестве значения по умолчанию для этого параметра.

  • Скрытие параметра не влияет на исполняемый файл модели. Он удаляет параметр только из созданного файла .ami.

  • Если скрытый параметр имеет тип Out или InOut, он по-прежнему будет отображаться в строке AMI_Parameters_Out исполняемого файла модели.

Изменение параметра

Все параметры, используемые в SerDes Toolbox, изменяются с помощью диалогового окна SerDes IBIS-AMI Manager с помощью команды Изменить... кнопка. Однако значения параметров, которые могут быть изменены, зависят от того, какой тип параметров они имеют.

Для встроенных системных объектов можно изменять только следующие поля:

  • Текущее значение

  • Описание

  • Формат

  • Дефолт

  • Значения списка (для параметра «Формат списка»)

  • Значения Typ/Min/Max (для диапазона формата)

Для пользовательских параметров можно изменить все поля.

Добавление зарезервированных параметров для дрожания, моделирования аналогового буфера и управления данными

Зарезервированные параметры AMI включают в себя:

  • Параметры дрожания и шума, такие как Tx_Rj, Tx_Dj, Tx_DCD, Rx_Rj, Rx_Dj, Rx_DCD, Rx_GausianNoise и другие

  • Параметры моделирования аналогового буфера, такие как Ts4file, TX_V и RX_R

  • Управление данными с помощью DLL_ID

Это параметры постобработки, которые используются имитатором, совместимым с IBIS-AMI, для соответствующего изменения результатов моделирования. Эти параметры добавляются через диалоговое окно SerDes IBIS-AMI Manager с помощью зарезервированных параметров... на вкладках AMI-Tx или AMI-Rx.

Примечание.Зарезервированный параметр AMI_Version автоматически изменится на 7.0, если какие-либо зарезервированные параметры IBIS 7.0 включены в IBIS-AMI Manager.

Например, чтобы добавить Rx_Receiver_Sensitivity и Rx_Dj в файл получателя .ami, щелкните Зарезервированные параметры... чтобы открыть диалоговое окно Rx Add/Remove Jitter & Noise, выберите поля Rx_Receiver_Sensitivity и Rx_Dj, затем нажмите кнопку OK, чтобы добавить эти параметры в раздел Reserved Parameters файла Rx AMI.

Чтобы задать значения для этих двух новых параметров:

  • Выберите Rx_Receiver_Sensitivity, затем нажмите кнопку Изменить... для открытия диалогового окна «Добавление/редактирование параметра AMI».

  • Установить текущее значение в 0.04

  • Изменение формата на Value.

  • Нажмите кнопку ОК, чтобы сохранить изменения.

  • Выберите Rx_Dj, затем нажмите кнопку Изменить... для открытия диалогового окна Add/Edit AMI Parameter.

  • Установить текущее значение в 0.0

  • Измените тип на UI.

  • Изменение формата на Range.

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

  • Установите минимальное значение в 0.0

  • Установить максимальное значение в 0.1

  • Нажмите кнопку ОК, чтобы сохранить изменения.

Эти два параметра появятся в Reserved_Parameters разделе файла .ami, как показано на рисунке:

(Rx_Receiver_Sensitivity (Usage Info)(Type Float)(Value 0.04))

(Rx_Dj (Usage Info) (Type UI) (Range 0.05 0.0 0.01))

В другом примере можно использовать файлы Touchstone (также известные как файлы SnP) для настройки моделирования аналогового буфера передатчика или приемника. Эта опция может быть включена с помощью зарезервированного параметра, Ts4file в IBIS AMI Manager.

При нажатии кнопки «Экспорт» в IBIS AMI Manager появится диалоговое окно, в котором можно выбрать файлы s-параметров для каждой модели угла процесса для поддержки зарезервированных Ts4file параметров.

Для получения дополнительной информации о зарезервированных параметрах IBIS см. спецификацию IBIS.

Ссылки

Спецификация IBIS 7.0

См. также

| |

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