|
Выбор размера 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
|
|
|
|
|
Nov 6 2010, 14:45
|

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

|
Цитата(alexPec @ Nov 6 2010, 18:44)  Ключевое слово было "по времени нормированные"  По таймингам там жестко как-то. и что? nios тут как slave, тайминги извне задаются, все как у вас сейчас. ну, вам видней. Цитата А все-таки, SOP/eop, empty - куда цеплять? Или для stream->memory нафиг не нужны? В memory->stream понятно, там в дескрипторе бит выставляется, если при чтении видит бит - формирует sop/eop, для синхронизации удобно. Не сталкивались с этим? Может убрать их в sgdma можно как, я не нашел? Пока вроде только эта загвоздка осталась... посмотрите в адаптерах www.altera.com/literature/hb/qts/qts_qii54021.pdf, там есть разные приблуды, чтобы эти сигналы вставлять/выбрасывать. сами эти сигналы нужны (теоретически), именно на их основе и генерируются прерывания и т.п. ну и длина выборки, иначе (без eop) он быстро память переполнит
|
|
|
|
|
Nov 6 2010, 14:55
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(vadimuzzz @ Nov 6 2010, 17:45)  и что? nios тут как slave, тайминги извне задаются, все как у вас сейчас. ну, вам видней.
посмотрите в адаптерах www.altera.com/literature/hb/qts/qts_qii54021.pdf, там есть разные приблуды, чтобы эти сигналы вставлять/выбрасывать. сами эти сигналы нужны (теоретически), именно на их основе и генерируются прерывания и т.п. ну и длина выборки, иначе (без eop) он быстро память переполнит В смысле переполнит? Не должен. Клок с ацп 4 МГц, клок DMA 80 МГц, фифо на 128 отсчетов, неужто с шиной так все плохо?
Сообщение отредактировал alexPec - Nov 6 2010, 14:57
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|