Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: реализация DDC на плис с тактовой 250 МГц
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
koliyh
Народ, подскажите - есть необходимость реализовать DDC на плис (cicloneIII) тактовая с ацп 250 МГц. Кто-нибудь сталкивался с подобным, реализуемо? какие могут быть сложности?
soldat_shveyk
250 МГц для сложного проекта на CycloneIII вряд ли пойдет.
Даже если возьмете самый лучший чип по быстродействию, лучше поделить клок на 2 при первой же возможности: сделали первый каскад фильтрации и децимации на 2, и сразу формируете новый клок 125 МГц, от которого будет пахать вся остальная математика.
Вообще, Cyclone III - недорогое семейство со скромными характеристиками, серьезные вещи лучше делать на Stratix покления II и выше.
У меня Stratix II GX с быстродействием -3 используется для реализации ЦОС на частотах дискретизации 200 и 250 МГц.
koliyh
Цитата(soldat_shveyk @ Mar 30 2011, 23:05) *
250 МГц для сложного проекта на CycloneIII вряд ли пойдет.
Даже если возьмете самый лучший чип по быстродействию, лучше поделить клок на 2 при первой же возможности: сделали первый каскад фильтрации и децимации на 2, и сразу формируете новый клок 125 МГц, от которого будет пахать вся остальная математика.
Вообще, Cyclone III - недорогое семейство со скромными характеристиками, серьезные вещи лучше делать на Stratix покления II и выше.
У меня Stratix II GX с быстродействием -3 используется для реализации ЦОС на частотах дискретизации 200 и 250 МГц.

стратикс по цене не очень подходит ((( после децимации частота будет существенно снжена. Главное чтоб cordic и cic фильтр номально работали. Делаю сейчас тоже самое на 100 МГц - работа очень сильно зависит от того как в ПЛИС разместится.
ГаЛаКтIкУs
QUOTE (koliyh @ Mar 30 2011, 21:55) *
Народ, подскажите - есть необходимость реализовать DDC на плис (cicloneIII) тактовая с ацп 250 МГц. Кто-нибудь сталкивался с подобным, реализуемо? какие могут быть сложности?

Незнаю какие характеристики у Cyclone, если они сопостовимы с Spartan-3, то ответ - можно до 200МГц (до 220МГц тоже возможно). Но для этого приходилось мне:
1- заниматься Fine-grained pipelining
2- заниматься floorplanning.
3- долго долго бороться!

Какое разрешение по частоте требуется? ... да ... и какой SFDR?
soldat_shveyk
Цитата
стратикс по цене не очень подходит (((

Понимаю, есть такое дело.
Тогда могу предложить посмотреть на Cyclone 4, там есть чипы емкостью 15 и 20 тыс ячеек с быстродействием -6 в корпусе TQFP144. Нужно прикинуть, как будет разводиться проект при такой тактовой, вполне возможно, что шансы есть. К тому же такой корпус имеет металлизироавнное "брюхо, которое припаивается к плате и обеспечивает хороший теплоотвод, на таких частотах это очень важно. Обычный TQFP корпус имеет очень слабый тепловой контакт с платой, так как висит на тонких ножках, и приходится радиатор крепить на него сверху.

В принципе, есть еще один вариант из дешевых. Берем шустрый MAXII, например EPM570GT100C3N, на него заводим сигнал от АЦП с тактовой 250 МГц, внутри чипа делаем линию задержки на 2 отсчета, децимируем каждый отвод на 2, и понижаем клок на 2 до 125 МГц. Таким образом формируем из исходного сигнала две полифазы, так как все равно делаем децимацию. Размениваем снижение клока вдвое на увеличение числа проводов в 2 раза (это еще называется сериалайзер). Скольки разрядное у Вас АЦП? Наверное 12 или 14, а будет 24 или 28 проводов - это не смертельно.
alexPec
Цитата(koliyh @ Mar 30 2011, 22:55) *
Народ, подскажите - есть необходимость реализовать DDC на плис (cicloneIII) тактовая с ацп 250 МГц. Кто-нибудь сталкивался с подобным, реализуемо? какие могут быть сложности?

А почему не сделать так: в ПЛИС заходит 250 МГц поток (для цыклона 3 вполне), там сразу распаралеливается на 2 потока по 125 мгц, каждый поток обрабатывается независимо, а на выходе из двух потоков собирается снова один, а может и не надо собирать, может дальнейшую обработку лучше на распаралеленном потоке делать. Это если речь идет именно о DDC, там ведь просто перемножитель. А вот дальнейшая фильтрация цифровая-там шаманить надо будет
Мур
Я бы добавил ещё важный момент, связанный с расположением ПЛИС относительно АЦП. Об этом хорошо написано Илья ТАРАСОВ Методы и программные
продукты для повышения производительности проектов (Компоненты и технологии 2008_01_88)
на базе ПЛИС Xilinx
Цитата
Фиксация выводов корпуса Несмотря на то что программируемые
пользователем выводы взаимозаменяемы,для высокопроизводительных проектов мо-
жет оказаться важным обеспечение правиль-ной компоновки внешних сигналов и шин.
Очевидно, что сигналы должны подаватьсяна выводы ПЛИС возможно ближе к месту
их реального использования на кристалле.Однако существуют также рекомендации,
связанные с особенностями конструкции ло-гической ячейки и распределения трассиро-
вочных линий. Если смотреть на топологию ПЛИС в том виде, в котором она представле-
на в инструментах САПР ISE, то внутри ло-гических ячеек данные распространяются сле-
ва направо, а снизу вверх проложены цепи ускоренного переноса, предназначенные для
построения арифметических модулей и счет-чиков (где и требуется передача бита переносав следующий разряд). Поэтому целесообраз-
но размещать ПЛИС на печатной плате та-ким образом, чтобы шина данных обраба-
тываемого сигнала входила слева и проходи-ла «сквозь» матрицу логических ячеек,
выходя с правой стороны. При этом верх-нюю и нижнюю стороны оказывается воз-
можным отвести для сигналов управления(рис. 2). Внутри шины данных рекомендует-
ся располагать младшие биты внизу, а стар-шие, соответственно, вверху корпуса ПЛИС,
поскольку это соответствует естественномунаправлению внутренних линий ускоренно-
го переноса.

koliyh
спасибо! идея с полифазами понравилась. ацп 16 бит. sdfr хотим получить около 90 дб
soldat_shveyk
Цитата
ацп 16 бит. sdfr хотим получить около 90 дб


А какое именно АЦП?
Некоторые, например AD5485, имеют LVDS-выход в формате DDR. Мне кажется, MAX II не умеет работать с DDR.

Цитата
sdfr хотим получить около 90 дб


Ну, это больше от аналоговой части перед АЦП зависит.
_Anatoliy
Цитата(alexPec @ Mar 31 2011, 10:00) *
А вот дальнейшая фильтрация цифровая-там шаманить надо будет

А чего там шаманить?Делал фильтры для потока 1100Msps в реал тайм,полёт нормальный.
tAmega
А поподробнее, какой АЦП, какая ПЛИС, какие фильтры, разрешение, какое SFDR, какие корки применялись на такой скорости, и в чем именно не было проблем, а с чем были.
alexPec
Цитата(_Anatoliy @ Apr 2 2011, 11:01) *
А чего там шаманить?Делал фильтры для потока 1100Msps в реал тайм,полёт нормальный.

Ну как, если распараллеливаем, каждый поток фильтруем отдельно, как минимум еще частоты среза корректировать надо, а может и еще чего, вдумываться надо.
1,1GSPS на циклоне 3? Даже если через serdes делать, чтоб требования по макс. частоте обеспечить, потом ведь обработать надо как-то, там жуткое распараллеливание наверно... Или на сратиксе каком?
_Anatoliy
Цитата(tAmega @ Apr 2 2011, 09:17) *
А поподробнее, какой АЦП, какая ПЛИС, какие фильтры, разрешение, какое SFDR, какие корки применялись на такой скорости, и в чем именно не было проблем, а с чем были.

Два АЦП ads54rf63,каждый по 550 msps,суммарный поток 1100msps,оцифровывался входной сигнал в полосе 500МГц.Фильтры все КИХ,двенадцать дифференциаторов и один Гильберта.ПЛИС Виртекс-5.Поток полифазился на четыре потока,которые обрабатывались как единый поток но уже на частоте 275МГц,для Виртекса это не проблемная частота.
dmitry-tomsk
Цитата(Мур @ Mar 31 2011, 11:20) *
Я бы добавил ещё важный момент, связанный с расположением ПЛИС относительно АЦП. Об этом хорошо написано Илья ТАРАСОВ Методы и программные
продукты для повышения производительности проектов (Компоненты и технологии 2008_01_88)
на базе ПЛИС Xilinx

По-моему чушь какая-то. На выводах свои триггеры стоят, а дальше placer разберётся, задача-то пустяшная.
Насчёт cyclone согласен - не потянет. spartan-6 справится, сам ddc собирается в систем генераторе симулинка за пару часов (рекомендую dds с коррекцией тейлора и ких фильтры с децимацией вместо cic)
Мур
Цитата(dmitry-tomsk @ Apr 2 2011, 13:12) *
По-моему чушь какая-то. На выводах свои триггеры стоят, а дальше placer разберётся, задача-то пустяшная.
Насчёт cyclone согласен - не потянет. spartan-6 справится, сам ddc собирается в систем генераторе симулинка за пару часов (рекомендую dds с коррекцией тейлора и ких фильтры с децимацией вместо cic)

Это как раз то, что может сэкономить денежку!
Циклон 3 может справиться при условии правильного размещения АЦП и ПЛИС. Можно убить 2-х зайцев на операции децимации. Поднять разрядность на единицу и иметь поток 125 Мгц на вход DDC конвертера -> простым суммированием на входе пар отсчётов.
Так вот, операция суммирования требует бережного отношения к цепям переноса(>250MHz!). Они расположены в ПЛИС в вертикальных структурах макроячеек. Соседние LUTы разрядов должны располагаться впритык. Это значит, что выгоднее вводить разряды данных от АЦП слева или справа, но не сверху\снизу, когда сумматор будет зазорван промежуточными структурами ОЗУ, умножителями, ПЛЛ...
Это тонкое место, но после сброса частоты в 2 раза можно чувствовать себя свободнее.
Можете проверить, реализовав 2 проекта (вдоль и поперек). Цифры будут разными....
У меня есть знакомый разработчик, который работает на уровне ЛУТ. Он так и делает в ответственных местах!
dmitry-tomsk
Цитата(Мур @ Apr 2 2011, 20:57) *
Это как раз то, что может сэкономить денежку!
Циклон 3 может справиться при условии правильного размещения АЦП и ПЛИС. Можно убить 2-х зайцев на операции децимации. Поднять разрядность на единицу и иметь поток 125 Мгц на вход DDC конвертера -> простым суммированием на входе пар отсчётов.
Так вот, операция суммирования требует бережного отношения к цепям переноса(>250MHz!). Они расположены в ПЛИС в вертикальных структурах макроячеек. Соседние LUTы разрядов должны располагаться впритык. Это значит, что выгоднее вводить разряды данных от АЦП слева или справа, но не сверху\снизу, когда сумматор будет зазорван промежуточными структурами ОЗУ, умножителями, ПЛЛ...
Это тонкое место, но после сброса частоты в 2 раза можно чувствовать себя свободнее.
Можете проверить, реализовав 2 проекта (вдоль и поперек). Цифры будут разными....
У меня есть знакомый разработчик, который работает на уровне ЛУТ. Он так и делает в ответственных местах!

Ну вот и ставили бы spartan-6 с аппаратным сумматором на входе умножителя. Цены одного порядка. Только суммировать соседние отсчёты не следует, это операция нч-фильтрации, не каждый сигнал такое позволит, потом наложение спектра после прореживания до 125 мгц, тут хороший фильтр нужен. Распараллелить данные можно и вдвое больше ресурсов потратить на обработку потом, вот тут как раз цена вопроса явно выше будет. Вообще не понимаю циклоны для dsp задач, там архитектура примитивная, раньше они за счёт pll выигрывали для модемов, а теперь pll и в spartan есть.
Мур
Цитата(dmitry-tomsk @ Apr 2 2011, 21:12) *
Ну вот и ставили бы spartan-6 с аппаратным сумматором на входе умножителя. Цены одного порядка. Только суммировать соседние отсчёты не следует, это операция нч-фильтрации, не каждый сигнал такое позволит, потом наложение спектра после прореживания до 125 мгц, тут хороший фильтр нужен. Распараллелить данные можно и вдвое больше ресурсов потратить на обработку потом, вот тут как раз цена вопроса явно выше будет.

Я сам удивляюсь. Что это народ сразу легко 250 в 125 переводят. Зачем платить за крутое АЦП, чтобы потом никаких выгод не иметь. У меня хоть дополнительный разряд появляется... Да, это по смыслу нч фильтрация, но примитивная..
Цитата(dmitry-tomsk @ Apr 2 2011, 21:12) *
Вообще не понимаю циклоны для dsp задач, там архитектура примитивная, раньше они за счёт pll выигрывали для модемов, а теперь pll и в spartan есть.

Представь себе, что 55 Циклон (на 96MHz)3 легко брал на себя 3*FFT 16k? а перед ним 9 фильтров с децимацией 230 порядка(по 3 звена) и 3 фифо буфера... ну и в конце CPCI
dmitry-tomsk
Цитата(Мур @ Apr 2 2011, 20:55) *
Я сам удивляюсь. Что это народ сразу легко 250 в 125 переводят. Зачем платить за крутое АЦП, чтобы потом никаких выгод не иметь. У меня хоть дополнительный разряд появляется... Да, это по смыслу нч фильтрация, но примитивная..
Представь себе, что 55 Циклон 3 легко брал на себя 3*FFT 16k? а перед ним 9 фильтров с децимацией 230 порядка(по 3 звена) и 3 фифо буфера... ну и в конце CPCI//

Насчёт разряда согласен - только вот ацп с вдвое меньшей частотой, но на 2 разряда точнее, стоит столько же. Фильтрация дейвительно примитивная, всё что выше fs/2 она не отфильтрует и все помехи завернутся на полезный сигнал при прореживании. А зачем fft - доплер считали или для согласованной фильтрации? На вскидку с такой задачей самый дешёвый spartan-6 справится.
dde29
Я на первом Cyclone кордик до 130 МГц реализовавал.....
iiv
Цитата(koliyh @ Mar 30 2011, 21:55) *
Народ, подскажите - есть необходимость реализовать DDC на плис (cicloneIII) тактовая с ацп 250 МГц. Кто-нибудь сталкивался с подобным, реализуемо? какие могут быть сложности?

На очень схожей задаче - циклон3, 16бит 200МГц АЦП у меня все получалось только после деления частоты в два раза, через распараллеливание данных. Вход был по лвдсам и по обоим фронтам. На самой 200МГц частоте что-то разумное собрать не получилось, хотя тесты (какие-то простые арифметические операции) на 200МГц этот циклон тянул.
soldat_shveyk
Цитата
На очень схожей задаче - циклон3, 16бит 200МГц АЦП у меня все получалось только после деления частоты в два раза, через распараллеливание данных. Вход был по лвдсам и по обоим фронтам.


Для распараллеливания данных что применяли: специализированный чип, или сами что-то придумывали?
iiv
Цитата(soldat_shveyk @ Apr 3 2011, 18:56) *
Для распараллеливания данных что применяли: специализированный чип, или сами что-то придумывали?

Не, внутри плиски частоту тригером ронял, и вместо 8 бит по двум фронтам на 200МГц получал 32 бита по одному фронту на 100МГц. Дальше все уже было очень просто, правда у С25 циклона совсем впритык было умножителей, но, как-то удалось втиснуться.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.