Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Обработка высокочастотных цифровых данных на Spartan-2
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
DiMonstr
Как можно с помощью ПЛИС (Spartan-2) организовать обработку 16-разрядных данных, скорость передачи которых >1ГГц, т.е. пропускная способность каждой линии составляет 1 Гбит/сек ???
klop
Цитата(DiMonstr @ Oct 26 2006, 23:19) *
Как можно с помощью ПЛИС (Spartan-2) организовать обработку 16-разрядных данных, скорость передачи которых >1ГГц, т.е. пропускная способность каждой линии составляет 1 Гбит/сек ???


Боюсь что Spartan-2 в данном случае отдыхает. Внешняя гигагерцовая паралельная шина ето круто.
DiMonstr
Ничего подобного! Вы знаете, что на борту ПЛИС существует структура под названием Delay-Locked Loops? Если нет, то посмотрите и убедитесь сами, что он позволяет как умножать входную тактовую частоту, так и делить её. Мне интересны мнения спецов по этому поводу, т.е. как оптимально реализовать деление тактовой частоты до частоты не превышающей работу ПЛИС ???
Elresearch
У Spartan2 Input clock frequency (CLKDLLHF) max 200MHz. Даже у Virtex 5 FDLLHFMSMAX = 550MHz, так что DLL Вам не поможет.
ilya79
>>Virtex 5 FDLLHFMSMAX = 550MHz
Формально можно использовать входной DDR =550x2 . Ну а если по делу, то конечно я думаю что на SpartanII это просто не решаемо, а на V5 с большим гемороем (и то не факт).
Gate
Задача должна быть разбита на 2:
1. Ввод 16бит 1 ГГц и преобразование в более медленый широкий поток (в 64 бита 250 Мгц например).
2. Собственно обработка медленного потока.

1 на спартане не решаемо, 2 - легко. Если Вам нужен именно спартан, решайте 1 внешними схемами. Если к спартану не привязаны, берите любые фпга с lvds-входами на 1 Гц и вперед.
DiMonstr
Я сам присоединяюсь к мнению тех, кто высказал свои предположения по этому поводу, НО!...
Компетентные в этом вопросе люди убеждают, что задача решаема и именно на Спартане-2, который работает на частоте 200 МГц максимум.
В общем виде данное устройство сопряжения с ПК через PCI должно:
1) анализировать 16-битную шину данных, скорость обмена по которой 1 ГГц. Логические уровни соответствуют LVTTL.
2) обязательно иметь SRAM, для временного хранения данных, которые по запросу от ПК будут считываться по шине PCI уже на частоте 33 МГц.

Согласен с Gate, что задачу нужно разделить на две части, правда 2 чать - это дело десятое.
1. Каждую линию (их 16) нужно распараллелить на 8. Т.е преобразовать последовательный код каждой линии в параллельный. Причем, каждую из 16 линий необходимо подключить на 8 входов ПЛИС! Итого, получаем 128-битный поток данных 125 МГц. Схемотехнически этот вопрос можно решить двумя способами: внешними схемами и самой ПЛИС. Для решения задачи внешней схемой, есть два варианта: а) сигнал каждой линии подавать на общий вход D-триггера, а синхро со счетчика-делителя на /8; б) каждую сигнальную линию подавать на отдельный 8-разрядный регистр сдвига, которые будут тактироваться общим синхро 1 ГГц.
Правда эти 2 варианта не подходят, т.к. увеличивают размеры платы, количество деталей и другие затраты.
Поэтому и стоит задача - реализовать схемотехнику на ПЛИС с помощью внутренней её структуры Delay-Locked Loops. Данная система позволяет производить умножение входной частоты, а также делить её и сдвигать по фазе на 0, 90, 180,270 градусов. Сейчас пробую разобраться.
2. Собственно обработка медленного потока, который ПЛИС будет загонять в SRAM блоками и по мере её заполнения , ПК будет производить считывание с частотой работы шины PCI.

Кому интересна эта тема, высказывайте свои мнения и идеи.
klop
Цитата(DiMonstr @ Oct 27 2006, 20:20) *
б) каждую сигнальную линию подавать на отдельный 8-разрядный регистр сдвига, которые будут тактироваться общим синхро 1 ГГц.


Вот здесь нас ждет большой облом. Сдиговый регистр на 1 ГГц боюсь не заведется даже в Вирексе-5.
Gate
Цитата(DiMonstr @ Oct 27 2006, 20:20) *
1) анализировать 16-битную шину данных, скорость обмена по которой 1 ГГц. Логические уровни соответствуют LVTTL.

1. Я не верю, что можно передать 1Ггц с уровнями lvttl. lvpecl или lvds - да, может быть какие-нибудь 1.5-1.8 вольтовые дифференциальные стандарты типа sstl.
2. Городить внешний десериализатор 1:8 можно, но выгоды не вижу, по деньгам это будет примерно эквивалентно замене спартана на какой-нибудь виртекс с нормальными 1Ггц лвдс входами. Я с ксайлинксом не работаю, у альтеры stratix II имеет 1 Ггц входя (я не проверял!) и стоит ~$160.

ЗЫ Предполагается, что а)у Вас есть клок и б)он общий для 16 линий. Если это не так, то задача усложняется - надо fpga с блоками восстановления частоты.
xyzzy
V4 + ISERDES + XAPP705 ? Вот только с lvttl действительно непонятно.

http://direct.xilinx.com/bvdocs/publications/xapp705.pdf
Gate
Цитата(DiMonstr @ Oct 27 2006, 20:20) *
Поэтому и стоит задача - реализовать схемотехнику на ПЛИС с помощью внутренней её структуры Delay-Locked Loops. Данная система позволяет производить умножение входной частоты, а также делить её и сдвигать по фазе на 0, 90, 180,270 градусов. Сейчас пробую разобраться.

Вы не пропустите 1 ГГц через пин спартана.
Вы не построите синхронную схему с эквивалентным клоком в 1ГГц, даже если используете 4 клока 250 Мгц, сдвинутые последовательно на 90 градусов - из-за задержек Вы не сможете передавать данные между этими клоковыми доменами.
И немного философии: задача и метод ее решения должны принадлежать одному классу сложности. Иначе говоря, не надо конструировать болид формулы 1 из частей жигули, пусть даже и Калины smile.gif
Это значит, что, вероятно, можно, потратив кучу времени, сил и денег, сделать сбоящий дизайн на спартане в 1 экземпляре, который будет правльно работать несколько секунд в Вашем присутствии. Но задача приема 16 бит 1 ГГц требует использования другого класса устройств, нежели спартан. Кстати, и методы разводки там непросты, и ПП тоже не 2 слоя, и корпуса BGA, и разъемы не LPT port D25...
Flanker
Цитата(DiMonstr @ Oct 27 2006, 20:20) *
Поэтому и стоит задача - реализовать схемотехнику на ПЛИС с помощью внутренней её структуры Delay-Locked Loops. Данная система позволяет производить умножение входной частоты, а также делить её и сдвигать по фазе на 0, 90, 180,270 градусов. Сейчас пробую разобраться.


По опыту работы в SpartanII с CLKDLL заметил такую вещь - невозможно использовать все частоты (сдвинутые по фазе на 0, 90, 180,270 градусов) одновременно. Я в проекте использовал CLKDLL для умножения частоты на 2, при этом пробовал взять с этой же CLKDLL частоту поделенную на 2 - синтезатор этого сделать не дал (выдал ошибку). Пришлось использовать вторую CLKDLL или делить счетчиком.
DiMonstr
Вопрос по DataSheet. У модуля автоподстройки частоты DLL есть такой параметр: TIPTOL Input clock period tolerance = 1.0 ns.
Т.е. входной сигнал может быть подан с частотой 1 ГГц, так я понимаю или нет?
daemonDX
Страница 13, DS001-3 (v2.7) September 3, 2003
Period Tolerance: the allowed input clock period change in nanoseconds.
"Толерантность периода: допустимое измненение периода входного клока в наносекундах". Это показатель допустимой нестабильности периода опорного клока.
iosifk
Цитата(DiMonstr @ Oct 26 2006, 23:19) *
Как можно с помощью ПЛИС (Spartan-2) организовать обработку 16-разрядных данных, скорость передачи которых >1ГГц, т.е. пропускная способность каждой линии составляет 1 Гбит/сек ???

По поводу этого обсуждения, чтобы не месить воду в ступе:
Хочет человек сделать логический анализатор. Так он писал...
Конечно, 1ГГц в ПЛИС не загонишь. Ну, "так давайте его превратим" и так далее...
Вопрос - вот в чем. А что Вы хотите иметь - примерную картинку или что-то похожее на входной сигнал? Кто Вам сказал, что Вы получите СТАБИЛЬНОЕ устройство на DLL? Какие временные и температурные характеристики имеет Спартан? Калибровать прект - КАК на 1ГГц. Вам не приходит в голову почему проблемы с PCI-клоком на 33 МГц так тщательно пережевываются? А что у нас там с длинной дорожек для сигналов? А стабильность емкости PCB на 1ГГц? А что нам Аджиленты и Тектрониксы не указ? Мы вот тут сядем, обсудим, сделаем... Задавим их всех простым Спартаном, да еще 2-м.
Ну и так далее...
Я участвовал в большом проекте по разработке прибора для проверки DIMMов, это был такой огромный анализатор аналоговых и цифровых сигналов на 144 входа. Так вот при тактовой в 133 МГц в Виртексе-2 уже требовалась ручная разводка и много еще чего, о чем здесь не пишу.
Так что все мои вопросы - проверены практикой...
Удачи Вам Дима...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.