В этом примере показано, как создать модели Rx AMI, которые поддерживают часы, передавая, как задано в Буферном документе решения проблем (BIRD) IBIS 204 путем изменения библиотечных блоков в SerDes Toolbox™. Этот пример будет использовать передачу записи DDR5 (Контроллер к SDRAM), чтобы продемонстрировать настройку.
ПТИЦА IBIS 204, Поток DQ_DQS GetWave для Передающего Моделирования Часов, добавляет передачу способности в сигнале внешнего таймера, или как форма волны или времена часов, к данным модель GetWave приемника IBIS-AMI, с помощью clock_times
указатель задан спецификацией IBIS. Новый AMI Зарезервированный Параметр, Rx_Use_Clock_Input, используется, чтобы добавить эту функциональность. Обратите внимание на то, что, в то время как BIRD 204 был принят комитетом IBIS, это еще не часть выпущенной спецификации IBIS.
Рисунок ниже показывает типичному DDR5 связанную настройку симуляции канала с помощью передачи часов. Времена часов или форма волны, сгенерированная DQS0, передаются DQ [7:0] использование clock_times
DLL DQ указатель. DLL DQ затем работает с ними, показывают время, как желаемый (например, инициировавший касания DFE, моделирование DQS задерживает дерево или сосредотачивая DQ на форме волны DQS), и затем падает в обморок тот же или изменил
clock_times
как обычно. Этот тот же процесс повторяется для DQS1 и DQ [8:15].
Этот пример обеспечивает введение в передачу часов в SerDes Toolbox, и покажите, как использовать различные инструменты Simulink® и функции MATLAB®, чтобы сгенерировать и протестировать исполняемый файл IBIS-AMI, который поддерживает передачу часов. Это не обеспечивает определенный алгоритм передачи часов.
Чтобы начаться, загрузите часы, передав модель Simulink и рассмотрите настройку модели. Запустите путем ввода следующей команды:
>> open_system('clock_forward.slx')
Это поднимет следующую систему SerDes:
В дополнение к нормальной Настройке SerDes, Стимулу, Tx, Analog Channel и блокам Rx, эта система Simulink SerDes добавляет новый блок Strobe Clock Times Generator. Настройка каждого из этих блоков будет рассмотрена ниже.
Время символа установлено в 200.0
PS (5.0 Гбит/с)
Целевой BER установлен в 1e-16.
Сигнализация установлена в Single-ended
.
Выборки на Символ и Модуляция сохранены в значениях по умолчанию, которые являются 16
и NRZ
(не возвратитесь к нулю), соответственно.
Блок Stimulus установлен в значения по умолчанию.
Блок Tx использует один FFE с 5 касаниями. Поскольку этот пример фокусируется на модели Rx, блок Tx будет нетронутым.
Потеря канала установлена в 5
дБ, который типичен для каналов DDR.
Несимметричный импеданс установлен в 40
Омы.
Целевая Частота установлена в 2.5
GHz, который является частотой Найквиста для 5,0 ГГц
Аналоговая модель Tx настраивается так, чтобы Напряжением был 1.1
V, Временем нарастания является 10
PS, R (выходное сопротивление) является 50 o
HMS и C (емкость) является 0.65
pF.
Аналоговая модель Rx настраивается так, чтобы R (входное сопротивление) был 40
Омами и C (емкость) является 0.65
pF.
Один блок Rx является блоком передачи, который состоит из Системного объекта DFE, блока MATLAB function CDR и блока 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 или читает именованный шаблон стимула часов, сохраненный в Рабочем пространстве модели, или читает в массиве, показывают время под названием clockTicks
который также хранится в Рабочем пространстве модели. Маска для этой подсистемы используется, чтобы выбрать, которые вводят, чтобы использовать и определить имя шаблона стимула внешнего таймера.
Новый Блок Генератора Времен Часов Строба еще не включен в библиотеку SerDes Toolbox. Можно добавить эту подсистему в новую модель Simulink вставкой копии это из этого примера. Вставка этого блока в новую модель SerDes Toolbox также добавит необходимые параметры Rx_Use_Clock_Input и ForwardClockOffse
t Сигнал Simulink к Рабочему пространству модели.
Модель Simulink готова запуститься. Для того, чтобы сделать эффекты местоположения часов более видимыми, первое касание DFE было установлено в -0.1
V и режим DFE установлен в Fixed
. Нажмите кнопку Run, чтобы запустить симуляцию.
Когда симуляция запускается, глазковая диаграмма области Времени постоянно обновляется:
После того, как симуляция завершена, график Результатов анализа области Статистического и Времени Init становится доступным:
Обратите внимание на то, что, поскольку передача часов только влияет на результаты области Времени, Статистические результаты не отражает эффекты передачи часов.
Проверять правильное функционирование передачи часов, строя получившиеся формы волны и/или такты системных часов может быть очень полезным. Нескольким сигналам включили регистрацию данных, чтобы включить использование Data Inspector для графического вывода форм волны. Чтобы включить дополнительную регистрацию данных, щелкните правой кнопкой по любому сигналу и выберите Log Selected Signals
.
После выполнения симуляции открывают Data Inspector путем нажатия - значок во вкладке Simulink Simulation. В Data Inspector устанавливают флажки для Stimulus:1 (входящая форма волны стимула, Красная в рисунке ниже) и для rxOut (данные Rx форма волны, синяя в рисунке ниже). Необходимо видеть, что, повышаясь и падая ребра (Красной) формы волны внешнего таймера соответствуют peaks (Синей) формы волны данных. Если они приводят в порядок не линию как ожидалось, смещение может быть настроено при помощи смещения часов (см. Установку смещения часов).
После выполнения симуляции, в Data Inspector устанавливают флажки для Прямых Часов Times:1 (времена внешнего таймера от блока Clock Times Generator) и clockTime (времена часов, передаваемые из модели Rx). Когда “Времена” будут выбраны как времена внешнего таймера, эти два сигнала, как ожидают, будут идентичны.
Шаблон Данных Rx установлен с помощью блока Stimulus системы SerDes, как обычно. Шаблон PRBS может быть выбран, или именованный шаблон стимула, который живет в рабочем пространстве модели, может использоваться. Текущий шаблон стимула является named SiSoftLinkStimulus_dq
.
Два шаблона часов включены в эту модель Simulink:
SiSoftLinkStimulus_ck
: Это - периодический шаблон часов, сгенерированный SiSoft Quantum SI™ (QSI)
SiSoftLinkStimulus_dqs
: Это - шаблон DQS с 8-битным пакетом DDR, сопровождаемым 4-битными помехами низко.
Чтобы изменить этот шаблон, задайте желаемый шаблон по наименованию в маске Генератора Strobe Clock Times.
Чтобы создать новый шаблон, смотрите Создание нового шаблона часов.
Переключение между использованием внешней формы волны, чтобы сгенерировать показывает время к использованию массива меток деления внешнего таймера, непосредственно выполняется путем изменения значения параметра Rx_Use_Clock_Input от маски Генератора Strobe Clock Times. Существует 3 опции для Входа Внешнего таймера:
'none': Никакие времена часов не будут введены - к или выведены - из модели Rx AMI.
\times: Используйте времена внешнего таймера, данные в параметре Рабочего пространства модели clockTicks.
Волны: Используйте форму волны внешнего таймера от Waveform Name
в маске.
Генерация новых часов или формы волны строба для использования в блоке Stimulus в Генераторе Strobe Clock Times выполняется с помощью SiSoft Quantum SI и пакета поддержки MATLAB SiSoft Link™.
Вот обзор необходимых шагов. Для получения дальнейшей информации при использовании Ссылки SiSoft, смотрите Интерфейс SerDes Toolbox для SiSoft Quantum Channel Designer and QSI Software. Для получения дополнительной информации о QSI смотрите www.sisoft.com. Обратите внимание на то, что, если вы ранее запустили Ссылку SiSoft на эту модель Simulink, можно начать с шага 3.
Начните при помощи менеджера SerDes IBIS-AMI экспортировать модели Tx и Rx. Убедитесь, что файл IBIS, файлы AMI и поля файлов DLL проверяются.
Используйте Ссылку SiSoft, чтобы Создать новый проект QSI.
В новом проекте QSI дважды кликните на указателе Tx, затем нажимают кнопку IO Stimulus в диалоговом окне Designator Element Properties.
В диалоговом окне Стимулов нажмите кнопку New, чтобы открыть Редактор Стимула и создать желаемый шаблон часов.
Когда вы закончите создавая новый стимул, убедитесь, что новый именованный шаблон стимула выбран в Designator Element Properties.
Используйте диалоговое окно Параметров Симуляции, чтобы установить желаемые Выборки На Бит, Запуск Записи и значения Битов Записи получать желаемое количество отсчетов. Примечание: Количество отсчетов = Выборки На Бит * Биты Записи
Запустите симуляцию QSI, чтобы сгенерировать новый шаблон Стимула.
В Ссылке SiSoft, с помощью раздела Import from QSI, выбирают соответствующую симуляцию, убедитесь, что флажок шаблона стимула Обновления устанавливается, и нажмите Import.
Назад в Simulink, новый шаблон стимула будет автоматически установлен в блоке Stimulus верхнего уровня. Возвратите этот шаблон к любому PRBS
или SiSoftLinkStimulus_dq
как был ранее установлен.
В блоке Stimulus в Генераторе Strobe Clock Times выберите недавно созданный стимул SiSoftLinkStimulus
.
Примечание: шаблон SiSoftLinkStimulus перезаписывается каждый раз, когда этот процесс выполняется. Чтобы сохранить именованный шаблон стимула, откройте Model Explorer, обзор к Рабочему пространству модели и переименуйте SiSoftLinkStimulus в новое имя. Этот переименованный параметр сохранен наряду с остальной частью модели Simulink.
Генерация новых тактов системных часов для использования в Генераторе Strobe Clock Times выполняется с помощью SiSoft Quantum SI и пакета поддержки MATLAB Ссылка SiSoft.
Вот обзор необходимых шагов. Для получения дальнейшей информации при использовании Ссылки SiSoft, смотрите Интерфейс SerDes Toolbox для SiSoft Quantum Channel Designer and QSI Software. Для получения дополнительной информации о QSI смотрите www.sisoft.com. Обратите внимание на то, что, если вы ранее запустили Ссылку SiSoft на эту модель Simulink, можно начать с шага 3.
Начните при помощи менеджера SerDes IBIS-AMI экспортировать модели Tx и Rx. Убедитесь, что файл IBIS, файлы AMI и поля файлов DLL проверяются.
Используйте Ссылку SiSoft, чтобы Создать новый проект QSI.
В новом проекте QSI открывают диалоговое окно Параметров Симуляции и устанавливают параметр Выходные Такты системных часов на Да.
Запустите желаемую симуляцию 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];
Примечание: Если вы хотите сохранить несколько массивов тактов системных часов или переключатель между массивами, необходимо обновить название параметра тактов системных часов в clockTimesGen блоке MATLAB function в подсистеме Генератора Strobe Clock Times.
Вход параметр AMI ForwardClockOffset был добавлен к блоку DFEandCDR. Этот параметр имеет Целое число типа со Значением по умолчанию 0 и Областью значений от 0 до 64. В блоке DFEandCDR этот параметр управляет блоком Delay, который используется, чтобы задержаться, поступление показывают время до 64 выборок. Используя менеджера SerDes IBIS-AMI можно использовать эту задержку, чтобы настроить местоположение внешнего таймера относительно формы волны данных, как желаемый.
Например, вот глазковая диаграмма области времени с набором ForwardClockOffset к 5:
Отметьте, как касания DFE применяются в центре глаза вместо в ребрах глаза. С набором задержки к 14, касания DFE применяются в идеальном местоположении в ребре глаза:
Примечание: значения Задержки меньше, что 0 не окажет влияния на получившуюся форму волны.
Операцией передачи часов управляет зарезервированный параметр AMI Use_AMI_Clock_PDF. Изменение текущего значения этого параметра не поддерживается менеджером SerDes IBIS-AMI, таким образом, все обновления текущего значения сделаны от маски Генератора Strobe Clock Times с помощью переключателей Select External Clock Input.
Примечание: Если менеджер по IBIS-AMI уже открыт, вы, возможно, должны закрыться и вновь открыться для изменений, чтобы отобразиться.
Итоговая часть этого примера берет индивидуально настраиваемую модель Simulink и генерирует IBIS-AMI совместимые исполняемые файлы модели, IBIS и файлы AMI для передающего приемника часов.
Откройте диалоговое окно Block Parameter для Блока Configuration и нажмите на кнопку Open SerDes IBIS-AMI Manager.
Параметр входа IBIS-AMI Reserved Rx_Use_Clock_Input требуется для codegen работать правильно. Если этот параметр не присутствует в вашей модели, в то время как модель может codegen передающие часы свойства не включаться.
На вкладке Export в менеджере SerDes IBIS/AMI диалоговое окно.
Обновите имя модели Rx к clock_forward_rx
.
Обратите внимание на то, что угол Tx и Rx percentageis набор к 10
. Это будет масштабировать угловые значения аналоговой модели min / макс. угловые значения аналоговой модели +/-10%.
Проверьте, что модель Dual выбрана для Настроек Модели AMI Rx. Это создаст исполняемый файл модели, которые поддерживают и статистический (Init) и временной интервал (GetWave) анализ.
Установите Биты модели Rx игнорировать значение к 10
позволить достаточному количеству времени для формы волны внешнего таймера обосновываться во время симуляций области времени.
Установите Модели экспортировать в Rx только, поскольку мы только генерируем модель Rx.
Установите имя файла IBIS быть clock_forwarding_rx.ibs
Нажмите кнопку Export, чтобы сгенерировать модели в директории Target.
Получившийся файл AMI Rx будет похож на нормальный файл AMI Rx за двумя исключениями. Во-первых, AMI_Version установлен в 7,1. Вторым является включение зарезервированного параметра Rx_Use_Clock_Input. Поскольку оба из этих изменений от невыпущенной версии Спецификации IBIS, любой заставит этот файл AMI приводить AMI IBIS К СБОЮ Средство проверки (который находится в настоящее время на версии 7.0.1). Если это вызывает какие-либо проблемы в вашем инструменте EDA, можно хотеть пропустить выполнение Средства проверки AMI.
Эта передающая модель AMI часов требует инструмента EDA, который поддерживает BIRD 204.
Часы, передавая модель IBIS-AMI приемника теперь завершены и готовы быть протестированными в любом промышленном стандарте средство моделирования модели AMI, которое поддерживает BIRD 204.