В этом примере показано, как создать подробные модели различных типов циклов восстановления синхронизации последовательного канала, таких как Alexander (bang-bang), Meuller-Muller и Hogg & Chu.
Чтобы точно моделировать цикл восстановления тактового сигнала, представление времени фронта тактового сигнала и связанная с ним выборка сигнала данных должны быть как можно более точными. В этом примере показан способ выполнения этого в модели, которая использует фиксированное время дискретной выборки шага. Этот метод упакован в блок Clocked Sampler, который моделирует как тактовый генератор, так и защелку выборки данных.
Поведение генератора синхросигналов и защелки выборки данных очень похожи для различных типов циклов восстановления синхросигналов. Но поведение и реализация фазового детектора и петлевого фильтра могут варьироваться гораздо более широко. Например, для контура восстановления синхросигнала Александра фазовое обнаружение основано на сравнении логических значений, зафиксированных на возрастающем и падающем фронтах синхросигнала. В отличие от этого, обнаружение фазы Хогга и Чу сравнивает синхронизацию заднего фронта синхросигнала с временем пересечения порога данных, и обнаружение фазы Мёллера-Мюллера зависит исключительно от выборки напряжения на скорости передачи в бодах. Структура модели цикла восстановления синхросигналов позволяет максимально легко учесть эти различия.
Откройте модель SerDesClockRecovery, присоединенную к этому примеру.
open('SerDesClockRecovery.slx');



Для формирования сигнала данных для восстановления тактового сигнала в этой модели используется генератор данных, управляющий аналоговым каналом с потерями. Вставляют дополнительную задержку, чтобы ввести смещение задержки относительно стимула. Задержанный сигнал данных возбуждает один блок Clocked Sampler, который подает тактовый сигнал и выборки данных на три различных фильтра цикла: фильтр цикла Александра, фильтр цикла Мёллера-Миллера и фильтр цикла Хогга и Чу. Можно выбрать выход любого из этих трех петлевых фильтров в качестве сигнала обратной связи для управления синхронизированным дискретизатором с помощью предусмотренных переключателей. Вставьте одну задержку выборки, чтобы избежать алгебраического цикла.
Используйте отображение области для просмотра сигнала данных и сигнала обратной связи восстановления синхронизации.
Clocked Sampler, Alexander Loop Filter, Meuller-Muller Loop Filter и Hogg & Chu Loop Filter реализованы как системные объекты. Пример содержит исходный код для этих классов системных объектов. Эта структура кода была выбрана для максимально четкого представления алгоритмической взаимосвязи между Clocked Sampler и фильтром цикла. Чтобы реализовать эту функциональность в приемнике SerDes Toolbox, необходимо объединить алгоритмическое содержимое в один класс объектов, который больше напоминает класс объектов serdes.cdr.
В синхронизированном дискретизаторе времена нарастания и уменьшения фронта тактового сигнала представляются в виде чисел с плавающей запятой, которые вычисляются для включения эффектов фазового шума и частоты сдвига тактового сигнала, а также сигнала управления сдвигом периода. Когда время фронта синхронизации больше, чем предыдущее время выборки, но меньше, чем текущее время выборки, сигнал данных во время фронта синхронизации дискретизируется с использованием линейной интерполяции между текущим и предыдущим значениями сигнала данных. Значение выборки переднего фронта, значение выборки заднего фронта, значение тактового сигнала и записанное время синхронизации обновляются в момент времени выборки, следующий за каждым фронтом синхронизации. Синхронизация в фильтре контура не является критической, и обработка фильтра контура может быть выполнена во время выборки, когда фильтр контура принимает переход тактового сигнала.
Контур восстановления синхросигнала Александра определяет фазу синхросигнала, определяя, соответствует ли знак сигнала данных на заднем фронте синхросигнала знаку сигнала данных на переднем фронте синхросигнала, возникшему либо до, либо после заднего фронта. Если знак у заднего края совпадает со знаком у предыдущего переднего края, но не с последующим передним краем, то часы являются ранними. И наоборот, если знак у падающего края совпадает со знаком у последующего переднего края, но не со знаком у предыдущего переднего края, то часы опаздывают. Петлевой фильтр - это счетчик «вверх-вниз», который выдает либо положительный (ранний), либо отрицательный (поздний) импульс при переполнении. Подробное описание цикла восстановления синхронизации Alexander см. в разделе Восстановление синхронизации и данных в системе SerDes.
Начальная конфигурация модели SerDesClockRecovery выбирает выходной сигнал фильтра Александровского контура для управления фазой тактового сигнала в синхронизированном семплере.
Выполните моделирование и постройте график временной истории и гистограммы восстановленной фазы синхронизации. Сохраните временную историю восстановленной фазы часов в базовой рабочей области, чтобы можно было анализировать ее по своему выбору.
simout = sim(gcs); ctBB = plotClockTimes(simout);




Алгоритм восстановления тактового сигнала Мёллера-Мюллера предполагает, что форма сигнала данных изменяется быстрее всего, когда происходит переход между значениями символов данных, такими как переход от единицы к нулю для сигнала данных NRZ. Это предположение позволяет контуру восстановления тактового сигнала использовать одно количественное напряжение на символ, что является преимуществом при высоких скоростях передачи данных. Оценка временной ошибки для примера фильтра цикла Мёллера-Мюллера берется из CLOCK AND DATA RECOVERY FOR HIGH-SPEED ADC-BASED RECEIVERS, раздел 2.3.1

где
- предыдущий образец напряжения
, - текущий образец напряжения, -
предыдущее значение запертого символа и -
текущее значение запертого символа.
Чтобы оценить отклик цикла восстановления тактового сигнала Мёллера-Мюллера, переместите переключатель Filter Select 1 во второй входной порт. Выполните моделирование и добавьте временную историю восстановленной фазы синхронизации и гистограмму фазы синхронизации к цифрам, которые уже были созданы для цикла восстановления синхронизации Alexander. Сохраните временную историю фазы часов в базовом рабочем пространстве, чтобы ее можно было проанализировать позже.
set_param([gcs '/Filter Select 1'],'sw','0'); simout = sim(gcs); ctMM = plotClockTimes(simout);




Алгоритм восстановления тактового сигнала Hogg & Chu выполняет относительно прямое измерение тактовой фазы путем измерения времени между пороговым пересечением сигнала данных и задним фронтом восстановленного тактового сигнала. Хотя блоки могут быть добавлены в примерную модель для непосредственного измерения времени пересечения порога сигнала данных, фильтр Hogg & Chu Loop в этом примере использует упрощающее приближение того, что наклон сигнала данных в области пересечения порога является постоянным. Как оценивается, как только пороговое пересечение было подтверждено выборкой на следующем фронте тактового сигнала, временная ошибка равна

где
- ранее обнаруженное значение символа данных
, - напряжение, записанное на предыдущей границе синхронизации, и -
максимальная амплитуда сигнала данных.
Чтобы оценить отклик цикла восстановления тактового сигнала Hogg & Chu, переместите переключатель Fiter Select 2 во второй входной порт. Выполните моделирование и добавьте временную историю восстановленной фазы синхронизации и гистограмму фазы синхронизации к цифрам, которые уже были созданы для циклов восстановления часов Александра и Мёллера-Мюллера. Сохраните временную историю фазы часов в базовом рабочем пространстве, чтобы ее можно было проанализировать позже.
set_param([gcs '/Filter Select 2'],'sw','0'); simout = sim(gcs); ctHC = plotClockTimes(simout);



