В этом примере показано, как добавить, удалить, изменить, переименовать и скрыть параметры AMI для модели IBIS-AMI, созданной с помощью SerDes Toolbox. Эти параметры AMI затем доступны для использования с существующими блоками datapath, созданными пользователем блоками MATLAB function или циклом управления оптимизацией, и могут быть переданы или возвращены из исполняемых файлов модели AMI (DLL), созданных SerDes Toolbox.
В этом примере будет добавлен новый параметр InOut 'Count' вместе с блоком Pass-through datapath. Этот параметр подсчитает количество проходов через AMI_Init (которое должно быть 1), затем передаст результат в AMI_GetWave, где продолжит подсчитывать общее количество проходов. Хотя это может быть не особенно полезным функционалом для разработки модели AMI, он будет служить, чтобы продемонстрировать, как новые параметры AMI добавляются и используются во время генерации модели.
Смотрите модель
Этот пример начинается с простой модели приемника, которая использует только блок pass-through.
open_system('serdes_add_param.slx')
Эта система Simulink SerDes состоит из блоков Configuration, Stimulus, Tx, Analog Channel и Rx.
Подсистема Tx имеет блок FFE datapath для моделирования части AMI-модели во временной области и блок Init для моделирования статистической части. Подсистема Tx не будет использоваться в этом примере.
Блок Analog Channel имеет значения параметров Целевой частоты, Потерь, Импеданса и параметров аналоговой модели Tx/Rx.
Подсистема Rx имеет блок Pass-Through datapath и блок Init, чтобы смоделировать статистический фрагмент модели AMI.
Запуск модели
Запустите модель, чтобы убедиться, что базовое строение работает должным образом перед редактированием. Сгенерированы два графика. Первый - это live временного интервала (GetWave) глазковой диаграммы, который обновляется во время работы модели.
Второй график содержит представления результатов статистической (Init) и временного интервала (GetWave) симуляции.
Откройте диалоговое окно Параметров блоков для блока Configuration, затем нажмите кнопку Open SerDes IBIS-AMI Manager и выберите вкладку AMI-Rx.
1. Выделите блок PT datapath и нажмите Add Parameter...
2. Измените имя параметра на: Count
3. Проверьте, что для Текущего значения задано значение 0
(это будет отправной точкой для нашего счета).
4. В поле «Описание» введите: Starting value of iteration count
.
Существует четыре возможных значения для Usage:
In
: Эти параметры являются необходимыми входами в исполняемый файл AMI.
Out
: Эти параметры выхода от функций AMI_Init и/или AMI_GetWave и возвращаются к инструменту EDA.
InOut
: Эти параметры являются необходимыми входами в исполняемый файл AMI, а также могут возвращать значения из AMI_Init и/или AMI_GetWave в инструмент EDA.
Info
: Эти параметры являются информацией для Пользователя и/или инструмента симуляции и не используются моделью.
5. Установите значение параметра Usage на: InOut
Существует шесть возможных типов параметров:
Float
: Число с плавающей точкой.
Integer
: Целочисленные числа без дробного или десятичного компонента.
UI
: Единичный интервал (обратная частота скорости передачи данных).
Tap
: Число с плавающей точкой для использования линиями задержки Tx FFE и Rx DFE.
Boolean
: Истинные и ложные значения, без кавычек.
String
: Последовательность символов ASCII, заключенная в кавычки.
6. Установите для параметра Type значение: Integer
Существуют три возможных форматов:
Value
: Одно значение данных.
List
: Множество значений, из которых пользователь может выбрать одно значение.
Range
: Непрерывная область значений, для которого пользователь может выбрать любое значение между Min и Max.
7. Установите формат равным: Value
8. Нажмите OK, чтобы создать новый параметр, затем вы увидите новые блоки, автоматически помещенные на холст.
Доступ к новым параметрам осуществляется из функции Initialize (для статистического анализа) через Блок MATLAB function impulseEqualization. В этом примере добавлен параметр InOut. Чтобы использовать новый параметр InOut 'Count' в AMI_Init:
1. Внутри подсистемы Rx дважды нажатие кнопки по блоку Init, чтобы открыть маску.
2. Нажмите кнопку Refresh Init, чтобы распространить новые параметры (параметры ) (ы) AMI в подсистему инициализации.
3. Нажмите кнопку ОК, чтобы закрыть маску.
4. Еще раз щелкните на блоке Init и введите Ctrl-U, чтобы просмотреть маску Init, затем дважды щелкните по блоку initialize, чтобы открыть Initialize Function.
Блок MATLAB function impulseEqualization является автоматически сгенерированной функцией, которая обеспечивает импульсной характеристике обработку системного блока SerDes (IBIS-AMI Init).
Обратите внимание, что новый параметр Count был автоматически добавлен как выход этой функции MATLAB как блока записи хранилища данных. Не требуется чтение хранилища данных, потому что входные параметры передаются как PTSignal Simulink.Parameter.
5. Дважды кликните по Блоку MATLAB function impulseEqualization, чтобы открыть функцию в MATLAB. «линии»%% BEGIN: «и»% END: «в этом функциональном блоке обозначают раздел, в который можно ввести пользовательский код». Данные в этом разделе не будут переписаны при запуске Refresh 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, чтобы протестировать новый код. Используя Данные моделирования Inspector, проверьте, что значение Count после Init теперь равно '1'.
Обратите внимание, что окончательное значение параметра Count было записано в хранилище данных PTSignal, теперь оно доступно в AMI_GetWave.
В зависимости от того, что было выбрано Usage, параметры показа в области Пользовательского кода Блока MATLAB function impulseEqualization различными способами:
Параметры информации
Информационные параметры являются информационными для пользователя или инструмента симуляции и не передаются или не используются моделью, поэтому они не будут отображаться в коде Initialize.
В параметрах
Параметрами являются Simulink объектов .Parameter, которые показ как константа, которая может использоваться по мере необходимости. Например, параметр In с именем 'InParam', который был добавлен к блоку VGA, появится следующим образом:
VGAParameter.InParam; % User added AMI parameter from SerDes IBIS-AMI Manager
Выходные параметры
Параметрами out являются объекты Simulink .Signal, которые показ как параметр с начальным значением, заданным в IBIS-AMI Manager. Например, параметр Out с именем 'OutParam', который был добавлен к блоку VGA с текущим значением '2', появится следующим образом:
VGAOutParam=2; % User added AMI parameter from SerDes IBIS-AMI Manager
Выходные параметры используют блок Data Store Write для хранения значений для передачи Init в инструмент EDA (через AMI_Parameters_Out строку) и для использования в GetWave (при желании). В приведенном выше примере блок записи хранилища данных с именем 'OutParam' был автоматически добавлен к функции Initialize:
Параметры inOut
Параметры inOut используют как объект Simulink .Parameter, так и объект Simulink .Signal. Например, параметр InOut с именем 'InOutParam', который был добавлен к блоку VGA, появится следующим образом:
VGAInOutParam = VGAParameter.InOutParam; % User added AMI parameter from SerDes IBIS-AMI Manager
Доступ к значению Входа осуществляется с помощью Simulink. Параметр ссылки VGAParameter.InOutParam, в то время как значение выхода использует блок Данных Store Write для хранения значений. В приведенном выше примере блок записи хранилища данных с именем 'InOutParam' был автоматически добавлен к функции Initialize для передачи значений из Init в инструмент EDA (через AMI_Parameters_Out строку) и для использования в GetWave (при желании):
Новые параметры автоматически создаются как блоки типа Constant, Data Store Read или Data Store Write и добавляются к холсту блока datapath. В этом примере добавлен параметр InOut. Чтобы использовать новый параметр InOut 'Count' в GetWave:
1. Внутри подсистемы Rx щелкните на блоке Pass-Through datapath и введите Ctrl-U, чтобы просмотреть маску Pass-Through.
2. Добавьте блок Simulink/Math Operations Sum к холсту.
3. Добавьте блок Simulink/Sources Constant к холсту и установите значение 1
.
4. Подключите каждый из элементов так, чтобы блок Pass Through теперь выглядел следующим образом:
7. Сохраните, затем запустите проект Simulink, чтобы протестировать новый код.
Добавляя метки значения к выходу порту блока Sum, смотрите, что значение Count после GetWave составляет 3 .2e + 04 (Выборки на символ * Количество символов). После генерации исполняемых файлов модели AMI, значение Count будет доступно в строке Parameters out в симуляторе AMI.
Доступ к новым параметрам из функции GetWave осуществляется различными способами, в зависимости от того, что было выбрано Usage.
Параметры информации
Информационные параметры являются информационными для пользователя или инструмента симуляции и не могут использоваться моделью.
В параметрах
Параметрами являются объекты Simulink .Parameter, которые используются добавлением блока Constant. Например, параметр In с именем 'InParam', который был добавлен в блок Rx VGA, может быть получен любым из блоков Rx путем добавления блока Constant, такого как этот:
Для получения дополнительной информации см. Пользовательская настройка SerDes Toolbox Управляющие сигналы Datapath.
Выходные параметры
Параметрами out являются объекты Simulink .Signal, которые используют блок Данных Store Write для хранения значений для передачи GetWave в инструмент EDA (через AMI_Parameters_Out строку) или в другие блоки Rx. Например, параметр Out с именем 'OutParam', который был добавлен к блоку Rx VGA, может быть записан с блоком Data Store Write, таким как этот:
Параметры inOut
Параметры inOut используют как объект Simulink .Parameter, так и объект Simulink .Signal. К Входу значению можно получить доступ либо с помощью постоянного блока, либо с помощью блока Данных Store Read, в то время как значение выхода использует блок Данных Store Write для хранения значений для передачи из GetWave в инструмент EDA (через AMI_Parameters_Out строку) или в другие блоки Rx. Например, если к блоку Rx VGA добавлен параметр InOut с именем 'InOutParam', то исходное значение вход может быть получено любым блоком Rx путем добавления блока Constant, такого как этот:
Кроме того, к обновленному значению Input можно получить доступ с помощью блока Data Store Read, такого как этот:
Выходное значение может быть записано в с помощью блока Data Store Write, такого как:
Параметры, используемые встроенными Системными объектами SerDes Toolbox, могут быть изменены или скрыты, но не могут быть переименованы.
Пользовательские параметры AMI переименовываются следующим образом.
Обновление параметров AMI
1. Откройте диалоговое окно Параметров блоков для блока Configuration, а затем нажмите кнопку Open SerDes IBIS-AMI Manager.
2. Перейдите на вкладку AMI-Tx или AMI-Rx, где находится параметр.
3. Выделите параметр, который будет переименован, и нажмите Edit...
4. В поле Имя параметра измените имя по желанию.
5. Нажмите кнопку ОК, после чего новые параметры будут автоматически переименованы в холст.
Обновление Init
1. Нажмите на блок подсистемы Tx или Rx, где используется параметр.
2. Дважды кликните блок Init, чтобы открыть маску.
3. Нажмите кнопку Refresh Init, чтобы передать изменение имени параметра AMI в подсистему инициализации.
4. Нажмите кнопку ОК, чтобы закрыть маску.
5. Еще раз щелкните на блоке Init и введите Ctrl-U, чтобы просмотреть маску Init, затем дважды щелкните по блоку initialize, чтобы открыть Initialize Function.
6. Дважды кликните по Блоку MATLAB function impulseEqualization, чтобы открыть функцию в 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. Откройте диалоговое окно Параметров блоков для блока Configuration, а затем нажмите кнопку Open SerDes IBIS-AMI Manager.
2. Перейдите на вкладку AMI-Tx или AMI-Rx, где находится параметр.
3. Выделите удаляемый параметр и нажмите Delete Parameter.
4. Вы увидите блоки параметров, автоматически удаленные из холста.
Обновление Init
Примечание: Параметры в пользовательской области кода не удаляются автоматически, поэтому вы будете комментировать или удалять их с помощью следующих шагов:
1. Нажмите на блок подсистемы Tx или Rx, где использовался параметр.
2. Дважды кликните блок Init, чтобы открыть маску.
3. Нажмите кнопку Refresh Init, чтобы удалить удаленный параметр Out или InOut Data Stores из подсистемы инициализации.
4. Нажмите кнопку ОК, чтобы закрыть маску.
5. Нажмите на блок Init еще раз и введите Ctrl-U, чтобы просмотреть под маской Init
6. Дважды кликните блок initialize, чтобы открыть Initialize Function.
7. Дважды кликните по Блоку MATLAB function impulseEqualization, чтобы открыть функцию в MATLAB.
8. Прокрутите вниз до раздела под названием:
%% BEGIN: Custom user code area (retained when 'Refresh Init' button is pressed)
9. Удалите или закомментируйте все образцы удаленного параметра.
10. Сохраните и закройте блок MATLAB function.
Обновление GetWave
Нажмите на каждый блок datapath, где использовался удаленный параметр, и удалите каждый образец параметра.
Проверьте результаты
Запустите симуляцию, чтобы убедиться, что проект все еще работает без ошибок или предупреждений.
Могут быть случаи, когда параметр требуется для функциональности модели, но должен быть скрыт от пользователя. Например, чтобы пользователь не изменял режим FFE, отредактируйте параметр FFE mode и установите флажок «Hidden».
Это предотвратит присутствие этого параметра в файле .ami - фактически жесткое кодирование параметра до значения по умолчанию. Другими словами, параметр FFE mode все еще присутствует в коде, так что FFE продолжает работать должным образом, но пользователь больше не может изменять значение.
Чтобы скрыть параметр и от Init, и от GetWave:
1. Откройте маску, дважды кликнув по интересующему блоку datapath.
2. Разверните параметры IBIS-AMI, чтобы показать список параметров, которые будут включены в модель IBIS-AMI.
3. Отмените выбор параметров (параметров ), которые будут скрыты.
Несколько вещей, которые нужно иметь в виду о сокрытии параметров:
При скрытии параметров проверьте, что текущие значения (значения) параметров верны. Текущее значение теперь всегда будет использоваться в качестве значения по умолчанию для этого параметра.
Скрытие параметра не влияет на исполняемый файл модели. Он удаляет параметр только из сгенерированного файла .ami.
Если скрытый параметр имеет тип Out или InOut, он все равно появится в AMI_Parameters_Out строке исполняемого файла модели.
Все параметры, используемые в SerDes Toolbox, изменяются через диалоговое окно SerDes IBIS-AMI Manager с помощью Edit... кнопка. Однако значения параметров, которые могут быть изменены, варьируются в зависимости от того, какой тип параметров они имеют.
Для встроенных системных объектов могут быть изменены только следующие поля:
Текущее значение
Описание
Формат
Дефолт
Список значений (для списка форматов)
Значения 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 с помощью Reserved Parameters... кнопка на вкладках AMI-Tx или AMI-Rx.
Примечание.Если в IBIS-AMI Manager включены какие-либо зарезервированные параметры IBIS 7.0, AMI_Version параметров автоматически изменится на 7.0.
Например, чтобы добавить Rx_Receiver_Sensitivity и Rx_Dj в файл приемника .ami, нажмите Reserved Parameters... Чтобы открыть диалоговое окно Rx Add/Remove Jitter & Noise, выберите Rx_Receiver_Sensitivity и Rx_Dj поля, а затем нажмите OK, чтобы добавить эти параметры в раздел Reserved Parameters файла Rx AMI.
Чтобы задать значения для этих двух новых параметров:
Выберите Rx_Receiver_Sensitivity, затем щелкните Изменить... чтобы открыть диалоговое окно Add/Edit AMI Parameter.
Установите Текущее значение равным 0.04
Измените формат на Value
.
Нажмите кнопку ОК, чтобы сохранить изменения.
Выберите Rx_Dj, затем щелкните Изменить... для вызова диалогового окна Add/Edit AMI Parameter.
Установите Текущее значение равным 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))
В другом примере можно использовать файлы Touchstone (также известные как файлы SnP), чтобы настроить аналоговое буферное моделирование передатчика или приемника. Эта опция может быть включена с помощью зарезервированного параметра, Ts4file в IBIS AMI Manager.
При нажатии кнопки Экспорт в IBIS AMI Manager появится диалоговое окно, в котором можно выбрать файлы параметров для каждой модели угла процесса, чтобы поддержать зарезервированные Ts4file параметра.
Для получения дополнительной информации о зарезервированных параметрах IBIS см. спецификацию IBIS.
FFE | PassThrough | SerDes Designer