В этом примере показано, как добавить, удалите, измените, переименуйте и скройте параметры 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_Init и/или функций AMI_GetWave и возвращены в инструмент EDA.
InOut
: Эти параметры требуются входные параметры к Исполняемому файлу AMI, и может также возвращаемые значения от AMI_Init и/или AMI_GetWave к инструменту EDA.
Info
: Эти параметры являются информацией для Пользователя и/или инструмента симуляции и не используются моделью.
5. Установите использование на: InOut
Существует шесть возможных Типов параметра:
Float
: Число с плавающей точкой.
Integer
: Целые числа без дробного или десятичного компонента.
UI
: Единичный интервал (инверсия частоты скорости передачи данных).
Tap
: Число с плавающей точкой для использования Tx FFE и Rx DFE задерживает линии.
Boolean
: Истинные и ложные значения, без кавычек.
String
: Последовательность символов ASCII заключена в кавычки.
6. Установите тип на: Integer
Существует три возможных формата параметра:
Value
: Одно значение данных.
List
: Дискретный набор значений, из которых пользователь может выбрать одно значение.
Range
: Непрерывная область значений, для которой пользователь может выбрать любое значение между 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 по-разному:
Информационные параметры
Информационные параметры являются информационными для пользователя или инструмента симуляции и не передаются или используются моделью, поэтому они не обнаружатся в Инициализировать коде.
В параметрах
В параметрах Simulink.Parameter object s, которые обнаруживаются как константа, которая может использоваться по мере необходимости. Например, В параметре под названием 'InParam', который был добавлен к блоку VGA, обнаружится можно следующим образом:
VGAParameter.InParam; % User added AMI parameter from SerDes IBIS-AMI Manager
Параметры
Параметрами является Simulink.Signal object s, которые обнаруживаются в качестве параметра с начальным значением, заданным в менеджере по IBIS-AMI. Например, параметр под названием 'OutParam', который был добавлен к блоку VGA с текущим значением '2', обнаружится можно следующим образом:
VGAOutParam=2; % User added AMI parameter from SerDes IBIS-AMI Manager
Выходные параметры используют блок Data Store Write, чтобы сохранить значения для передачи из Init к инструменту EDA (через строку AMI_Parameters_Out) и для использования в GetWave (при желании). В вышеупомянутом примере блок Data Store Write под названием 'OutParam' был автоматически добавлен к Инициализировать Функции:
Параметры, являющиеся одновременно входным и выходным
Параметры, являющиеся одновременно входным и выходным используют и Simulink.Parameter object и Simulink.Signal object. Например, Параметр, являющийся одновременно входным и выходным под названием 'InOutParam', который был добавлен к блоку VGA, обнаружится можно следующим образом:
VGAInOutParam = VGAParameter.InOutParam; % User added AMI parameter from SerDes IBIS-AMI Manager
К Входному значению получают доступ при помощи Simulink. Ссылка параметра VGAParameter. InOutParam, в то время как выходное значение использует блок Data Store Write, чтобы сохранить значения. В вышеупомянутом примере блок Data Store Write под названием 'InOutParam' был автоматически добавлен к Инициализировать Функции для передающих значений из Init к инструменту EDA (через строку 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 Assignment, в Указывать элементе, чтобы выбрать тип поля: PTSignal.Count
и нажмите Select>> кнопка, чтобы выбрать элемент количества.
Измените размер блока, чтобы сделать все имена и свойства элемента видимыми.
Нажмите ОК, чтобы закрыть диалоговое окно.
6. Обеспечьте электричеством каждый из элементов так, чтобы блок Pass Through теперь был похож на следующее:
7. Сохраните, затем запустите проект Simulink протестировать новый код.
Путем увеличивания стоимость Метки выходного порта блока Sum смотрите, что значение количества после GetWave 3.2e+04 (Выборки На Символ * Количество символов). После генерации исполняемых файлов модели AMI значение количества будет доступно в Параметрах, представляют в виде строки в средстве моделирования AMI.
К новым параметрам получают доступ от функции GetWave по-разному, в зависимости от того, какое Использование было выбрано.
Информационные параметры
Информационные параметры являются информационными для пользователя или инструмента симуляции и не могут использоваться моделью.
В параметрах
В параметрах Simulink.Parameter object s, которые используются путем добавления блока Constant. Например, В параметре под названием 'InParam', который был добавлен к блоку Rx VGA, может быть получен доступ любым из блоков Rx путем добавления блока Constant как это:
Для получения дополнительной информации смотрите Настройку SerDes Toolbox Управляющие сигналы Datapath.
Параметры
Параметрами является Simulink.Signal object s, которые используют блок Data Store Write, чтобы сохранить значения для передачи из GetWave к инструменту EDA (через строку AMI_Parameters_Out) или с другими блоками Rx. Например, параметр под названием 'OutParam', который был добавлен к блоку Rx VGA, может быть записан в с блоком Data Store Write как это:
Параметры, являющиеся одновременно входным и выходным
Параметры, являющиеся одновременно входным и выходным используют и Simulink.Parameter object и Simulink.Signal object. К Входному значению можно получить доступ или с постоянным блоком или с блоком Data Store Read, в то время как выходное значение использует блок Data Store Write, чтобы сохранить значения для передачи из GetWave к инструменту EDA (через строку AMI_Parameters_Out) или с другими блоками Rx. Например, если Параметр, являющийся одновременно входным и выходным под названием 'InOutParam' добавляется к блоку Rx VGA, к начальному Входному значению может получить доступ любой блок Rx путем добавления блока Constant как это:
Поочередно, к обновленному Входному значению можно получить доступ с блоком Data Store Read как это:
Выходное значение может быть записано в с блоком Data Store Write как это:
Параметры, используемые Объектами встроенной системы SerDes Toolbox, могут быть изменены или скрыты, но не могут быть переименованы.
Сгенерированные параметры AMI пользователя переименованы можно следующим образом.
Обновите параметры AMI
1. Откройте диалоговое окно Block Parameter для Блока Configuration, затем нажмите на кнопку Open SerDes IBIS-AMI Manager.
2. Перейдите к любому вкладка AMI-Tx или AMI-Rx, где параметр находится.
3. Подсветите параметр, который будет переименован, и нажмите Edit...
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 совместимое средство моделирования, чтобы изменить результаты симуляции соответственно. Эти параметры добавляются через менеджера SerDes IBIS-AMI диалоговое окно при помощи Зарезервированных Параметров... кнопка.
Например, чтобы добавить Rx_Receiver_Sensitivity и Rx_Dj к получателю .ami файл, нажмите Reserved Parameters..., кнопка, чтобы поднять Rx Добавляет/Удаляет диалоговое окно Jitter&Noise, выбирает поля Rx_Receiver_Sensitivity и Rx_Dj, затем нажимает ОК, чтобы добавить эти параметры в раздел Reserved Parameters файла AMI Rx.
Устанавливать значения для этих двух новых параметров:
Выберите Rx_Receiver_Sensitivity, затем нажмите Edit... кнопка, чтобы поднять Добавлять/Редактировать диалоговое окно Параметра AMI.
Установите текущее значение к 0.04
Измените формат в Value
.
Нажмите ОК, чтобы сохранить изменения.
Выберите Rx_Dj, затем нажмите Edit... кнопка, чтобы поднять Добавлять/Редактировать диалоговое окно Параметра AMI.
Установите текущее значение к 0.0
Измените тип в UI
.
Измените формат в Range
.
Установите значение Typ к 0.05
Установите значение Min к 0.0
Установите значение Max к 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))
Для получения дополнительной информации о зарезервированных параметрах IBIS см. спецификацию IBIS.
FFE | PassThrough | SerDes Designer