Проектируйте модели IBIS-AMI для поддержки переадресации часов

В этом примере показано, как создать модели Rx AMI, которые поддерживают переадресацию часов, как определено в документе IBIS Buffer Issue Resolution Document (BIRD) 204, путем изменения библиотечных блоков в SerDes Toolbox™. Этот пример использует передачу записи DDR5 (Controller to SDRAM), чтобы продемонстрировать настройку.

Фон

IBIS BIRD 204, DQ_DQS GetWave Flow for Clock Forwarding Modeling, добавляет проход способности во внешнем тактовом сигнале, либо в виде формы волны, либо в тактовое время, к данным IBIS-AMI приемника GetWave модели, используя clock_times указатель, заданный спецификацией IBIS. Новый AMI Reserved Parameter, Rx_Use_Clock_Input, используется, чтобы включить эту функциональность. Обратите внимание, что хотя BIRD 204 была принята комитетом IBIS, она пока не является частью выпущенной спецификации IBIS.

Рисунок ниже показывает типовую настройку симуляции DDR5 связанного канала с помощью синхронной переадресации. Тактовое время или форма волны, сгенерированные DQS0, передаются в DQ [7:0] с помощью clock_times DLL DQ указатель. DQ DLL затем работает с этими временами по мере желания (для примера запуска отводов DFE, моделирования дерева задержки DQS или центрирования DQ на форме волны DQS), а затем проходит тот же или измененный clock_times как обычно. Этот же процесс повторяется для DQS1 и DQ [8:15].

Этот пример предоставляет введение в переадресацию часов в SerDes Toolbox и показывает, как использовать различные инструменты Simulink ® и функции MATLAB ® для генерации и тестирования исполняемого файла IBIS-AMI, который поддерживает переадресацию часов. Он не предоставляет определенного алгоритма переадресации синхросигналов.

Модель RX IBIS-AMI, Setup в Simulink

Чтобы начать, загрузите модель Simulink переадресации часов и проверьте настройку модели. Начните, введя следующую команду:

>> open_system('clock_forward.slx')

Это позволит создать следующую систему SerDes:

Просмотр Setup модели Simulink

В дополнение к обычным блокам SerDes Configuration, Stimulus, Tx, Analog Channel и Rx, эта система Simulink SerDes добавляет новый блок Strobe Clock Times Generator. Настройка каждого из этих блоков будет рассмотрена ниже.

Блок Configuration

  • Для параметра Symbol Time задано значение 200.0 ps (5.0Gbps)

  • Целевое BER установлено в 1e-16.

  • Для сигнализации задано значение Single-ended.

  • Выборки по символу и модуляции сохраняются на значениях по умолчанию, которые 16 и NRZ (без возврата к нулю), соответственно.

Блок стимула

  • Для блока Stimulus заданы значения по умолчанию.

Блок Tx

Блок Tx использует один FFE с 5 отводами. Поскольку этот пример ориентирован на модель Rx, блок Tx будет нетронут.

Блок аналогового канала

  • Потеря канала установлена на 5 dB, что типично для каналов DDR.

  • Импеданс с одним концом установлен в 40 ом.

  • Целевая частота устанавливается в 2.5 ГГц, который является частотой Nyquist для 5,0 ГГц

  • Аналоговая модель Tx настроена так, что Напряжение 1.1 V, Время нарастания 10 ps, R (выходное сопротивление) 50 ohms, и C (емкость) 0.65pF.

  • Аналоговая модель Rx настроена так, что R (входное сопротивление) 40 Ом и С (емкость) 0.65pF.

Блок RX

Один блок Rx является сквозным блоком, который состоит из системного объекта DFE, функционального блока CDR MATLAB и блока Clock Times. Блок DFE настраивается для четырех отводов DFE путем включения четырех начальных весов отводов, установленных на 0. Минимальное значение отвода установлено в [-0.2 -0.075 -0.06 -0.045] V, и Максимальное значение отвода установлено на [0.05 0.075 0.06 0.045] V.

Согласно BIRD 204 тактовое время, принимаемое приемником данных переадресации синхросигналов, используется непосредственно, поэтому восстановление синхросигнала не требуется. Вместо CDR, блок MATLAB function с именем forwardCDR используется для передачи тактового частоты в DFE, что сигнализирует о том, когда следует применить отводы DFE. В сложении этот блок передает тактовое время, без изменений, блоку IBIS-AMI clock_times, чтобы сгенерировать нормальное тактовое время для использования инструментом EDA. Из этого примера Блока MATLAB function можно скопировать в вашу собственную модель Simulink.

Блок Clock Times является библиотечным блоком SerDes Toolbox, который форматирует тактовое время, генерируемое блоком DFECDR, CDR или forwardCDR для выхода в инструмент EDA. Этот библиотечный блок доступен из браузера библиотеки Simulink.

Блок DFE является пользовательским системным объектом SerDes Toolbox. Его можно добавить к вашей собственной модели Simulink, добавив блок MATLAB System и затем указав его на файл DFE.m, включенный в этот пример.

Подсистема генератора синхроимпульсов Strobe (новая)

Блок Strobe Clock Times Generator либо считывает именованный стимулирующий шаблон, сохраненный в рабочем пространстве модели, либо читает в массиве часов с именем clockTicks который также хранится в рабочем пространстве модели. Маска для этой подсистемы используется, чтобы выбрать, какой вход использовать и задать имя шаблона внешнего синхросигнала.

Новый блок Strobe Clock Times Generator еще не включен в библиотеку SerDes Toolbox. Можно добавить эту подсистему к новой модели Simulink, скопировав ее из этого примера. Вставка этого блока в новую модель SerDes Toolbox также добавит необходимые параметры Rx_Use_Clock_Input и ForwardClockOffset Сигнал Simulink в Рабочее пространство модели.

Запуск модели Simulink

Модель Simulink готова к запуску. В порядок, чтобы сделать эффекты расположения синхроимпульса более видимыми, первый контакт DFE был установлен на -0.1V, и режим DFE установлен в Fixed. Нажмите кнопку run, чтобы запустить симуляцию.

Когда симуляция запускается, глазковая диаграмма Временной интервал постоянно обновляется:

После завершения симуляции становится доступным график Init Statistical and Временной Интервал Analysis Results:

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

Как визуализировать результаты

Чтобы проверить правильность операции переадресации часов, построение результирующих осциллограмм и/или тактовых счетчиков может быть очень полезным. Для нескольких сигналов включена регистрация данных, что позволяет использовать Data Inspector для графического изображения графиков осциллограмм. Чтобы включить дополнительное логгирование данных, щелкните правой кнопкой мыши по любому сигналу и выберите Log Selected Signals.

Построение графиков часов и сигналов данных

После выполнения симуляции откройте Data Inspector, нажав на значок -на вкладке Simulink Simulation. В Data Inspector установите флажки для Stimulus:1 (входящий сигнал стимула, Красный на рисунке ниже) и для rxOut (выходной сигнал данных Rx, синий на рисунке ниже). Вы увидите, что поднимающиеся и падающие ребра формы волны внешнего синхроимпульса (Red) соответствуют peaks формы сигнала данных (Blue). Если они не строятся должным образом, смещение может быть скорректировано с помощью смещения синхроимпульса (см. Установка смещения синхроимпульса).

Построение графиков тактовых счетчиков в и вне

После выполнения симуляции в Data Inspector установите флажки для Forward Clock Times:1 (внешние часы из блока Clock Times Generator) и clockTime (часы из модели Rx). Когда «Times» выбирается в качестве времени внешнего синхроимпульса, эти два сигнала ожидаются идентичными.

Изменение шаблона данных

Шаблон Rx Data устанавливается с помощью блока Simulus системы SerDes в обычном режиме. Можно выбрать шаблон PRBS или использовать именованный шаблон стимула, который живет в рабочем пространстве модели. Шаблон стимула тока назван SiSoftLinkStimulus_dq.

Изменение шаблона синхроимпульса

В эту модель Simulink включены два шаблона часов:

  • SiSoftLinkStimulus_ck: Это периодический шаблон синхроимпульса, сгенерированный SiSoft Quantum SI™ (QSI)

  • SiSoftLinkStimulus_dqs: Это шаблон DQS с 8-битным пакетом DDR, за которым следует 4-битный статический минимум.

Чтобы изменить этот шаблон, укажите нужный шаблон по имени в маске Strobe Clock Times Generator.

Чтобы создать новый шаблон, смотрите Создание нового шаблона часов.

Переключение между внешней формой волны и тактовыми тактами

Переключение между использованием внешней формы волны для генерации тактового синхросигнала на использование внешнего массива тактовых тактов непосредственно осуществляется путем изменения значения параметра, Rx_Use_Clock_Input из маски генератора синхроимпульсов Strobe. Существует 3 опции внешнего входа синхроимпульса:

  • Нет: Никакие часы не будут входом к или выведены из модели Rx AMI.

  • Время: Используйте внешние часы, заданные в параметре Рабочее Пространство Модели clockTicks.

  • Волны: Используйте внешнюю форму синхроимпульса от Waveform Name в маске.

Создание новой формы синхроимпульса

Генерация новых часов или стробирующих сигналов для использования в блоке Simulus внутри генератора Strobe Clock Times Generator выполняется с помощью SiSoft Quantum SI и пакета поддержки MATLAB SiSoft Link™.

Ниже представлен обзор необходимых шагов. Для получения дополнительной информации об использовании SiSoft Link, смотрите Интерфейс SerDes Toolbox для SiSoft Quantum Channel Designer и QSI Software. Для получения дополнительной информации о QSI смотрите www.sisoft.com. Обратите внимание, что если вы ранее запускали SiSoft Link на этой модели Simulink, можно начать с шага 3.

  1. Начните с помощью SerDes IBIS-AMI Manager, чтобы экспортировать модели Tx и Rx. Убедитесь, что установлены флажки в файлах IBIS, AMI и DLL.

  2. Используйте SiSoft Link для создания нового проекта QSI.

  3. В новом проекте QSI дважды кликните по обозначению Tx, затем нажмите кнопку IO Stimulus в диалоговом окне Designator Element Properties.

  4. В диалоговом окне Stimuli нажмите кнопку New, чтобы открыть Редактор и создать нужный шаблон часов.

  5. Когда вы завершите создание нового стимула, убедитесь, что новый именованный шаблон стимула выбран в свойствах элемента Designator.

  6. Используйте диалоговое окно Параметры, чтобы задать желаемые значения Samples Per Bit, Record Start и Record Bits, чтобы захватить желаемое количество выборок. Примечание: Количество выборок = Количество выборок на бит * бит записи

  7. Запустите симуляцию QSI, чтобы сгенерировать новый шаблон Стимула.

  8. В SiSoft Link, используя раздел Import from QSI, выберите правильную симуляцию, убедитесь, что установлен флажок Update stimulus pattern и нажмите Import.

  9. Еще в Simulink новый шаблон стимула будет автоматически установлен в блоке Stimulus верхнего уровня. Измените этот шаблон на любой PRBS или SiSoftLinkStimulus_dq как было задано ранее.

  10. В блоке Stimulus внутри Strobe Clock Times Generator выберите только что созданный стимул SiSoftLinkStimulus.

Примечание: Шаблон SiSoftLinkStimulus переписывается каждый раз, когда этот процесс выполняется. Чтобы сохранить именованный шаблон стимула, откройте Model Explorer, перейдите в Рабочее пространство модели и переименуйте SiSoftLinkStimulus в новое имя. Этот повторно названный параметр сохраняется вместе с остальной частью модели Simulink.

Создание новых тактов

Создание новых тактовых тактов для использования внутри генератора Strobe Clock Times Generator осуществляется с помощью SiSoft Quantum SI и пакета поддержки MATLAB SiSoft Link.

Ниже представлен обзор необходимых шагов. Для получения дополнительной информации об использовании SiSoft Link, смотрите Интерфейс SerDes Toolbox для SiSoft Quantum Channel Designer и QSI Software. Для получения дополнительной информации о QSI смотрите www.sisoft.com. Обратите внимание, что если вы ранее запускали SiSoft Link на этой модели Simulink, можно начать с шага 3.

  1. Начните с помощью SerDes IBIS-AMI Manager, чтобы экспортировать модели Tx и Rx. Убедитесь, что установлены флажки в файлах IBIS, AMI и DLL.

  2. Используйте SiSoft Link для создания нового проекта QSI.

  3. В новом проекте QSI откройте диалоговое окно Параметры и установите параметр Output Clock Ticks на Да.

  4. Запустите необходимую симуляцию QSI.

  5. В командной строке MATLAB введите следующее, чтобы импортировать тактовое время из вашего проекта QSI и отформатировать их для использования в Simulink:

%% Read the QSI generated clock_ticks from a file
filename = '<path_to_qsi_project>/<project_name>/interfaces/<interface_name>/pre_sims/<sheet_name>/default.ssm/qcd/<designator>_ttte.td.<designator>_z.clock_ticks.csv';
csv = readmatrix(filename,'Range','A7');

%% Format input
count = csv(:,1);
clock = csv(:,2);

%% Output clock_ticks for Simulink
clockTicks = [count, clock];

Примечание.Если необходимо сохранить несколько массивов clockTicks или переключаться между массивами, необходимо обновить имя параметра clockTicks в Блок MATLAB function clockTimesGen внутри подсистемы генератора Strobe Clock Times.

Установка смещения синхроимпульса

Входной параметр AMI ForwardClockOffset был добавлен к блоку DFEandCDR. Этот параметр имеет тип Целое число с значением по умолчанию 0 и диапазоном от 0 до 64. В блоке DFEandCDR этот параметр управляет блоком Delay, который используется для задержки времени входящего синхроимпульса до 64 выборок. Используя SerDes IBIS-AMI Manager, вы можете использовать эту задержку для настройки местоположения внешнего синхроимпульса относительно формы волны данных по мере необходимости.

Для примера вот временной интервал глазковой диаграммы с ForwardClockOffset на 5:

Обратите внимание, как DFE-отводы применяются в центре глаза, а не на ребрах глаза. С задержкой, установленной на 14, DFE-отводы применяются в идеальном месте на краю глаза:

Примечание. Значения задержки, меньше 0, не эффект на полученную форму волны.

Изменение текущего значения Rx_Use_Clock_Input

Операцией переадресации синхроимпульса управляет зарезервированный параметр AMI Use_AMI_Clock_PDF. Изменение текущего значения этого параметра не поддерживается SerDes IBIS-AMI Manager, поэтому все обновления текущего значения выполняются из маски генератора синхроимпульсов Strobe с помощью переключателей Select External Clock Input.

Примечание.Если IBIS-AMI Manager уже открыт, может потребоваться закрыть и повторно открыть, чтобы изменения были видны.

Сгенерируйте модель Rx IBIS-AMI

Заключительная часть этого примера берет настроенную модель Simulink и генерирует исполняемые файлы модели, совместимые с IBIS-AMI, IBIS и AMI для приемника переадресации синхроимпульсов.

Откройте диалоговое окно Параметров блоков для блока Configuration и нажмите кнопку Open SerDes IBIS-AMI Manager.

Необходимые ключевые слова

IBIS-AMI Reserved входа Rx_Use_Clock_Input параметра требуется для корректной работы кодегена. Если этого параметра нет в вашей модели, в то время как модель может кодировать свойства переадресации часов, не будут включены.

Экспорт моделей

На вкладке Экспорт в диалоговом окне SerDes IBIS/AMI manager.

  • Обновите имя модели Rx на clock_forward_rx.

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

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

  • Установите биты модели Rx, чтобы игнорировать значение 10 чтобы обеспечить достаточное время для того, чтобы форма внешнего синхроимпульса установилась во время симуляций во временном интервале.

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

  • Установите имя файла IBIS таким clock_forwarding_rx.ibs

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

Просмотр файла AMI

Получившийся файл Rx AMI будет выглядеть как обычный файл Rx AMI за двумя исключениями. Во-первых, AMI_Version устанавливается на 7.1. Второй - это включение зарезервированного Rx_Use_Clock_Input параметра. Поскольку оба эти изменения являются изменениями от неизданной версии спецификации IBIS, либо один из них приведет к тому, что этот файл AMI не сможет использовать IBIS AMI Checker (который в настоящее время находится в версии 7.0.1). Если это вызывает какие-либо проблемы в инструменте EDA, можно пропустить выполнение проверки AMI.

Ограничения модели

Эта модель AMI переадресации часов требует инструмента EDA, который поддерживает BIRD 204.

Тестовые модели IBIS-AMI

Теперь модель IBIS-AMI приемника переадресации часов завершена и готова к тестированию в любом промышленном стандартном симуляторе модели AMI, поддерживающем BIRD 204.

Ссылки