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

 
 
> Выбор размера FIFO, оценка загрузки, Для SGDMA
alexPec
сообщение Nov 5 2010, 15:56
Сообщение #1


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Добрый день. Видел где-то в топиках, что люди загрузку FIFO определяли. А как это сделать? Суть такая: есть система на NIOS, АЦП, 5 МГц, 16 бит. Надо заполнить память (память внешняя) выборками АЦП, порядка 100-200 кБ. Думаю должен быть SGDMA, FIFO. А вот какого размера ставить его? И как потом определить загрузку FIFO? На шине стоит, кроме SGDMA АЦП, еще SGDMA для LCD и собственно сам проц ниос. Проц (и память) работает на 80 МГц, SGDMA для LCD - 5 МГц (16 бит), память 16-ти разрядная.

Если кто примерчик кода скинет stream->SGDMA->память будет здорово. Ну или тонкости какие может есть в отличие от память->SGDMA->stream, он работает на дисплей, пример взял с кита.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vadimuzzz
сообщение Nov 6 2010, 01:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



а интерфейс у АЦП какой? не SPI часом? если SPI, то в билдере есть компонент SPI с Avalon-ST интерфейсом. к нему еще Avalon-ST клок-адаптер добавить (как раз FIFO), он автоматически из соотношений клоков определит, достаточен ли размер. если маловат - кинет warning. по поводу округления клоков - это нормально, он все равно не в наносекундах или мегагерцах меряет, а в тактах. и округляет с запасом.
Go to the top of the page
 
+Quote Post
alexPec
сообщение Nov 6 2010, 08:35
Сообщение #3


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(vadimuzzz @ Nov 6 2010, 04:23) *
а интерфейс у АЦП какой? не SPI часом? если SPI, то в билдере есть компонент SPI с Avalon-ST интерфейсом. к нему еще Avalon-ST клок-адаптер добавить (как раз FIFO), он автоматически из соотношений клоков определит, достаточен ли размер. если маловат - кинет warning. по поводу округления клоков - это нормально, он все равно не в наносекундах или мегагерцах меряет, а в тактах. и округляет с запасом.

Не, там LVDS сигналы, по времени жуть нормированные. Я их в паралельный переделал уже. Щас есть данные и клок когда эти данные готовы.

Eще вопрос появился: куда SOP/EOP, empty цеплять? У меня ведь АЦП. Каждый такт данные появляются. С какого отсчета начинать - без разницы. Их что жестко посадить на vcc/gnd? У SGDMA не нашел отключение packet support.

Сообщение отредактировал alexPec - Nov 6 2010, 09:51
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Nov 6 2010, 11:31
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(alexPec @ Nov 6 2010, 14:35) *
Не, там LVDS сигналы, по времени жуть нормированные. Я их в паралельный переделал уже. Щас есть данные и клок когда эти данные готовы.

не-не-не, погодите. причем тут I/O Standard? AD7625 (http://electronix.ru/forum/index.php?showtopic=82351)?
зачем его руками в параллельный переделывать, если 1 сигнал (строб) добавить и будет вполне себе SPI. который к готовому компоненту и цепляете. а LVDS там или что другое совершенно не важно
Go to the top of the page
 
+Quote Post
alexPec
сообщение Nov 6 2010, 12:44
Сообщение #5


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(vadimuzzz @ Nov 6 2010, 14:31) *
не-не-не, погодите. причем тут I/O Standard? AD7625 (http://electronix.ru/forum/index.php?showtopic=82351)?
зачем его руками в параллельный переделывать, если 1 сигнал (строб) добавить и будет вполне себе SPI. который к готовому компоненту и цепляете. а LVDS там или что другое совершенно не важно


Ключевое слово было "по времени нормированные" smile.gif По таймингам там жестко как-то. После строба CNV надо подождать 145 ns, потом burst на чтение 16 бит, причем закончиться он должен уже после того как новый строб придет, на след. отсчет, но не позднее 110 нс после строба. А время между стробами CNV тоже нормировано. Вобщем чем с SPI увязывать - подумал проще в паралель и в дма 16 разрядный, благо память тоже 16 разрядов.

А все-таки, SOP/eop, empty - куда цеплять? Или для stream->memory нафиг не нужны? В memory->stream понятно, там в дескрипторе бит выставляется, если при чтении видит бит - формирует sop/eop, для синхронизации удобно. Не сталкивались с этим? Может убрать их в sgdma можно как, я не нашел? Пока вроде только эта загвоздка осталась...

Сообщение отредактировал alexPec - Nov 6 2010, 12:47
Go to the top of the page
 
+Quote Post



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

 


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


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