Этот пример показывает, как добавить, удалить, измените, переименуйте и скройте параметры AMI в SerDes Toolbox. Эти параметры затем доступны, чтобы использоваться с существующими блоками datapath, пользователь создал цикл управления оптимизации или блоки MATLAB function. Эти параметры могут быть переданы или возвращены в исполняемые файлы модели AMI (DLLs), созданный SerDes Toolbox.
Этот пример будет добавлять новый Параметр, являющийся одновременно входным и выходным 'количество' вместе с Передачей datapath блок. Этот параметр рассчитает, количество проходит через AMI_Init (который должен быть 1), затем передайте результат AMI_GetWave, где это продолжит считать общее количество передач. В то время как это не может быть особенно полезной функциональностью для разработки моделей AMI, она будет служить, чтобы продемонстрировать, как новые параметры AMI добавляются и используются во время образцовой генерации.
Осмотрите модель
Этот пример запускается с простой модели получателя, которая только использует блок передачи.
open_system('serdes_add_param.slx')
Эта система Simulink SerDes состоит из Настройки, Стимула, Tx, Analog Channel и блоков Rx.
Подсистема Tx имеет FFE datapath блок, чтобы смоделировать фрагмент области времени модели AMI и блока Init, чтобы смоделировать статистический фрагмент. Подсистема Tx не будет использоваться в этом примере.
Блок Analog Channel имеет значения параметров для Целевой частоты, Потери, Импеданса и параметров аналоговой модели Tx/Rx.
Подсистема Rx имеет Передачу datapath блок и блок Init, чтобы смоделировать статистический фрагмент модели AMI.
Запустите модель
Запустите модель, чтобы проверить, что основная настройка работает как ожидалось перед редактированием. Сгенерированы два графика. Первым является живой временной интервал (GetWave) индикаторная диаграмма, которая обновляется, когда модель запускается.
Второй график содержит четыре представления статистического (Init) результаты.
Откройте диалоговое окно Block Parameter для Блока Configuration, затем нажмите на кнопку 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_GetWave и/или AMI_Init.
InOut
: Эти параметры требуются входные параметры к Исполняемому файлу AMI, и может также возвращаемые значения от AMI_Init и/или AMI_GetWave.
Информация:
Эти параметры являются информацией для Пользователя и/или инструмента симуляции.
5. Установите использование на: InOut
Существует шесть возможных Типов параметра:
Float
: число с плавающей точкой.
Целое число:
Целые числа без дробного или десятичного компонента.
UI
: Единичный интервал (инверсия частоты скорости передачи данных).
Tap
: число с плавающей точкой для использования Tx FFE и Rx DFE задерживает строки.
Boolean
: Истинные и ложные значения, без кавычек.
Строка:
последовательность символов ASCII заключена в кавычки.
6. Установите тип на: Integer
Существует три возможных формата параметра:
Значение:
одно значение данных.
List
: дискретное множество значений, из которого пользователь может выбрать одно значение.
Область значений:
непрерывная область значений, для которой пользователь может выбрать любое значение между Min и Максимум.
7. Установите формат на: Value
8. Поразите OK, чтобы создать новый параметр, затем закройте менеджера SerDes IBIS-AMI.
К новым параметрам получают доступ от Инициализировать функции (для статистического анализа) через impulseEqualization блок MATLAB function. Этот пример добавил Параметр, являющийся одновременно входным и выходным. Использовать новый Параметр, являющийся одновременно входным и выходным 'количество' в AMI_Init:
1. В подсистеме Rx, дважды щелкают по блоку Init, чтобы открыть маску.
2. Нажмите кнопку Refresh Init, чтобы распространить новый параметр (параметры) AMI к инициализировать подсистеме.
3. Нажмите ОК, чтобы закрыть маску.
4. Нажмите на блок Init снова и введите Ctrl-U, чтобы посмотреть под маской Init, затем дважды кликните на инициализировать блоке, чтобы открыть Инициализировать Функцию.
impulseEqualization блок MATLAB function является автоматически сгенерированной функцией, которая обеспечивает импульсную обработку ответа системного блока SerDes (IBIS-AMI Init).
Обратите внимание на то, что новый параметр количества был автоматически добавлен как вывод этой функции MATLAB как блок Data Store Write. Никакое Чтение Хранилища данных не требуется, потому что входные параметры передаются в как Simulink PTSignal. Параметр.
5. Дважды кликните на impulseEqualization блоке MATLAB function, чтобы открыть функцию в MATLAB. '%% BEGIN': и '% ЗАКАНЧИВАЕТСЯ': строки в этом функциональном блоке обозначают раздел, где пользовательский пользовательский код может быть введен. Данные в этом разделе не будут перезаписаны, когда Обновление 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)
Когда Обновление, Init был запущен, он добавил наш новый параметр в Пользовательскую пользовательскую область кода так, чтобы он мог использоваться по мере необходимости:
%% 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 протестировать новый код. Используя Инспектора Данных моделирования, проверьте, что значение количества после Init равняется теперь '1'.
Обратите внимание на то, что окончательное значение для количества было записано в хранилище данных PTSignal так, чтобы это было теперь доступно в AMI_GetWave.
В зависимости от того, какое Использование было выбрано, параметры обнаруживаются в Пользовательской Пользовательской области кода impulseEqualization блока MATLAB function по-разному:
Информационные параметры
Информационные параметры являются информационными для пользователя или инструмента симуляции и не могут использоваться моделью, поэтому они не обнаружатся в Инициализировать коде.
В параметрах
В параметрах обнаруживаются как переменная, которая может использоваться по мере необходимости. Например, В параметре под названием 'InParam', который был добавлен к блоку VGA, обнаружится можно следующим образом:
VGAParameter.InParam; % User added AMI parameter from SerDes IBIS-AMI Manager
Параметры
Параметры обнаруживаются как переменная со значением, заданным в менеджере по IBIS-AMI. Например, параметр под названием 'OutParam', который был добавлен к блоку VGA со значением '2', обнаружится можно следующим образом:
VGAOutParam=2; % User added AMI parameter from SerDes IBIS-AMI Manager
Кроме того, блок Data Store Write под названием 'OutParam' добавляется к Инициализировать Функции для передающих значений из Init пользователю (через строку AMI_Parameters_Out) и для использования в GetWave (при желании):
Параметры, являющиеся одновременно входным и выходным
Параметры, являющиеся одновременно входным и выходным обнаруживаются как переменная, которая может использоваться по мере необходимости. Например, Параметр, являющийся одновременно входным и выходным под названием 'InOutParam', который был добавлен к блоку VGA, обнаружится можно следующим образом:
VGAInOutParam = VGAParameter.InOutParam; % User added AMI parameter from SerDes IBIS-AMI Manager
Кроме того, блок Data Store Write под названием 'OutParam' добавляется к Инициализировать Функции для передающих значений из Init пользователю (через строку AMI_Parameters_Out) и для использования в GetWave (при желании):
К новым параметрам получают доступ от функции GetWave (для анализа временного интервала) путем добавления Постоянного, блока Data Store Read или Data Store Write в блок datapath. Этот пример добавил Параметр, являющийся одновременно входным и выходным. Использовать новый Параметр, являющийся одновременно входным и выходным 'количество' в GetWave:
1. В подсистеме Rx нажмите на Передачу datapath блок и введите Ctrl-U, чтобы посмотреть под маской Передачи.
2. Добавьте блок Simulink/Signal Routing Data Store Read в холст
Назовите блок Data Store Read: PTCount_Read
Дважды кликните на блоке Data Store Read и измените Имя хранилища данных на: PTSignal
На вкладке Element Selection, в Указывать элементе, чтобы выбрать тип поля: PTSignal.Count
и нажимает Select>> кнопка, чтобы выбрать элемент количества.
Измените размер блока, чтобы сделать все имена и свойства элемента видимыми.
Нажмите ОК, чтобы закрыть диалоговое окно.
3. Добавьте блок Simulink/Math Operations Sum в холст.
4. Добавьте блок Simulink/Sources Constant в холст и установите значение к 1
.
5. Добавьте блок Simulink/Signal Routing Data Store Write в холст.
Назовите блок Data Store Write: PTCount_Write
Дважды кликните на блоке Data Store Write и измените Имя хранилища данных на: PTSignal
На вкладке Element Selection, в Указывать элементе, чтобы выбрать тип поля: PTSignal.Count
и нажимает Select>> кнопка, чтобы выбрать элемент количества.
Измените размер блока, чтобы сделать все имена и свойства элемента видимыми.
Нажмите ОК, чтобы закрыть диалоговое окно.
6. Обеспечьте электричеством каждый из элементов так, чтобы блок Pass Through теперь был похож на следующее:
7. Сохраните, затем запустите проект Simulink протестировать новый код.
Путем увеличивания стоимость Метки выходного порта блока Sum смотрите, что значение количества после GetWave 3.2e+04 (Выборки На Символ * Количество символов). После генерации исполняемых файлов модели AMI значение количества будет доступно в Параметрах, представляют в виде строки в средстве моделирования AMI.
К новым параметрам получают доступ от функции GetWave по-разному, в зависимости от того, какое Использование было выбрано.
Информационные параметры
Информационные параметры являются информационными для пользователя или инструмента симуляции и не могут использоваться моделью.
В параметрах
В параметре используются путем добавления блока Constant.
Для получения дополнительной информации смотрите Настройку SerDes Toolbox Управляющие сигналы Datapath.
Параметры
Параметры используются путем добавления блока Data StoreWrite, который покрыт как подмножество Параметров, являющихся одновременно входным и выходным ниже.
Параметры, являющиеся одновременно входным и выходным
Параметры, являющиеся одновременно входным и выходным используются путем добавления блока Data Store Read и блока Data Store Write. Блоки Хранилища данных также допускают передачу значений параметров из AMI_Init в AMI_GetWave.
Параметры, используемые Объектами встроенной системы SerDes Toolbox, могут быть изменены или скрыты, но не могут быть переименованы.
Сгенерированные параметры AMI пользователя переименованы можно следующим образом.
Обновите параметры AMI
1. Откройте диалоговое окно Block Parameter для Блока Configuration, затем нажмите на кнопку Open SerDes IBIS-AMI Manager.
2. Перейдите к любому вкладка AMI-Tx или AMI-Rx, где параметр находится.
3. Подсветите параметр, который будет переименован, и нажмите Edit Parameter...
4. В поле Названия параметра, измененном название, как желаемый.
5. Поразите OK, затем закройте менеджера SerDes IBIS-AMI
Обновите Init
1. Продвиньте или в блок подсистемы Tx или в Rx, где параметр используется.
2. Дважды щелкните по блоку Init, чтобы открыть маску.
3. Нажмите кнопку Refresh Init, чтобы распространить изменение названия параметра AMI в инициализировать подсистеме.
4. Нажмите ОК, чтобы закрыть маску.
5. Нажмите на блок Init снова и введите Ctrl-U, чтобы посмотреть под маской Init, затем дважды кликните на инициализировать блоке, чтобы открыть Инициализировать Функцию.
6. Дважды кликните на impulseEqualization блоке MATLAB function, чтобы открыть функцию в MATLAB.
7. Прокрутите вниз к названному разделу:
%% BEGIN: Custom user code area (retained when 'Refresh Init' button is pressed)
8. Переименуйте все экземпляры параметра.
9. Сохраните и закройте блок MATLAB function.
Обновите GetWave
Продвиньте в каждый блок datapath, где переименованный параметр использовался, и переименуйте каждый экземпляр параметра.
Проверка результатов
Запустите симуляцию, чтобы проверить, что проект все еще действует без ошибок или предупреждений.
Параметры, используемые Объектами встроенной системы SerDes Toolbox, могут быть изменены или скрыты, но не могут быть удалены.
Сгенерированные параметры AMI пользователя удалены можно следующим образом.
Обновите параметры AMI
1. Откройте диалоговое окно Block Parameter для Блока Configuration, затем нажмите на кнопку Open SerDes IBIS-AMI Manager.
2. Перейдите к любому вкладка AMI-Tx или AMI-Rx, где параметр находится.
3. Подсветите параметр, который будет удален, и нажмите Delete Parameter.
4. Подтвердите удаление, затем закройте менеджера SerDes IBIS-AMI.
Обновите Init
1. Продвиньте или в блок подсистемы Tx или в Rx, где параметр использовался.
2. Дважды щелкните по блоку Init, чтобы открыть маску.
3. Нажмите кнопку Refresh Init, чтобы удалить любого удаленного или Хранилища данных Параметра, являющегося одновременно входным и выходным от инициализировать подсистемы.
4. Нажмите ОК, чтобы закрыть маску.
5. Нажмите на блок Init снова и введите Ctrl-U, чтобы посмотреть под маской Init
6. Дважды кликните на инициализировать блоке, чтобы открыть Инициализировать Функцию.
7. Дважды кликните на impulseEqualization блоке MATLAB function, чтобы открыть функцию в MATLAB.
8. Прокрутите вниз к названному разделу:
%% BEGIN: Custom user code area (retained when 'Refresh Init' button is pressed)
9. Удалите или прокомментируйте все экземпляры удаленного параметра.
10. Сохраните и закройте блок MATLAB function.
Обновите GetWave
Продвиньте в каждый блок datapath, где удаленный параметр использовался, и удалите каждый экземпляр параметра.
Проверка результатов
Запустите симуляцию, чтобы проверить, что проект все еще действует без ошибок или предупреждений.
Могут быть времена, когда параметр требуется для функциональности модели, но должен быть скрыт от пользователя. Например, чтобы помешать пользователю изменять режим FFE, удалите этот параметр из .ami файла - эффективно жесткое кодирование параметр к одному значению. Параметр режима все еще присутствует в коде так, чтобы FFE продолжил работать как ожидалось, но пользователь больше не может изменять значение.
Скрыть параметр и от Init и от GetWave:
1. Откройте маску путем двойного клика на datapath блоке интереса.
2. Расширьте параметры IBIS-AMI, чтобы показать список параметров, которые будут включены в модель IBIS-AMI.
3. Отмените выбор параметра (параметров), который будет скрыт.
Несколько вещей иметь в виду о скрывающихся параметрах:
При сокрытии параметров проверьте, что текущее значение (значения) параметров правильно. Текущее значение будет теперь всегда использоваться в качестве значения по умолчанию для того параметра.
Сокрытие параметра не имеет никакого эффекта на образцовый исполняемый файл. Это только удаляет параметр из сгенерированного .ami файла.
Если скрытый параметр будет иметь тип или InOut, это все еще обнаружится в строке AMI_Parameters_Out образцового исполняемого файла.
Все параметры, используемые в SerDes Toolbox, изменяются через менеджера SerDes IBIS-AMI диалоговое окно при помощи Параметра Редактирования... кнопка. Однако значения параметров, которые могут быть изменены, отличаются, в зависимости от которого типа параметров они.
Для Объектов встроенной системы только могут быть изменены следующие поля:
Текущее значение
Описание
Формат
Значение по умолчанию
Перечислите значения (для Списка форматов)
Значения Typ/Min/Max (для Области значений Формата)
Для определяемых пользователем параметров могут быть изменены все поля.
Дрожание и шумовые параметры, такие как Tx_Rj, Tx_Dj, Tx_DCD, Rx_Rj, Rx_Dj и Rx_DCD или другие зарезервированные параметры, такие Rx_Receiver_Sensitivity являются параметрами последующей обработки, которые используются IBIS-AMI совместимое средство моделирования, чтобы изменить результаты симуляции соответственно. Эти параметры должны быть добавлены вручную путем редактирования .ami файлов в текстовом редакторе.
Например, чтобы добавить Rx_Receiver_Sensitivity, Rx_DCD, Rx_Dj и Rx_Sj к получателю .ami файл, добавляют следующие строки в раздел Reserved_Parameters .ami файла:
(Rx_Receiver_Sensitivity (Usage Info)(Type Float)(Value 0.04))
(Rx_DCD (Usage Info) (Type UI) (Value 0.0125))
(Rx_Dj (Usage Info) (Type UI) (Value 0.0175))
(Rx_Rj (Usage Info) (Type UI) (Value 0.00375))
Помните, что любые ручные редактирования к .ami файлам будут перезаписаны во время модели Export, так стараться сохранить любые вручную отредактированные файлы в отдельном месте или выключить создание файла (файлов) AMI во время процесса Экспорта.
Для получения дополнительной информации о зарезервированных параметрах IBIS смотрите спецификацию IBIS.