Перейти к содержанию
    

Обработка высокочастотных цифровых данных на Spartan-2

Как можно с помощью ПЛИС (Spartan-2) организовать обработку 16-разрядных данных, скорость передачи которых >1ГГц, т.е. пропускная способность каждой линии составляет 1 Гбит/сек ???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как можно с помощью ПЛИС (Spartan-2) организовать обработку 16-разрядных данных, скорость передачи которых >1ГГц, т.е. пропускная способность каждой линии составляет 1 Гбит/сек ???

 

Боюсь что Spartan-2 в данном случае отдыхает. Внешняя гигагерцовая паралельная шина ето круто.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ничего подобного! Вы знаете, что на борту ПЛИС существует структура под названием Delay-Locked Loops? Если нет, то посмотрите и убедитесь сами, что он позволяет как умножать входную тактовую частоту, так и делить её. Мне интересны мнения спецов по этому поводу, т.е. как оптимально реализовать деление тактовой частоты до частоты не превышающей работу ПЛИС ???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Spartan2 Input clock frequency (CLKDLLHF) max 200MHz. Даже у Virtex 5 FDLLHFMSMAX = 550MHz, так что DLL Вам не поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>Virtex 5 FDLLHFMSMAX = 550MHz

Формально можно использовать входной DDR =550x2 . Ну а если по делу, то конечно я думаю что на SpartanII это просто не решаемо, а на V5 с большим гемороем (и то не факт).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Задача должна быть разбита на 2:

1. Ввод 16бит 1 ГГц и преобразование в более медленый широкий поток (в 64 бита 250 Мгц например).

2. Собственно обработка медленного потока.

 

1 на спартане не решаемо, 2 - легко. Если Вам нужен именно спартан, решайте 1 внешними схемами. Если к спартану не привязаны, берите любые фпга с lvds-входами на 1 Гц и вперед.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я сам присоединяюсь к мнению тех, кто высказал свои предположения по этому поводу, НО!...

Компетентные в этом вопросе люди убеждают, что задача решаема и именно на Спартане-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.

 

Кому интересна эта тема, высказывайте свои мнения и идеи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

б) каждую сигнальную линию подавать на отдельный 8-разрядный регистр сдвига, которые будут тактироваться общим синхро 1 ГГц.

 

Вот здесь нас ждет большой облом. Сдиговый регистр на 1 ГГц боюсь не заведется даже в Вирексе-5.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) анализировать 16-битную шину данных, скорость обмена по которой 1 ГГц. Логические уровни соответствуют LVTTL.

1. Я не верю, что можно передать 1Ггц с уровнями lvttl. lvpecl или lvds - да, может быть какие-нибудь 1.5-1.8 вольтовые дифференциальные стандарты типа sstl.

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

V4 + ISERDES + XAPP705 ? Вот только с lvttl действительно непонятно.

 

http://direct.xilinx.com/bvdocs/publications/xapp705.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поэтому и стоит задача - реализовать схемотехнику на ПЛИС с помощью внутренней её структуры Delay-Locked Loops. Данная система позволяет производить умножение входной частоты, а также делить её и сдвигать по фазе на 0, 90, 180,270 градусов. Сейчас пробую разобраться.

Вы не пропустите 1 ГГц через пин спартана.

Вы не построите синхронную схему с эквивалентным клоком в 1ГГц, даже если используете 4 клока 250 Мгц, сдвинутые последовательно на 90 градусов - из-за задержек Вы не сможете передавать данные между этими клоковыми доменами.

И немного философии: задача и метод ее решения должны принадлежать одному классу сложности. Иначе говоря, не надо конструировать болид формулы 1 из частей жигули, пусть даже и Калины :)

Это значит, что, вероятно, можно, потратив кучу времени, сил и денег, сделать сбоящий дизайн на спартане в 1 экземпляре, который будет правльно работать несколько секунд в Вашем присутствии. Но задача приема 16 бит 1 ГГц требует использования другого класса устройств, нежели спартан. Кстати, и методы разводки там непросты, и ПП тоже не 2 слоя, и корпуса BGA, и разъемы не LPT port D25...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поэтому и стоит задача - реализовать схемотехнику на ПЛИС с помощью внутренней её структуры Delay-Locked Loops. Данная система позволяет производить умножение входной частоты, а также делить её и сдвигать по фазе на 0, 90, 180,270 градусов. Сейчас пробую разобраться.

 

По опыту работы в SpartanII с CLKDLL заметил такую вещь - невозможно использовать все частоты (сдвинутые по фазе на 0, 90, 180,270 градусов) одновременно. Я в проекте использовал CLKDLL для умножения частоты на 2, при этом пробовал взять с этой же CLKDLL частоту поделенную на 2 - синтезатор этого сделать не дал (выдал ошибку). Пришлось использовать вторую CLKDLL или делить счетчиком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос по DataSheet. У модуля автоподстройки частоты DLL есть такой параметр: TIPTOL Input clock period tolerance = 1.0 ns.

Т.е. входной сигнал может быть подан с частотой 1 ГГц, так я понимаю или нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Страница 13, DS001-3 (v2.7) September 3, 2003

Period Tolerance: the allowed input clock period change in nanoseconds.

"Толерантность периода: допустимое измненение периода входного клока в наносекундах". Это показатель допустимой нестабильности периода опорного клока.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как можно с помощью ПЛИС (Spartan-2) организовать обработку 16-разрядных данных, скорость передачи которых >1ГГц, т.е. пропускная способность каждой линии составляет 1 Гбит/сек ???

По поводу этого обсуждения, чтобы не месить воду в ступе:

Хочет человек сделать логический анализатор. Так он писал...

Конечно, 1ГГц в ПЛИС не загонишь. Ну, "так давайте его превратим" и так далее...

Вопрос - вот в чем. А что Вы хотите иметь - примерную картинку или что-то похожее на входной сигнал? Кто Вам сказал, что Вы получите СТАБИЛЬНОЕ устройство на DLL? Какие временные и температурные характеристики имеет Спартан? Калибровать прект - КАК на 1ГГц. Вам не приходит в голову почему проблемы с PCI-клоком на 33 МГц так тщательно пережевываются? А что у нас там с длинной дорожек для сигналов? А стабильность емкости PCB на 1ГГц? А что нам Аджиленты и Тектрониксы не указ? Мы вот тут сядем, обсудим, сделаем... Задавим их всех простым Спартаном, да еще 2-м.

Ну и так далее...

Я участвовал в большом проекте по разработке прибора для проверки DIMMов, это был такой огромный анализатор аналоговых и цифровых сигналов на 144 входа. Так вот при тактовой в 133 МГц в Виртексе-2 уже требовалась ручная разводка и много еще чего, о чем здесь не пишу.

Так что все мои вопросы - проверены практикой...

Удачи Вам Дима...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...