Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PROTEQ - протокол обмена для Virtex 6
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
dsmv
Всем доброго времени суток.

Сделал проект для связи через гигабитные линии Virtex 6 с использованием кодировки 64/67;

На модели уже работает.

Страница проекта: http://ds-dev.ru/projects/proteq/wiki

dsmv
Если кому интересно.

Заработала передача между двумя ПЛИС Virtex 6; Восемь линий по 5 Гбит/с. Далее - в PCI Express. В данный момент скорость ограничена PCI Express, на тесте показывает 2794 Мбайт/с.


Расчётная скорость передачи - 4485 Мбайт/с.




dsmv
Что хотелось бы обсудить:

1. Цель проекта - передача данных от АЦП через линию с возможными одиночными ошибками. Не должно быть переполнения FIFO при возникновении ошибки.

2. Система тестов - в проекте существует группа тестов и скрипт для их запуска.

3. Возможность применения OVM/UVM для тестов.










akorud
Нам интересно, так как думаем над чем-то подобным для своего проекта (правда не АЦП).
Мы правда пока смотрим в сторону Xilinx Aurora, интересно "примеряли" ли вы его, если да - то что было поводом для разработки собственного решения?
dsmv
Цитата(akorud @ Apr 11 2012, 15:41) *
Нам интересно, так как думаем над чем-то подобным для своего проекта (правда не АЦП).
Мы правда пока смотрим в сторону Xilinx Aurora, интересно "примеряли" ли вы его, если да - то что было поводом для разработки собственного решения?


Да, у нас на фирме его применяли. Для скорости 3.125 ГГц, и даже система работала без ошибок.

Недостаток aurora - нет контроля правильности передачи. Я этого опасаюсь. С ростом частоты передачи вероятность ошибки возрастает. Вот сейчас у меня проверяется PROTEQ, за час работы зафиксировано 13 ошибок CRC- они все исправлены протоколом. Это на скорости 5 Гбит/с. Вот из-за того, что я не могу гарантировать передачу без ошибок по MGT линии я стал делать этот проект. Я считаю, что даже одна ошибка за 10 часов - недопустимо.








akorud
Цитата(dsmv @ Apr 11 2012, 15:42) *
Да, у нас на фирме его применяли. Для скорости 3.125 ГГц, и даже система работала без ошибок.

Недостаток aurora - нет контроля правильности передачи. Я этого опасаюсь. С ростом частоты передачи вероятность ошибки возрастает. Вот сейчас у меня проверяется PROTEQ, за час работы зафиксировано 13 ошибок CRC- они все исправлены протоколом. Это на скорости 5 Гбит/с. Вот из-за того, что я не могу гарантировать передачу без ошибок по MGT линии я стал делать этот проект. Я считаю, что даже одна ошибка за 10 часов - недопустимо.

Спасибо, мы будем пробовать где-то через 3-4 месяца. У нас по архитектуре будет несколько Spartan 6 и что-то бОльше в центре (может быть даже Zynq).
Хотелось бы уточнить - можно ли будет попробовать ваше решение, и можно ли думать (и на каких условиях) над использованием его в коммерческом проекте?
dsmv
Цитата(akorud @ Apr 12 2012, 11:15) *
Спасибо, мы будем пробовать где-то через 3-4 месяца. У нас по архитектуре будет несколько Spartan 6 и что-то бОльше в центре (может быть даже Zynq).
Хотелось бы уточнить - можно ли будет попробовать ваше решение, и можно ли думать (и на каких условиях) над использованием его в коммерческом проекте?


Применять PROTEQ можно свободно. Как и для всех остальных open-source проектов - на свой страх и риск. Есть пожелание - рассказать о результатах и проблемах.


Есть только нюанс - Spartan 6 не поддерживает аппаратно кодировку 64/67, но возможно это можно будет сделать на логике.




AsJohnAs
У вас применяется код 64b/67b, но в Xilinx Aurora применяется 8b/10b. Т.е система кодирования у xilinx применена более мощная.

Вы делали сравнение вашей системы и Xilinx Aurora на одних и тех-же линиях.
Когда тестировали свою систему как проводили тесты? Аттенюаторы на линии или там подключение внешних генераторов или еще что. Интересен сам способ тестирования.
dsmv
Цитата(AsJohnAs @ Apr 13 2012, 14:36) *
У вас применяется код 64b/67b, но в Xilinx Aurora применяется 8b/10b. Т.е система кодирования у xilinx применена более мощная.

Вы делали сравнение вашей системы и Xilinx Aurora на одних и тех-же линиях.
Когда тестировали свою систему как проводили тесты? Аттенюаторы на линии или там подключение внешних генераторов или еще что. Интересен сам способ тестирования.


Есть вариант Aurora с кодировкой 64/66, но только для варианта с четырьмя линиями. Мне нужно восемь.

На одном и том же оборудовании сравнения я не делал. В общем мне это не интересно и времени на это нет.


В данный момент сделан проект для нашего модуля FMC106P. На нём две ПЛИС Virtex6 - LX130T-2 и LX240T-1; LX130 подключён к PCI Express v2.0 x8 и FMC субмодулю. Между ПЛИС есть восемь MGT линий. LX240T формирует поток на максимально возможной скорости (с учётом сигнала готовности). Это псевдослучайная последовательность - она формируется в компоненте prq_connect_fifo. Поток передаётся на LX130 и далее в PCI Express. Прогрмма принимает поток данных и его анализирует. Причём проверка производится в двух программных потоках - это позволяет делать проверку в реальном масштабе времени.

К сожалению, сегодня я зафикисировал сбой - где-то произошло смещение слова и поток пошёл неправильным. Но следующи запуск был успешным, и в течении 6 часов модуль работал без ошибок, средняя скорость 2785 Мбайт/с

Обе ПЛИС получают опорные 156.25 МГц от одного генератора.




dsmv
На модуле FMC106P тестом подтверждена скорость обмена 4484 Мбайт/с.

Это для восьми линий на скорость 5 Гбит/с.





dsmv
Если кому интересно - 24.11.2012 у меня будет доклад на конференции в МФТИ.


Тема доклада: "PROTEQ - протокол передачи данных для ПЛИС Virtex 6"

Название секции: "Секция высокопроизводительных вычислительных систем"

Более подробно здесь: http://conf55.mipt.ru/info/main/

dsmv
Доклад прошёл в тёплой дружеской обстановке.


Тект и презентация здесь: http://ds-dev.ru/projects/proteq/wiki/Публикации




dm.pogrebnoy
Скажите, Дмитрий, а можно ли заменить гигабитными трансиверами параллельную синхронную шину данных? У нас сейчас в устройстве данные передаются через разъем - несколько десятков диф. пар в режиме DDR, скорость около 300/600(DDR) МГц, получается поток около 4,8 Гбайт/с. У меня витает идея всю эту жуть (жуть, потому что бывает, что разъем не контачит) заменить на 5-10 гигабитных линий? Можно ли получить изначальный синхронный поток на приемной стороне? Возможно вопрос детский, с гигабитными линиями дела пока вообще не имел. Может быть есть что почитать по этому вопросу?

PS Прочитал статью, очень интересно, и есть такое впечатление что данное решение помогло бы в моей задаче.
dsmv
Цитата(dm.pogrebnoy @ Nov 26 2012, 11:58) *
Скажите, Дмитрий, а можно ли заменить гигабитными трансиверами параллельную синхронную шину данных? У нас сейчас в устройстве данные передаются через разъем - несколько десятков диф. пар в режиме DDR, скорость около 300/600(DDR) МГц, получается поток около 4,8 Гбайт/с. У меня витает идея всю эту жуть (жуть, потому что бывает, что разъем не контачит) заменить на 5-10 гигабитных линий? Можно ли получить изначальный синхронный поток на приемной стороне? Возможно вопрос детский, с гигабитными линиями дела пока вообще не имел. Может быть есть что почитать по этому вопросу?
Изначальный поток получить конечно можно, но в моём случае он будет на другой более высокой частоте и разделённый на пакеты по 256 слов. Для меня это совершенно не критично.


Для дифф пар на высоких частотах (5ГГц) предъявляются повышенные требования к трассировке на печатной плате, но они не сильно отличаются от дифф пар на 600 МГц. И поскольку пар меньше, то их и развести проще. И пары не обязательно должны быть одинаковой длины - это тоже упрощает трассировку.




Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.