Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проконсультируйте насчет реализуемости системы
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
elektronshik
Приветствую Всех!
Вот возникла задача собрать аппарат, включающий в себя неслабый осциллограф.
В общем предполагаемую систему привожу на картинке:
Нажмите для просмотра прикрепленного файла
Сигналы тактирования АЦП должны получиться, как изображено здесь:
Нажмите для просмотра прикрепленного файла
Каналы будут коммутироваться как 1х400Msps, 2x200Msps, 4x100Msps. В будущем, возможно, удвоится либо колличество каналов, либо частота тактирования. Младший разряд АЦП не будет соединен.
Необходимо так же сделать внутри ПЛИС управляемые цифровые компараторы на входах данных АЦП. Контроллер ARM9 должен иметь возможность считать данные из SSRAM, подключенной к ПЛИС и задавать пороги компараторов по своему протоколу.
Основной режим работы ПЛИС - это циклическая запись в SSRAM данных АЦП, а при срабатывании компаратора - дозапись большей части емкости памяти, затем передача данных микроконтроллеру.
Потянет ли все это дело EP3C16 в плане быстродействия, а так же с учетом особенностей встроенного в неё PLL (ведь нужно получить 4 фазы 100МГц)? Вообще я долго выбирал между XILINX и ALTERA и решающим фактором стал именно встроенный PLL.

P.S. ПЛИС начал недавно изучать, до этого работал только с АРМ контроллерами.
AndriAno
А не подскажете назначение данного монстра???
требования по SNR, SFDR.
Тут возникают проблемы системного характера. В случае рассинхронизации тактовых (например изменение длины дорожки в температуре) очень резко упадет SFDR, со всеми вытекающими искажениями сигнала(особенно важно при при выполнении дальнейшей фильтрации).
Основные производители АЦП в своих высокоскоростных решениях поступают по тойже методике что и предлагаете вы, но они располагают все блоки АЦП на одном кристалле с весьма навороченной системой синхронизации. зачастую подается высокая тактовая в вашем случае 4*Fsampl и из неё для каждой ацп вырезается свой фронт.

Теперь насчет плис.
В принципе никакой сложной потоковой обработки я в вашем проекте не вижу, должно хватить ячеек, скорее надо посмотреть на наличие достаточного количества выводов(они могут неожиданно закончиться).
Насчет PLL, встроенный в EP1C16 PLL имеет полосу обратной связи порядка 1 МГц(если память не изменяет), с весьма высоким уровнем фазовых шумов, который вам вылезет в оцифрованном сигнале.
Если вы всетаки решите продолжить этот проект я бы порекомендовал на таких скоростях использовать АЦП с LVDS выходами, из-за более низкого уровня широкополосных излучений.

PS.
По опыту могу сказать что даже разработка платы имеющей на борту 2 АЦП работающих от одной тактовой, и дальнейшем сливанием всего на плис, могу сказать что для получения SFDR более 100-110 дБ, приходится весьма порядочно мозги поломать.
elektronshik
В общем особых требований по SNR, SFDR нет. С АЦП вот определился, будет стоять AD9216-105, у него SNR = 57.6 dBc, SFDR = 74 dBc.
Он как раз сдвоенный и может работать в DDR режиме (то есть по фронту выводится один канал, по срезу второй), так что схема тактирования будет по-проще (нужно 2 фазы 100МГц) и шина данных уменьшается вдвое.
Больше все-таки беспокоят возможности ПЛИС:
В доке cyc3_ciii51009.pdf (External Memory Interfaces in Cyclone III Devices) на странице 9-7 есть таблица, судя по которой у меня возникло подозрение, что не получится к 240-выводному корпусу подключить 36-битную память. Надеюсь это не так?

Кстати в этом же доке на странице 9-17 говорится о поддержке DDR2 SDRAM на скорости 200 MHz/400 Mbps, хотя на 200МГц DDR2 выдаёт 800Mbps. DDR SDRAM поддерживается почему-то только до 167 MHz. Про SSRAM вообще ничего не говорится... будет ли она работать на 200МГц?
И вот еще возник вопрос насчет цифрового компаратора: реально ли вообще такой компаратор построить внутри ПЛИС если данные на него с АЦП будут приходить и по фронту и по срезу с одного порта?

Насчет PLL, может если сделать частоту побольше, а потом внутренними триггерами разделить, будет как-то получше с шумами?
vadimuzzz
Цитата(elektronshik @ Apr 29 2009, 19:09) *
Больше все-таки беспокоят возможности ПЛИС:
В доке cyc3_ciii51009.pdf (External Memory Interfaces in Cyclone III Devices) на странице 9-7 есть таблица, судя по которой у меня возникло подозрение, что не получится к 240-выводному корпусу подключить 36-битную память. Надеюсь это не так?

имеется в виду DDR. можно поставить обычный SDRAM.
Цитата(elektronshik @ Apr 29 2009, 19:09) *
Кстати в этом же доке на странице 9-17 говорится о поддержке DDR2 SDRAM на скорости 200 MHz/400 Mbps, хотя на 200МГц DDR2 выдаёт 800Mbps. DDR SDRAM поддерживается почему-то только до 167 MHz. Про SSRAM вообще ничего не говорится... будет ли она работать на 200МГц?

вы спутали DDR и QDR. ставьте обычный SDRAM на 100 или 133 МГц(на 200 не будет) и не парьтесь. можно 2 банки поставить.
Цитата(elektronshik @ Apr 29 2009, 19:09) *
И вот еще возник вопрос насчет цифрового компаратора: реально ли вообще такой компаратор построить внутри ПЛИС если данные на него с АЦП будут приходить и по фронту и по срезу с одного порта?

сомнительно. скорее видится 4 внешних клока (или 2 + демультиплексор), запись в 4 FIFO по этим клокам, а чтение из них выполняет контроллер SDRAM.
Цитата(elektronshik @ Apr 29 2009, 19:09) *
Насчет PLL, может если сделать частоту побольше, а потом внутренними триггерами разделить, будет как-то получше с шумами?

будет хуже, делайте внешний PLL и фазировку клоков. что-нибудь типа AD9516.
slog
Есть несколько похожая на то что вам надо конструкция http://forum.ixbt.com/topic.cgi?id=48:7811
В ней имеется:
FPGA EP2C35.
4 канала АЦП.
В каждом канале стоит по четыре 8-ми битных MAX1121, тактируются от PLL FPGA со сдвигом фаз. В оригинале работают на 250МГц х4 = 1GHz. У этого АЦП есть 10-ти битный pin-to-pin близнец, вроде MAX1124 называется.
Также имется 2 мегабайта статической 8нс 32-х разрядной памяти.
Ну и до кучи ещё 8 метров флэша, TFT цветной 640х480, USB, RS-232, ручки-кнопки и прочие ненужные мелочи.
В оригинале функции процессора выполняет софт процессор - NIOS.

Схема срисована до состояния "дальше не надо". На сегодняшний день цена всего этого меньше 400$. Дешевле сделать не получится.

Но! При тактировании от PLL FPGA даже 8 честных разрядов вряд ли получить, не говоря уж про 9.
elektronshik
Цитата(vadimuzzz @ Apr 29 2009, 16:51) *
вы спутали DDR и QDR. ставьте обычный SDRAM на 100 или 133 МГц(на 200 не будет) и не парьтесь. можно 2 банки поставить.

Не спутал, вот цитата из дока:
Cyclone III allows a transfer data rate between external memory interfaces of up to 200 MHz/400 Mbps for DDR2 SDRAM, 167 MHz/333 Mbps for DDR SDRAM, and 167 MHz/667 Mbps for QDRII SRAM devices.
Может имеется ввиду скорость именно интерфейса DDR2 200MHz, при этом сама DDR2 будет работать на 100MHz... тогда действительно скорость будет 400Mbps.
Меня вообще подключение любой SDRAM пока особо не интересует, просто заметил вроде не соответствие. К ПЛИС собираюсь подключить только синхронную статическую 36-битную ОЗУ (SSRAM) на 200MHz. Про такой тип памяти в доке ничего не говорится поэтому хотел уточнить.
Цитата(vadimuzzz @ Apr 29 2009, 16:51) *
сомнительно. скорее видится 4 внешних клока (или 2 + демультиплексор), запись в 4 FIFO по этим клокам, а чтение из них выполняет контроллер SDRAM.
Т.е. первоначальный вариант с 4-мя фазами на рисунке?
Цитата(vadimuzzz @ Apr 29 2009, 16:51) *
будет хуже, делайте внешний PLL и фазировку клоков. что-нибудь типа AD9516.
Недешевая микросхемка... и скорей АЦП придется под неё подбирать чем наоборот :-).

slog, Спасибо, особенно интересно что все-таки от ПЛИС можно тактирование сделать, тем более, я за гигавыборками не гонюсь.

Еще возник такой вопросик: можно ли на MAX II, к примеру, EPM570 сделать нечто подобное, но на 25-50 мегавыборок, 2 канала, циклический буфер на дешевых SRAM 32K x 8bit и цифровой компаратор тоже внутри CPLD?
slog
У ЕРМ нет PLL, как фазы двигать? Остальное можно. Но циклон стоит примерно столько же сколько эта EPM. Какой тут смысл в ЕРМ?
Тактирование от 4-x PLL со сдвигом фаз сделать совсем не сложно, но проблема то в том что у PLL большой джиттер и это сильно уменьшает отношение С/Ш у АЦП.
elektronshik
Цитата(slog @ Apr 30 2009, 09:51) *
У ЕРМ нет PLL, как фазы двигать?

На 25-50 мегавыборок можно обойтись и без таких заморочек.
Цитата(slog @ Apr 30 2009, 09:51) *
Но циклон стоит примерно столько же сколько эта EPM. Какой тут смысл в ЕРМ?

Если глянуть в efind, то цены в среднем в 3 раза отличаются.
vadimuzzz
Цитата(elektronshik @ Apr 30 2009, 12:40) *
Не спутал, вот цитата из дока:
Cyclone III allows a transfer data rate between external memory interfaces of up to 200 MHz/400 Mbps for DDR2 SDRAM, 167 MHz/333 Mbps for DDR SDRAM, and 167 MHz/667 Mbps for QDRII SRAM devices.
Может имеется ввиду скорость именно интерфейса DDR2 200MHz, при этом сама DDR2 будет работать на 100MHz... тогда действительно скорость будет 400Mbps.
Меня вообще подключение любой SDRAM пока особо не интересует, просто заметил вроде не соответствие. К ПЛИС собираюсь подключить только синхронную статическую 36-битную ОЗУ (SSRAM) на 200MHz. Про такой тип памяти в доке ничего не говорится поэтому хотел уточнить.
Т.е. первоначальный вариант с 4-мя фазами на рисунке?
Недешевая микросхемка... и скорей АЦП придется под неё подбирать чем наоборот :-)

slog, Спасибо, особенно интересно что все-таки от ПЛИС можно тактирование сделать, тем более, я за гигавыборками не гонюсь.

Еще возник такой вопросик: можно ли на MAX II, к примеру, EPM570 сделать нечто подобное, но на 25-50 мегавыборок, 2 канала, циклический буфер на дешевых SRAM 32K x 8bit и цифровой компаратор тоже внутри CPLD?

DDR2, как и DDR имеет удвоенную относительно тактовой частоты пропускную способность (QDR-учетверенную), но отличается более высокой тактовой частотой(т.е. DDR2 работает на 200МГц и имеет проп. способность 400Мбит/с). бОльшая тактовая частота у DDR2 достигается за счет большей латентности. для DDR 200МГц-это предел, а для DDR2-нижняя штатная частота.
насчет внешнего PLL - как минимум стоит предусмотреть возможность установки на плате, чтоб можно было и внутренний PLL опробовать и внешний. с внутренними PLL наверняка грохнется SNR на высоких частотах, да и помех циклон даст много. MAX, пожалуй закладывать не стоит(разве что в одноканальный вариант) - наверняка поребуются FIFO, внутреннее ОЗУ в циклоне как раз для этого. да и всякие DDR, LVDS пригодятся. можно еще вместо ARMа NIOS заюзать. кстати, АЦП будут подороже, чем AD9516(9514).
elektronshik
Цитата(vadimuzzz @ Apr 30 2009, 16:17) *
DDR2, как и DDR имеет удвоенную относительно тактовой частоты пропускную способность (QDR-учетверенную), но отличается более высокой тактовой частотой(т.е. DDR2 работает на 200МГц и имеет проп. способность 400Мбит/с). бОльшая тактовая частота у DDR2 достигается за счет большей латентности. для DDR 200МГц-это предел, а для DDR2-нижняя штатная частота.

По-моему, Вы немного заблуждаетесь. Если уж мы говорим о DDR SDRAM памяти, то расклад вот какой:
Для любой DDR SDRAM памяти 200МГц - это предел по стандарту JEDEC. В настоящий момент есть 3 версии этой памяти: DDR, DDR2 и DDR3. (о GDDR4 и GDDR5 я говорить не буду).
QDR SDRAM, насколько знаю, пока не существует или мне просто не встречалась, но есть QDR SRAM.

Теперь подробней о пропускной способности, чтобы всем было понятно:
DDR
Ячейки памяти (ядро) работают на 200МГц.
Передача на шину осуществляется из двух мест одновременно.
Интерфейс работает на той-же частоте, что и ячейки памяти (200МГц).
Через интерфейс данные передаются как по фронту, так и по спаду - получаем удвоенную скорость передачи без повышения где-либо частоты (400Мбит/с).


DDR2
Ячейки памяти (ядро) работают на 200МГц.
Передача на шину осуществляется из четырёх мест одновременно.
Интерфейс работает на удвоенной частоте памяти - 400МГц.
Через интерфейс данные передаются как по фронту, так и по спаду - получаем скорость передачи - 800Мбит/с.

DDR3
Ячейки памяти (ядро) работают на 200МГц.
Передача на шину осуществляется из восьми мест одновременно.
Интерфейс работает на учетверенной частоте памяти - 800МГц.
Через интерфейс данные передаются как по фронту, так и по спаду - получаем скорость передачи - 1600Мбит/с.

Вышесказанное относится к DDR SDRAM памяти высшей категории поддерживаемой стандартом JEDEC (200МГц).

Вобщем, если не верите, что DDR2 имеет пропускную способность 800Мбит/с, посмотрите прайсы компьютерных магазинов biggrin.gif там очень часто встречаются позиции с наименованием "DDR2-800".

Так вот, получается, что Циклон 3 поддерживает только DDR2-400 (низшей категории - 100МГц для ядра), судя по доку crying.gif.

==============================================================================
Насчет AD9516(9514)... Она, похоже, рассчитана для тактирования АЦП, имеющих LVDS. А как ей тактировать AD9216 (с обычным однопиновым тактовым входом)?
vadimuzzz
Цитата(elektronshik @ May 2 2009, 00:56) *
По-моему, Вы немного заблуждаетесь.
...
Так вот, получается, что Циклон 3 поддерживает только DDR2-400 (низшей категории - 100МГц для ядра), судя по доку crying.gif.

==============================================================================
Насчет AD9516(9514)... Она, похоже, рассчитана для тактирования АЦП, имеющих LVDS. А как ей тактировать AD9216 (с обычным однопиновым тактовым входом)?

да, точно, пардон. в любом случае, при 100МГц для ядра, эквивалентная для SDRAM будет 200МГц, тоже самое, что и сейчас (а сами чипы м.б. доступнее, чем SRAM).
насчет AD9516(9514)- LVDS-выходы м.б. сконфигурированы как CMOS(не помню только насчет Fmax, она будет ниже чем для LVDS). можно еще симм. трансформатор поставить.
soldat_shveyk
Доброго дня!

Присоединяюсь к мнению, что цепь тактирования АЦП должна быть внешней. Центральное место занимает АЦП а не ПЛИС. Опорный генератор должен работать только на АЦП, а тактовое питание для ПЛИС является второстепенным, и должно формироваться от этого же опорника отдельной цепью. По своему опыту могу сказать, что наиболее удобный способ - это использование удвоенной частоты опорного генератора с последующим цифровым делением на дискретной логике для формирования двух сигналов запуска АЦП со сдвигом фазы на 180 грд.

Если будете пытаться формировать сигналы запуска АЦП внутри ПЛИС, то ничем хорошим это не кончится.
elektronshik
Цитата(soldat_shveyk @ May 4 2009, 13:07) *
Доброго дня!

Присоединяюсь к мнению, что цепь тактирования АЦП должна быть внешней. Центральное место занимает АЦП а не ПЛИС. Опорный генератор должен работать только на АЦП, а тактовое питание для ПЛИС является второстепенным, и должно формироваться от этого же опорника отдельной цепью. По своему опыту могу сказать, что наиболее удобный способ - это использование удвоенной частоты опорного генератора с последующим цифровым делением на дискретной логике для формирования двух сигналов запуска АЦП со сдвигом фазы на 180 грд.

Если будете пытаться формировать сигналы запуска АЦП внутри ПЛИС, то ничем хорошим это не кончится.

А не подскажете серию логики в которой есть триггеры/делители, способные работать на 400Мгц? 193 серию вроде уже не выпускают, поэтому использовать её в современных проектах нецелесообразно. 74AC74 по доку до 250МГц. И каким же образом можно удвоить частоту опорного генератора?
soldat_shveyk
Удваивать частоту опорного генератора не стоит, удобнее сразу взять опорник на максимальную частоту - 400 МГЦ, а частоты 200, 100, 50 МГц получать делением.
Насчет быстрой логики - посмотрите в сторону CML, LVDS, PECL, LVPECL и прочих. Они накрывают диапазон частот до 1000 МГЦ и более. Производителей много, например National, TI, Phil.
SM
Цитата(elektronshik @ May 1 2009, 21:56) *
Так вот, получается, что Циклон 3 поддерживает только DDR2-400 (низшей категории - 100МГц для ядра), судя по доку crying.gif.

Да, верно. Если нужно "летать" - то или хай энд - стратиксы c соотв. прайсом, или среднеценовое навроде LatticeECP2/M или LatticeECP3. В них найдется и DDR2 побыстрее, в части - DDR3, но, тоже не самое-самое.
SFx
проще купить АЦП на нужную мегасемпельность. это будет стоить дешевле разработки всего такого комплекса.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.