реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Скоростной ввод данных, CycloneII 250MHz
slog
сообщение Jul 8 2008, 06:58
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



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

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


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
AndriAno
сообщение Jul 8 2008, 07:05
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 103
Регистрация: 17-03-06
Из: Томск
Пользователь №: 15 319



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

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


На мой взгляд правильнее первый вариант. В конечном счете к нему все и сводится.
Только писаться там наверное там будет не в память с двойной шириной, 2 ячейки памяти.
Уточните разрядность данных
Go to the top of the page
 
+Quote Post
slog
сообщение Jul 8 2008, 08:09
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



На входе 32 бита, но по моему это не имеет принципиального значения.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jul 8 2008, 08:24
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



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

Недопонял, на входе 250МГц DDR что ли?
Go to the top of the page
 
+Quote Post
slog
сообщение Jul 8 2008, 08:57
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



На входе 250 МГц не DDR.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jul 8 2008, 09:31
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



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

Я бы в таком варианте рассмотрел сразу хлопать данные от частоты 125 DDR: никакого управления не надо, линейка триггеров по фронту, линейка триггеров по спаду, и в память по фронту это все пишется. А на частоте 250 и enable каждый второй такт вам придется Timing Analyzer-у рассказывать сказку, что почти все цепи multicycle (например, счетчик, формирующий адрес памяти для записи), иначе он (Timing Analyzer) будет сильно ругаться: он-то не знает сам-по-себе, что у вас enable будет разрежен и подумает, что все работает на 250 МГц.
Go to the top of the page
 
+Quote Post
sazh
сообщение Jul 8 2008, 10:35
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804



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


Вот поэтому все это хозяйство желательно на уровне регистров перезаписывать в регистр по внутреннему пониженному системному клоку, чтобы работать с памятью на системной пониженной, но с расширенной разрядностью.
Go to the top of the page
 
+Quote Post
bve
сообщение Jul 8 2008, 15:32
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765



А организовать два банка памяти и писать в них с чередованием нельзя?
Каждый из банков будет работать на 125 Мгц....
Go to the top of the page
 
+Quote Post
slog
сообщение Jul 9 2008, 06:57
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Можно, но смысла в этом не видно, это усложнит дальнейшую обработку.

Вообщем я пришёл к выводу что самый лучший вариант altddio_in и принимать в режиме DDR на 125 МГц.


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 10 2008, 05:22
Сообщение #10


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(slog @ Jul 9 2008, 09:57) *


Вы хотите формировать тактовый сигнал для АЦП с помощью PLL FPGA?У клока будет довольно большой джиттер,Вас это устраивает?Вы оценивали его влияние?Какая полоса частот входного сигнала?Какой SNR Вы хотите иметь на выходе АЦП?
Go to the top of the page
 
+Quote Post
slog
сообщение Jul 10 2008, 10:18
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 961
Регистрация: 28-11-05
Пользователь №: 11 489



Цитата(_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 тоже поделится. Так?


--------------------
В действительности всё не так, как на самом деле.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jul 10 2008, 11:49
Сообщение #12


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(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) после делителя не изменится.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 19:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01466 секунд с 7
ELECTRONIX ©2004-2016