Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

.Проектирование устройств и систем с высокоскоростными соединениями

.pdf
Скачиваний:
41
Добавлен:
15.11.2022
Размер:
21.68 Mб
Скачать

зей между блоками на короткое расстояние выполняют медным кабелем. Одним из стандартов в этой области является Infiniband. Спецификация Infiniband предполагает 1, 4 или 12 линий последовательных данных на скорости 2,5 Гбит/с на поток. Эта технология коммерчески доступна уже в течение многих лет и включает в себя кабели, соединители и протоколы.

Вопросы для самоконтроля

1.Почему дифференциальная схема передачи улучшает параметр EMI?

2.Что такое синфазное напряжение?

3.Каковы условия успешной работы синхронизации от источника?

4.Что общего и в чем различие между фазовой автоподстройкой частоты и выделением тактовой частоты и данных?

5.В чем различие между линейной, цифровой и полностью цифровой ФАПЧ?

6.В чем преимущество последовательного кросса перед параллельным?

7.В чем преимущества реализации сериализатора в виде вращающегося переключателя?

8.В чем недостатки реализации десериализатора в виде распределителя?

31

2. ИНТЕРФЕЙС ВЫСОКОСКОРОСТНОГО ВВОДА-ВЫВОДА SERDES

2.1. СТРУКТУРА ИНТЕРФЕЙСА SERDES

На рис. 2.1 представлены базовые блоки современной технологи скоростного ввода-вывода мультигигабитного SERDES. В этой технологии частота передачи сигнала даже может превосходить Fmax (максимальная частота переключения триггера в данной технологии или ее части).

Рис. 2.1. Блок-схема SERDES

Сериалайзер: преобразует параллельные n-разрядные данные, поступающие со скоростью y в последовательный поток данных на скорости n·y.

Десериалайзер: преобразует последовательный поток данных на скорости n·y в параллельные n-разрядные данные на скорости y.

Выравнивание: расположение входных данных в соответствии с их границами слов. Может быть использовано несколько различных механизмов – от автоматического обнаружения и выравнивания с помощью специальной зарезервированной после-

32

довательности бит (часто называют «запятой») до управляемого пользователем пропуска бит.

Управление тактированием: умножение частоты тактирования, деление частоты тактирования и выделение тактовой частоты.

FIFO (First In First Out)-буфер передачи данных: запоминает входные данные перед передачей.

Эластичный буфер приема (FIFO-буфер приема данных): необходим для систем, требующих коррекцию тактирования (согласование частоты передачи и приема данных).

Линейный интерфейс приема: аналоговая схема приема, включающая дифференциальный приемник, возможен активный или пассивный эквалайзер.

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

Линейное кодирование: кодирование данных в более «дружелюбный» к линии формат, т.е. устранение длинных последовательностей, когда нет переключений или сбалансированное соотношение 0 и 1 (это необязательный блок SERDES). В качестве линейных кодов могут быть использованы коды 4b/5b, 8b/10b, 64b/66b.

Линейное декодирование: декодирование из линейного кода в исходные данные (это необязательный блок SERDES).

Коррекция тактирования, связывание канала: позволяет корректировать различие между тактовой частотой передатчика и тактовой частотой приемника. Связывание канала обеспечивает коррекцию перекоса между несколькими каналами (это необязательная функция SERDES).

На рис. 2.2 приведен пример серийно выпускаемой реали-

зации SERDES в FPGA Xilinx.

SERDES работает на скоростях 3, 5 и даже 10 Гбит. Известно несколько решений, позволяющих работать на этих скоростях. Их основной компонент – многофазное тактирование. На рис. 2.3 приведена 4-фазная схема тактирования (тактовые сигналы имеют значения фаз 0°, 90°, 180° и 270°), в которой частота каждой фазы равна x/4, где x – битовая скорость последовательных данных. На рис. 2.4 приведена временная диаграмма ее работы.

33

Рис. 2.2. FPGA Virtex™-II Pro X RocketIO™

a

 

b

c

d

D Q

D Q

D Q

D

Q

Вход

 

 

 

 

0

90

180

270

 

4-фазный генератор

Рис. 2.3. 4-фазная схема тактирования приема последовательных данных

34

Рис. 2.4. Временная диаграмма 4-фазной схемы тактирования приема

2.2. СХЕМЫ ЛИНЕЙНОГО КОДИРОВАНИЯ

Линейное кодирование преобразует «сырые» данные к такому виду, который приемник сможет принять. Схема линейного кодирования должна обеспечить достаточное количество переключений сигнала для нормального функционирования механизма CDR. Она также должна обеспечивать средства выравнивания данных по границам слов с хорошим балансом по постоянному току (DC-баланс). Баланс по постоянному току – это равное число нулей и единиц на отрезке кода определенной длины. Необязательным может быть обеспечение коррекции часов, блочная синхронизация и связывание канала.

2.2.1. Схема кодирования 8b/10b

Схема кодирования 8b/10b была разработана IBM и широко адаптирована для разных проектов. Она используется в та-

ких технологиях, как Infiniband, Gigabit Ethernet, FiberChannel

и интерфейс XAUI для 10 Gigabit Ethernet. Схема кодирования использует табличный способ преобразования 8-битных слов

35

в 10-битные символы, которые обеспечивают достаточное число переходов для выделения тактовой частоты, например:

8b: 00000000 – > 10b: 1001110100 8b: 00000001 – > 10b: 0111010100.

Схема кодирования содержит 12 специальных символов – К-символов. DC-баланс в схеме кодирования 8b/10b достигается методом Running Disparity (RD или «текущий дисбаланс» количества 0 и 1). Самый простой способ достижения баланса состоит в разрешении использовать только символы с одинаковым числом 0 и 1, но их число ограничено. Вместо этого используется назначение двух разных символов одним и тем же данным (один символ обозначают как RD +, другой как RD –). В большинстве случаев один символ имеет 6 единиц и 4 нуля, а другой – наоборот. Общее число нулей и единиц отслеживается и следующий символ выбирается на основании того, чтобы сохранялся DC-баланс. В табл. 2.1 приведены примеры символов, в табл. 2.2 – все 12 К-символов. На рис. 2.5 приведена схема кодирования, в табл. 2.3 – правила выбора кодового символа. Имена символов, такие как D0.3 или K28.5, следуют из приведенной схемы кодирования: 5-битный блок представляет комбинации от 0 до 31, а 3-битный блок – комбинации от

0 до 7. K28.5 101(5) 11100(28).

На приемной стороне границы сериализованных символов размечаются с помощью запятой (comma). Запятая – это один или два символа, играющих роль разделителя или последовательности выравнивания. Эта последовательность либо предопределена, либо устанавливается. Приемник непрерывно сканирует входные данные для нахождения специфической последовательности. После ее нахождения десериализатор сбрасывает границы символов в соответствии с их новым положением. Запятая должна быть уникальной последовательностью. В качестве нее часто используется подмножество К-символов, состоящее из K28.1, K28.5, и K28.7. Все они имеют первые семь символов 1100000. Никакая другая последовательность данных или К-символов не содержит ее. Это является идеальным для целей выравнивания.

36

 

 

 

 

 

Таблица 2 . 1

 

 

Примеры символов кода 8b/10b

 

 

 

 

 

 

 

Имя

Hex

8 бит

RD –

 

RD +

D10.7

11101010

0101011110

 

0101010001

D31.7

FF

11111111

1010110001

 

0101001110

D4.5

A4

10100100

1101011010

 

0010101010

D0.0

00

00000000

1001110100

 

0110001011

D23.0

17

00010111

1110100100

 

0001011011

 

 

 

 

 

Таблица 2 . 2

 

 

К-символы кода 8b/10b

 

 

 

 

 

 

 

Имя

Hex

8 бит

RD –

 

RD +

K28.0

00011100

0011110100

 

1100001011

К28.1

00111100

0011111001

 

1100000110

К28.2

01011100

0011110101

 

1100001010

К28.3

01111100

0011110011

 

1100001100

К28.4

9 С

10011100

0011110010

 

1100001101

К28.5

10111100

0011111010

 

1100000101

К28.6

DC

11011100

0011110110

 

1100001001

К28.7

FC

11111100

001 111 1000

 

1100000111

К23.7

F7

11110111

1110101000

 

0001010111

К27.7

FB

11111011

1101101000

 

0010010111

К29.7

FD

11111101

1011101000

 

01000101 11

К 30.7

FE

11111110

0111101000

 

1000010111

Рис. 2.5. Схема кодирования

37

 

 

 

Таблица 2 . 3

 

Правила текущего дисбаланса

 

 

 

 

 

 

 

Предыдущее

Диспропорция

Выбор

 

Следующее

RD

слова данных

диспропорции

 

RD

–1

0

0

 

–1

–1

+ –2

+2

 

+1

+1

0

0

 

+1

+1

+ –2

–2

 

–1

Рис. 2.6. Поток данных со средствами выравнивания

Gigabit Ethernet, например, использует K28.5 в качестве запятой. На рис. 2.6 приведен пример потока данных со средствами выравнивания.

2.2.2. Схема кодирования 64b/66b, 64b/67b

Кодирование 64b/66b было предложено сообществом 10 Gigabit Ethernet для коммуникаций со скоростью 10 Гбит/с на базе

Ethernet (10GbE).

Существующие технологии не удовлетворяли новым требованиям. Например, связь с модулями физического уровня в интерфейсе XAUI для 10GbE осуществляется с помощью четырех соединений с нагрузкой 2,5 Гбит и линейной скоростью передачи 2,5·10/8 = 3,125 Гбит/с (накладные расходы SERDES при кодировании 8b/10b). Итого скорость передачи по физической линии составляет 12,5 Гбит/с, однако новые требования допускали только чуть более 10 Гбит/с. С другой стороны, в транспортной

38

технологии SONET используется лазер для передачи на скорости чуть более 10 Гбит/с. Лазер на большей скорости намного дороже. Поэтому для высокоскоростной связи между ИС на печатной плате появился интерфейс XFI (10G Framer Interface), а для связи с оптическими модулями физического уровня – интерфейс SFI

(SerDes Framer Interface) с кодом 64b/66b, накладные расходы ко-

торого оказались гораздо меньше, так что передача идет на ско-

рости 10·66/64 = 10,3125 Гбит/с.

Вместо таблицы соответствия при кодировании 8b/10b кодирование 64b/66b использует скремблирование совместно с не скремблируемыми последовательностями синхронизации и управления типами. На рис. 2.7 приведена схема кодирования 64b/66b.

Рис. 2.7. Схема кодирования 64b/66b

Скремблирование обеспечивает такое переупорядочивание данных, что они не содержат длинных последовательностей 0 и 1 и кажутся «случайными», но могут быть восстановлены (дескремблированы). Эти операции в схеме кодирования 64b/66b должны выполняться без дополнительной синхронизирующей информации, т.е. быть самосинхронизируемыми. Скремблер и дескремблер – это сдвиговые регистры с линейными обратными связями, как в примере на рис. 2.8 (последовательный самосинхронизируемый вариант). Они представляют аппаратную реализацию полинома x3+x2+1.

В схеме кодирования 64b/66b используется полином x58+x19+1. На скоростях 10GbE триггеры последовательной реализации могут просто не успевать переключаться. Ниже приведена функция P8Scrambler_58_19 на VHDL для реализации параллельного скремблера, в которой за один такт параллельно

39

преобразуется 8 разрядов данных. Таким образом, в 8 раз уменьшается частота работы скремблера/дескремблера.

Рис. 2.8. Схема скремблирования

VHDL программа-функция для реализации полинома x58+x19+1

function P8Scrambler_58_19 (scr: STD_LOGIC_VECTOR(58 downto 1); data_in: STD_LOGIC_VECTOR(7 downto 0)) return STD_LOGIC_VECTOR is

variable scrembler: STD_LOGIC_VECTOR(58 downto 1);

begin

 

scrembler(8):=

scr(58) xor scr(19) xor data_in(0);

scrembler(7):=

scr(57) xor scr(18) xor data_in(1);

scrembler(6):=

scr(56) xor scr(17) xor data_in(2);

scrembler(5):=

scr(55) xor scr(16) xor data_in(3);

scrembler(4):=

scr(54) xor scr(15) xor data_in(4);

scrembler(3):=

scr(53) xor scr(14) xor data_in(5);

scrembler(2):=

scr(52) xor scr(13) xor data_in(6);

scrembler(1):=

scr(51) xor scr(12) xor data_in(7);

scrembler(58 downto 57) := scr(50 downto 49); scrembler(56 downto 49) := scr(48 downto 41); scrembler(48 downto 41) := scr(40 downto 33); scrembler(40 downto 33) := scr(32 downto 25); scrembler(32 downto 25) := scr(24 downto 17); scrembler(24 downto 17) := scr(16 downto 9); scrembler(16 downto 9) := scr(8 downto 1);

return scrembler; end;

Существует два основных типа кадра в схеме кодирования 64b/66b. Основной кадр содержит 2-битную последовательность синхронизации 01 с последующими 64 битами данных. Данные скремблируются, а последовательность синхронизации – нет.

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]