|
Выбор размера FIFO, оценка загрузки, Для SGDMA |
|
|
|
Nov 5 2010, 15:56
|
Профессионал
    
Группа: Свой
Сообщений: 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, он работает на дисплей, пример взял с кита.
|
|
|
|
|
 |
Ответов
|
Nov 6 2010, 08:35
|
Профессионал
    
Группа: Свой
Сообщений: 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
|
|
|
|
|
Nov 6 2010, 12:44
|
Профессионал
    
Группа: Свой
Сообщений: 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 там или что другое совершенно не важно Ключевое слово было "по времени нормированные"  По таймингам там жестко как-то. После строба 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
|
|
|
|
Сообщений в этой теме
alexPec Выбор размера FIFO, оценка загрузки Nov 5 2010, 15:56 alexPec PS. Как то я поднимал вопрос о 8/16 бит SGDMA для ... Nov 5 2010, 16:58    vadimuzzz Цитата(alexPec @ Nov 6 2010, 18:44) Ключе... Nov 6 2010, 14:45     alexPec Цитата(vadimuzzz @ Nov 6 2010, 17:45) и ч... Nov 6 2010, 14:55      vadimuzzz Цитата(alexPec @ Nov 6 2010, 20:55) В смы... Nov 6 2010, 15:25       alexPec Цитата(vadimuzzz @ Nov 6 2010, 18:25) пер... Nov 6 2010, 17:54        vadimuzzz Цитата(alexPec @ Nov 6 2010, 23:54) 1. По... Nov 7 2010, 03:29         alexPec Спасибо Vadimuzzz! С твоей помощью, как обычно... Nov 7 2010, 07:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|