exponenta event banner

serdes. CDR

Выполняет функцию восстановления данных синхронизации

Описание

serdes.CDR Система object™ обеспечивает время дискретизации тактового сигнала и оценивает символы данных в приемнике с использованием модели CDR отслеживания фаз первого порядка. Дополнительные сведения см. в разделе Восстановление синхронизации и данных в системе SerDes.

Для предоставления местоположения данных синхронизации:

  1. Создать serdes.CDR и задайте его свойства.

  2. Вызовите объект с аргументами, как если бы это была функция.

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

cdr = serdes.CDR возвращает объект CDR, который определяет время дискретизации часов и оценивает символ данных согласно алгоритму CDR Bang-Bang. Он не возвращает и не изменяет входящую форму сигнала.

cdr = serdes.CDR(Name,Value) задает свойства, используя одну или несколько пар имя-значение. Заключите каждое имя свойства в кавычки. Неопределенные свойства имеют значения по умолчанию.

Пример: cdr = serdes.CDR('Count',8) возвращает объект CDR с ранним или поздним порогом счетчика CDR, равным 8.

Свойства

развернуть все

Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.

Если свойство настраивается, его значение можно изменить в любое время.

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Главный

Ранний или поздний порог подсчета CDR для запуска фазового обновления, заданного как безразмерное действительное положительное целое ≥4. Увеличение значения Count обеспечивает более стабильную выходную тактовую фазу за счет скорости сходимости. Поскольку битовые решения принимаются на выходе тактовой фазы, более стабильная тактовая фаза имеет лучшую частоту битовых ошибок (BER).

Count также управляет полосой пропускания CDR, которая приблизительно вычисляется с использованием уравнения:

Полоса пропускания =  1Символьное время ·   Число ранних/поздних пороговых значений·  Шаг

Типы данных: double

Разрешение фазы синхросигнала, определяемое как действительный скаляр в доле времени символа. Step - обратное число фазовых регулировок в CDR.

Типы данных: double

Сдвиг фазы синхронизации, заданный как действительный скаляр в диапазоне [-0,5,0,5] в доле времени символа. PhaseOffset используется для ручного сдвига функции распределения вероятности синхронизации (PDF) для лучшей частоты битовых ошибок (BER).

Типы данных: double

Ухудшение смещения опорного синхросигнала, указанное как действительный скалярный ≤300 в частях на миллион (ppm). ReferenceOffset - отклонение между частотой генератора передатчика и частотой генератора приемника.

Типы данных: double

Напряжение мета-устойчивости защелки выборки, заданное как действительный скаляр в вольтах. Если напряжение выборки данных находится в пределах области (+/-Sensitivity), существует 50% вероятность битовой ошибки..

Типы данных: double

Расширенный

Время длительности одного символа, определяемое как действительный скаляр в s.

Типы данных: double

Равномерный временной шаг формы сигнала, определяемый как действительный скаляр в s.

Типы данных: double

Схема модуляции, указанная как 2, 3 или 4.

Значение модуляцииСхема модуляции
2Невозврат к нулю (NRZ)
3Трехуровневая амплитудно-импульсная модуляция (PAM3)
4Четырехуровневая амплитудно-импульсная модуляция (PAM4)

Примечание

IBIS не поддерживает PAM3 схему модуляции. Поэтому нельзя экспортировать в модель IBIS-AMI, если схема модуляции является PAM3.

Типы данных: double

Форма типа входной волны:

  • 'Sample' - входной сигнал «выборка за выборкой».

  • 'Impulse' - входной сигнал импульсной характеристики.

Типы данных: char

Использование

Синтаксис

Описание

y = cdr(x)

Входные аргументы

развернуть все

Входной сигнал основной полосы частот. Вход в CDR должен быть применен как одна выборка за раз, а не как вектор.

Выходные аргументы

развернуть все

Относительная восстановленная фаза тактового сигнала, возвращенная в виде единиц SymbolTime в диапазоне [0,1].

Шина часов AMI, возвращаемая как структура, состоящая из:

  • ClockTime - время, затрачиваемое на выборку сигнала данных.

  • clockValidOnRising - допустимое значение тактового времени на переднем фронте сигнала

Шина, содержащая дополнительные внутренние сигналы CDR, возвращаемые в виде структуры, состоящей из:

  • clockPhase - относительная фаза синхронизации в единицах SymbolTime в диапазоне [0,1].

  • symbolRecovered - символ, восстановленный из сигнала данных в ClockTime.

  • voltageSample - напряжение, наблюдаемое из сигнала данных в ClockTime.

  • PAM4Threshold - Расчетный верхний глаз при PAM4 пороге.

  • CDRedVoltage - напряжение, наблюдаемое из сигнала данных в ClockTime - SymbolTime/2.

  • CDRCounter - внутренний счетчик CDR bang-bang, используемый для запуска выборок.

  • Счетчик CDREarureCounter - аккумулированный (или отфильтрованный) сигнал CDR bang-bang, используемый для запуска обновления до фазы CDR.

  • PAM4SymbolMiddleVoltage - Оцененное напряжение символа PAM4 внутреннего глаза внешний конверт, чтобы оценить порог PAM4.

  • PAM4OuterVoltage - Оцененное внешнее напряжение конверта PAM4, чтобы оценить порог PAM4.

  • EyeHeightAbsAve - Оценочная глазная высота.

Функции объекта

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

release(obj)

развернуть все

stepЗапустить алгоритм объекта System
releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
resetСброс внутренних состояний объекта System

Примеры

свернуть все

В этом примере показано, как восстановить распределение синхросигналов с помощью serdes.CDR object™ системы.

Использовать время символа, равное 100 ps и 16 выборок на символ. Канал имеет 5 Потеря дБ.

SymbolTime = 100e-12;
SamplesPerSymbol = 16;
dt = SymbolTime/SamplesPerSymbol;
loss = 5;
chan = serdes.ChannelLoss('Loss',loss,'dt',dt,...
       'TargetFrequency',1/SymbolTime/2,'RiseTime',SamplesPerSymbol/4*dt);

Создайте случайный шаблон данных, используя псевдослучайную двоичную последовательность порядка 10.

ord = 10;                       %PRBS order
nrz=prbs(ord,2^ord-1);
nrzPattern = nrz(:)' - 0.5;     %[0,1] --> [-0.5,0.5];
ChannelPulseResponse = impulse2pulse(chan.impulse, SamplesPerSymbol, dt);
waveprbs = pulse2wave(ChannelPulseResponse(:,1),nrzPattern,SamplesPerSymbol);
wave2 = [waveprbs; waveprbs];

Создайте объект CDR, использующий схему модуляции NRZ.

CDR1 = serdes.CDR('Modulation',2,'Count',8,'Step',1/64,...
       'SymbolTime',SymbolTime,'SampleInterval',dt);

Инициализируйте выходные данные.

phase = zeros(1,length(wave2));
CDRearlyLateCount = zeros(1,length(wave2));

Подавайте сигнал по одной выборке за раз через объект CDR.

for ii = 1:length(wave2)
      [phase(ii), ~, optional] = CDR1(wave2(ii));
      CDRearlyLateCount(ii) = optional.CDRearlyLateCount;
end

Постройте график для глаз с распределением восстановленных синхросигналов, синхронизирующей фазой и временем, а также порогом раннего/позднего подсчета и временем.

t = (0:length(wave2)-1)/SamplesPerSymbol;
teye = (0:SamplesPerSymbol-1)/SamplesPerSymbol;
eyed = reshape(wave2,SamplesPerSymbol,[]);
 figure,
subplot(2,2,[1,3]), yyaxis left, plot(teye,eyed, '-b'),
title('Eye Diagram with Recovered Clock Distribution')
xlabel('Symbol Time'), ylabel('Voltage')
yyaxis right,
histogram(phase,SamplesPerSymbol/2)
set(gca,'YTick',[])
subplot(2,2,2), plot(t,phase)
xlabel('Number of Symbols'), ylabel('Symbol Time');
title('Clock Phase vs. Time')
subplot(224), plot(t,CDRearlyLateCount)
xlabel('Number of Symbols'), ylabel('Count')
title('Early/Late Count Threshold vs. Time')

Figure contains 3 axes. Axes 1 with title Eye Diagram with Recovered Clock Distribution contains an object of type histogram. Axes 2 with title Clock Phase vs. Time contains an object of type line. Axes 3 with title Early/Late Count Threshold vs. Time contains an object of type line.

Расширенные возможности

.
Представлен в R2019a