В этом примере показано, как создать модели 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, который поддерживает переадресацию часов. Он не предоставляет определенного алгоритма переадресации синхросигналов.
Чтобы начать, загрузите модель Simulink переадресации часов и проверьте настройку модели. Начните, введя следующую команду:
>> open_system('clock_forward.slx')
Это позволит создать следующую систему SerDes:
В дополнение к обычным блокам SerDes Configuration, Stimulus, Tx, Analog Channel и Rx, эта система Simulink SerDes добавляет новый блок Strobe Clock Times Generator. Настройка каждого из этих блоков будет рассмотрена ниже.
Для параметра Symbol Time задано значение 200.0
ps (5.0Gbps)
Целевое BER установлено в 1e-16.
Для сигнализации задано значение Single-ended
.
Выборки по символу и модуляции сохраняются на значениях по умолчанию, которые 16
и NRZ
(без возврата к нулю), соответственно.
Для блока Stimulus заданы значения по умолчанию.
Блок Tx использует один FFE с 5 отводами. Поскольку этот пример ориентирован на модель Rx, блок Tx будет нетронут.
Потеря канала установлена на 5
dB, что типично для каналов DDR.
Импеданс с одним концом установлен в 40
ом.
Целевая частота устанавливается в 2.5
ГГц, который является частотой Nyquist для 5,0 ГГц
Аналоговая модель Tx настроена так, что Напряжение 1.1
V, Время нарастания 10
ps, R (выходное сопротивление) 50 o
hms, и C (емкость) 0.65
pF.
Аналоговая модель Rx настроена так, что R (входное сопротивление) 40
Ом и С (емкость) 0.65
pF.
Один блок 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 Clock Times Generator либо считывает именованный стимулирующий шаблон, сохраненный в рабочем пространстве модели, либо читает в массиве часов с именем clockTicks
который также хранится в рабочем пространстве модели. Маска для этой подсистемы используется, чтобы выбрать, какой вход использовать и задать имя шаблона внешнего синхросигнала.
Новый блок Strobe Clock Times Generator еще не включен в библиотеку SerDes Toolbox. Можно добавить эту подсистему к новой модели Simulink, скопировав ее из этого примера. Вставка этого блока в новую модель SerDes Toolbox также добавит необходимые параметры Rx_Use_Clock_Input и ForwardClockOffse
t Сигнал Simulink в Рабочее пространство модели.
Модель Simulink готова к запуску. В порядок, чтобы сделать эффекты расположения синхроимпульса более видимыми, первый контакт DFE был установлен на -0.1
V, и режим 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.
Начните с помощью SerDes IBIS-AMI Manager, чтобы экспортировать модели Tx и Rx. Убедитесь, что установлены флажки в файлах IBIS, AMI и DLL.
Используйте SiSoft Link для создания нового проекта QSI.
В новом проекте QSI дважды кликните по обозначению Tx, затем нажмите кнопку IO Stimulus в диалоговом окне Designator Element Properties.
В диалоговом окне Stimuli нажмите кнопку New, чтобы открыть Редактор и создать нужный шаблон часов.
Когда вы завершите создание нового стимула, убедитесь, что новый именованный шаблон стимула выбран в свойствах элемента Designator.
Используйте диалоговое окно Параметры, чтобы задать желаемые значения Samples Per Bit, Record Start и Record Bits, чтобы захватить желаемое количество выборок. Примечание: Количество выборок = Количество выборок на бит * бит записи
Запустите симуляцию QSI, чтобы сгенерировать новый шаблон Стимула.
В SiSoft Link, используя раздел Import from QSI, выберите правильную симуляцию, убедитесь, что установлен флажок Update stimulus pattern и нажмите Import.
Еще в Simulink новый шаблон стимула будет автоматически установлен в блоке Stimulus верхнего уровня. Измените этот шаблон на любой PRBS
или SiSoftLinkStimulus_dq
как было задано ранее.
В блоке 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.
Начните с помощью SerDes IBIS-AMI Manager, чтобы экспортировать модели Tx и Rx. Убедитесь, что установлены флажки в файлах IBIS, AMI и DLL.
Используйте SiSoft Link для создания нового проекта QSI.
В новом проекте QSI откройте диалоговое окно Параметры и установите параметр Output Clock Ticks на Да.
Запустите необходимую симуляцию QSI.
В командной строке 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, не эффект на полученную форму волны.
Операцией переадресации синхроимпульса управляет зарезервированный параметр AMI Use_AMI_Clock_PDF. Изменение текущего значения этого параметра не поддерживается SerDes IBIS-AMI Manager, поэтому все обновления текущего значения выполняются из маски генератора синхроимпульсов Strobe с помощью переключателей Select External Clock Input.
Примечание.Если IBIS-AMI Manager уже открыт, может потребоваться закрыть и повторно открыть, чтобы изменения были видны.
Заключительная часть этого примера берет настроенную модель 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.
Получившийся файл 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 приемника переадресации часов завершена и готова к тестированию в любом промышленном стандартном симуляторе модели AMI, поддерживающем BIRD 204.