Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Скоростной ввод данных
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
slog
Есть вот задача, хотелось бы обсудить какой путь решения самый правильный. Вообщем надо ввести в циклон 2 и сохранить во внутренней памяти данные (с АЦП) с частотой 250МГц. Такты на АЦП формирует внутренняя PLL в циклоне на внешнем выходе C2. Через 1.5-2nS после фронта тактового сигнала на выходе PLL надо защёлкнуть данные на входах FPGA и сохранить их во внутреннюю память. Внутренняя память в циклонах -8 работает только до 163MHz. Так что надо писать в нее словами в два раза шире на частоте 125MHz. Видятся такие варианты решения:
1 - по каждому спаду частоты 250МГц сохраняем данные по очереди в два регистра - потом в память двойной ширины.
2 - с другого канала PLL получаем частоту 125МГц и по фронту 125МГц пишем в 1-й регистр, по спаду во 2-й и в память двойной ширины.
3 - используем мегафункцию altddio_in в надежде что она сделает это правильнее.

Хочется обсудить как лучше всего решить эту задачу.
AndriAno
Цитата(slog @ Jul 8 2008, 09:58) *
Видятся такие варианты решения:
1 - по каждому фронту частоты 250МГц сохраняем данные по очереди в два регистра - потом в память двойной ширины.
2 - с другого канала PLL получаем частоту 125МГц и по фронту 125МГц пишем в 1-й регистр, по спаду во 2-й и в память двойной ширины.
3 - используем мегафункцию altddio_in в надежде что она сделает это правильнее.

Хочется обсудить как лучше всего решить эту задачу.


На мой взгляд правильнее первый вариант. В конечном счете к нему все и сводится.
Только писаться там наверное там будет не в память с двойной шириной, 2 ячейки памяти.
Уточните разрядность данных
slog
На входе 32 бита, но по моему это не имеет принципиального значения.
DmitryR
Цитата(slog @ Jul 8 2008, 10:58) *
1 - по каждому фронту частоты 250МГц сохраняем данные по очереди в два регистра - потом в память двойной ширины.

Недопонял, на входе 250МГц DDR что ли?
slog
На входе 250 МГц не DDR.
DmitryR
Цитата(slog @ Jul 8 2008, 12:57) *
На входе 250 МГц не DDR.

Я бы в таком варианте рассмотрел сразу хлопать данные от частоты 125 DDR: никакого управления не надо, линейка триггеров по фронту, линейка триггеров по спаду, и в память по фронту это все пишется. А на частоте 250 и enable каждый второй такт вам придется Timing Analyzer-у рассказывать сказку, что почти все цепи multicycle (например, счетчик, формирующий адрес памяти для записи), иначе он (Timing Analyzer) будет сильно ругаться: он-то не знает сам-по-себе, что у вас enable будет разрежен и подумает, что все работает на 250 МГц.
sazh
Цитата(DmitryR @ Jul 8 2008, 13:31) *
Я бы в таком варианте рассмотрел сразу хлопать данные от частоты 125 DDR: никакого управления не надо, линейка триггеров по фронту, линейка триггеров по спаду, и в память по фронту это все пишется. А на частоте 250 и enable каждый второй такт вам придется Timing Analyzer-у рассказывать сказку, что почти все цепи multicycle (например, счетчик, формирующий адрес памяти для записи), иначе он (Timing Analyzer) будет сильно ругаться: он-то не знает сам-по-себе, что у вас enable будет разрежен и подумает, что все работает на 250 МГц.


Вот поэтому все это хозяйство желательно на уровне регистров перезаписывать в регистр по внутреннему пониженному системному клоку, чтобы работать с памятью на системной пониженной, но с расширенной разрядностью.
bve
А организовать два банка памяти и писать в них с чередованием нельзя?
Каждый из банков будет работать на 125 Мгц....
slog
Можно, но смысла в этом не видно, это усложнит дальнейшую обработку.

Вообщем я пришёл к выводу что самый лучший вариант altddio_in и принимать в режиме DDR на 125 МГц.
_Anatoliy
Цитата(slog @ Jul 9 2008, 09:57) *


Вы хотите формировать тактовый сигнал для АЦП с помощью PLL FPGA?У клока будет довольно большой джиттер,Вас это устраивает?Вы оценивали его влияние?Какая полоса частот входного сигнала?Какой SNR Вы хотите иметь на выходе АЦП?
slog
Цитата(_Anatoliy @ Jul 10 2008, 09:22) *
Вы хотите формировать тактовый сигнал для АЦП с помощью PLL FPGA?У клока будет довольно большой джиттер,Вас это устраивает?Вы оценивали его влияние?Какая полоса частот входного сигнала?Какой SNR Вы хотите иметь на выходе АЦП?

Да, такты на ADC с FPGA. Но это не обсуждается, это как данность, потому что уже всё сделано именно так. Вообщем устраивает.
А вот способ получения 250MHz из 25-ти и с наименьшим джиттером можно пообсуждать. Ибо есть варианты. 250 = 25*10/1 или 25*20/2 или 25*30/3 или 25*40/4 И есть предположение что при увеличении коэффициента делителя джиттер PLL тоже поделится. Так?
_Anatoliy
Цитата(slog @ Jul 10 2008, 13:18) *
Да, такты на ADC с FPGA. Но это не обсуждается, это как данность, потому что уже всё сделано именно так. Вообщем устраивает.
А вот способ получения 250MHz из 25-ти и с наименьшим джиттером можно пообсуждать. Ибо есть варианты. 250 = 25*10/1 или 25*20/2 или 25*30/3 или 25*40/4 И есть предположение что при увеличении коэффициента делителя джиттер PLL тоже поделится. Так?


Ну Вам виднее...Только имейте ввиду что на 100МГц входной частоты при максимальном джитере Вы потеряете 15 дБ SNR.

Имхо,абсолютная величина джиттера(в ps) после делителя не изменится.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.