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

 
 
> SG-DMA в режиме Stream To Memoy
Acvarif
сообщение Aug 25 2012, 07:49
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Есть необходимость перегружать кучу байт из пользовательской двухпортовой памяти в SDRAM+NIOS. Для этой цели в пользовательсой логике имеются импульсы периодом ~ 100 нс по фронтам которых предполагается организовать пересылку данных (16 бит) в SDRAM. Далее все компонуется и по Ethernet должно идти далее в комп.
Для этого попытался сворганить в SOPC SG-DMA (Stream To Memory) + Avalon Straming Source. Получил непонятные ошибки. Разрядность нин в SG-DMA и Avalon Straming Source поставил 16 бит.
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение

Подскажите пожалуйста как правильно. Пробовал по разному (менял оличество бит источника приемника и др.) Не получается. Помог бы простой пример реализации в SOPC подобной схемы.
Нужен ли для этой цели еще и FIFO? Или можно будет обойтись только Avalon Straming Source+пользовательская логика полагаясь на внутреннюю FIFO SG-DMA?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
gosu-art
сообщение Nov 26 2012, 12:37
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



Вот созданные дескрипторы до вызова alt_avalon_sgdma_do_async_transfer(брейкпойнт ща на нем).
Прикрепленное изображение

Жмем "Resume" и все работает. alt_avalon_sgdma_do_async_transfer вызывается 1 раз

Теперь перезапускаю систему(в том числе конфигурирую плис) убираю брэйк с async_transfer и ставлю на передаче пакета. После нее, собственно (256 байт), и должен заводится SGDMA_RX.
Выполняю функцию:
Прикрепленное изображение

Вроде все норм - 256 байт принял.

После этого снова посылаю пакет 256 байт, но теперь он должен обработаться, по идее, другим дескриптором.
Оправляю...
Прикрепленное изображение


И ничего, SGDMA завис crying.gif больше он работать не будет. Сигнал READY не выставляется, еще к тому же левый адрес выставился 0х00011200 а должен быть 0х00011000, но похоже это от предыдущей транзакции.

Может выравнивать чего нужно?
Go to the top of the page
 
+Quote Post
alexPec
сообщение Nov 26 2012, 14:45
Сообщение #3


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

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



Первое что в голову приходит - а почему размер-то передаваемых данных выставлен в ноль (bytes to transfer)?
Может из-за нулевого размера не тормозится трансфер и заезжает на область памяти, где переменные какие-нибудь лежат? Косвенно это подтверждается тем что адрес после трансфера меняется - не должно быть. Попробуйте размер корректный выставить. По вашей картинке значение должно лежать по моему в адресе 0x13818-0x1381B (для первого дескриптора). Дальше думать будем если не пойдет...
Go to the top of the page
 
+Quote Post
gosu-art
сообщение Nov 27 2012, 04:06
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



Цитата(alexPec @ Nov 26 2012, 17:45) *
Первое что в голову приходит - а почему размер-то передаваемых данных выставлен в ноль (bytes to transfer)?
Может из-за нулевого размера не тормозится трансфер и заезжает на область памяти, где переменные какие-нибудь лежат? Косвенно это подтверждается тем что адрес после трансфера меняется - не должно быть. Попробуйте размер корректный выставить. По вашей картинке значение должно лежать по моему в адресе 0x13818-0x1381B (для первого дескриптора). Дальше думать будем если не пойдет...

Красным я выделил невыполнившийся дескриптор. а ниже со значением 0х100808(запуск начинается с него) это как раз предыдущий, тут все нормально. Что касается с заежанием на область памяти, то я специально сделал отдельную двухпортовую память. Одна сторона SGDMA вторая проц. Даже если превыситься размер буфера, то будет крутится внутри этого порта, только данные испортятся.
Но похоже он next дескиптор не прогружает т.к. сигнал READY не выставляется.
вот как должно быть, это когда с брэйкпойнтом:
Прикрепленное изображение

Запись начинается с 0x11100. +256 в конце получаем 0х11200. ready находится в неактивном состоянии (прогружается дескриптор, я так понял) и потом поднимается обратно уже с необходимым следующим адресом 0х11000. Вот так все работает.
Сейчас же если не ставить брэйк то выполнятся 1 дескриптор который вызываю через do_async и на этом все и заканчивается. READY больше не активен после передачи.
Попробую еще в QSYSe собраться 12,1 rolleyes.gif Ща пока в SOPC работаю 11,1
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Acvarif   SG-DMA в режиме Stream To Memoy   Aug 25 2012, 07:49
- - barabek   Прошу прощенья, немного не в тему. А Вам точно нуж...   Aug 26 2012, 22:48
|- - Acvarif   Цитата(barabek @ Aug 27 2012, 01:48) Прош...   Aug 27 2012, 09:23
|- - ISK   Цитата(Acvarif @ Aug 27 2012, 12:23) У ме...   Aug 28 2012, 06:11
|- - Acvarif   Цитата(ISK @ Aug 28 2012, 09:11) У вас зд...   Aug 28 2012, 10:59
|- - alexPec   Цитата(Acvarif @ Aug 28 2012, 14:59) Сраз...   Aug 28 2012, 12:09
|- - Acvarif   Цитата(alexPec @ Aug 28 2012, 15:09) Ну н...   Aug 28 2012, 12:31
|- - alexPec   Цитата(Acvarif @ Aug 28 2012, 16:31) Да, ...   Aug 28 2012, 19:11
|- - Acvarif   Спасибо. Попробую разобраться.   Aug 29 2012, 07:45
|- - Acvarif   Собрал систему с SGDMA, но без FIFO в надежде на в...   Sep 2 2012, 15:46
|- - alexPec   В мануале же все написано. Реди - это сигнал готов...   Sep 3 2012, 05:56
|- - Acvarif   Цитата(alexPec @ Sep 3 2012, 08:56) В ман...   Sep 3 2012, 07:46
|- - ISK   ЦитатаПо приходу ready пользовательская логика выс...   Sep 3 2012, 11:00
|- - alexPec   Если есть фифо - то 100нс конечно не проблема ( пр...   Sep 3 2012, 17:12
|- - Acvarif   ЦитатаДанные должны подаваться на шину вместе с си...   Sep 4 2012, 06:14
|- - Acvarif   Виноват. Ошибка вышла. Попутал sgdma и dma. Пытаюс...   Sep 5 2012, 07:39
|- - alexPec   Штатными функциями все делается. (с небольшим допи...   Sep 5 2012, 08:20
|- - Acvarif   Спасибо. У Вас в коде несколько дисрипторов, тое...   Sep 5 2012, 12:09
|- - alexPec   Цитата(Acvarif @ Sep 5 2012, 16:09) Спаси...   Sep 6 2012, 05:03
|- - Acvarif   Цитата(alexPec @ Sep 6 2012, 08:03) Буфер...   Sep 7 2012, 13:21
|- - alexPec   Код не смотрел, но первое что в голову приходит: ...   Sep 7 2012, 14:15
|- - Acvarif   Цитата(alexPec @ Sep 7 2012, 17:15) Код н...   Sep 7 2012, 15:47
|- - alexPec   ЦитатаСудя по диаграмме от SOPC в моем случае 16 б...   Sep 7 2012, 19:46
|- - Acvarif   Спасибо за клок. Сделал все по правилам. Поставил...   Sep 11 2012, 07:26
|- - alexPec   ЦитатаНо всеравно есть непонятности. Не пойму как ...   Sep 11 2012, 20:49
|- - Acvarif   Цитата(alexPec @ Sep 11 2012, 23:49) Возм...   Sep 12 2012, 05:53
|- - alexPec   Цитата(Acvarif @ Sep 12 2012, 09:53) Спас...   Sep 12 2012, 06:16
|- - Acvarif   Цитата(alexPec @ Sep 12 2012, 09:16) Став...   Sep 12 2012, 11:25
|- - Acvarif   Большое Спасибо alexPec за поддержку. Заработало ...   Sep 12 2012, 17:20
|- - alexPec   Цитата(Acvarif @ Sep 12 2012, 15:25) В об...   Sep 12 2012, 19:29
|- - Acvarif   Выкладываю то, что получилось и вроде работает. Мо...   Sep 18 2012, 19:57
|- - alexPec   Цитата1. Не всегда последовательно сменяются буфер...   Sep 19 2012, 16:15
|- - Acvarif   Цитата(alexPec @ Sep 19 2012, 19:15) А у ...   Sep 19 2012, 17:29
|- - alexPec   Цитата(Acvarif @ Sep 19 2012, 21:29) Но E...   Sep 19 2012, 19:27
|- - Acvarif   Цитата(alexPec @ Sep 19 2012, 22:27) Ну т...   Sep 20 2012, 06:40
|- - alexPec   Цитата(Acvarif @ Sep 20 2012, 10:40) Тепе...   Sep 21 2012, 11:39
|- - Acvarif   Цитата(alexPec @ Sep 21 2012, 14:39) Я бы...   Sep 21 2012, 13:48
|- - alexPec   Цитата(Acvarif @ Sep 21 2012, 17:48) Да, ...   Sep 21 2012, 14:24
|- - Acvarif   При наращивании количества данных поступающих на s...   Sep 28 2012, 07:44
|- - alexPec   Регистр статуса и контрола в каком состоянии после...   Sep 28 2012, 09:37
|- - Acvarif   Цитата(alexPec @ Sep 28 2012, 12:37) Реги...   Sep 28 2012, 10:33
|- - alexPec   А покажите дамп сформированных дескрипторов   Sep 28 2012, 12:43
|- - Acvarif   Цитата(alexPec @ Sep 28 2012, 15:43) А по...   Sep 28 2012, 13:17
|- - Acvarif   С дампом (как вывести на консоль) так и не разобра...   Sep 28 2012, 19:42
|- - alexPec   Цитата(Acvarif @ Sep 28 2012, 23:42) С да...   Sep 29 2012, 09:23
|- - Acvarif   Цитата(alexPec @ Sep 29 2012, 12:23) Дамп...   Oct 1 2012, 18:50
|- - alexPec   Написано же : slide the pointer until 32 byte bo...   Oct 1 2012, 20:09
|- - Acvarif   ЦитатаТут выравнивается начало дескриптора по 32-Б...   Oct 2 2012, 07:17
|- - Acvarif   Все работает. С одним буфером. С двумя буферами н...   Oct 3 2012, 14:06
|- - alexPec   Честно говоря, не помню из-за чего, 2 года назад б...   Oct 3 2012, 17:14
|- - Acvarif   Спасибо. Примерно так и сделал. Вроде работает. Но...   Oct 4 2012, 17:11
|- - alexPec   Max_desc_proccessed - это если вам надо прерывание...   Oct 4 2012, 20:15
|- - Acvarif   Цитата(alexPec @ Oct 4 2012, 23:15) Max_d...   Oct 5 2012, 06:47
|- - alexPec   Цитата(Acvarif @ Oct 5 2012, 10:47) Спаси...   Oct 5 2012, 07:57
|- - Acvarif   Цитата(alexPec @ Oct 5 2012, 10:57) Похож...   Oct 9 2012, 16:00
|- - alexPec   ЦитатаС дескрипторами так толком и не понял почему...   Oct 9 2012, 18:30
- - gosu-art   У меня тоже есть вопросики Имею 2 буфера по 8к....   Nov 19 2012, 09:32
|- - alexPec   Цитата(gosu-art @ Nov 19 2012, 13:32...   Nov 20 2012, 05:29
- - gosu-art   Т.е. последовательность такая?: 1. Создаю дескрипт...   Nov 20 2012, 06:09
|- - alexPec   Цитата(gosu-art @ Nov 20 2012, 10:09...   Nov 21 2012, 10:04
|- - gosu-art   Цитата(alexPec @ Nov 21 2012, 14:04) Поче...   Nov 23 2012, 06:48
|- - alexPec   В коде долго разбираться, можете чего-то не замети...   Nov 23 2012, 16:25
|- - gosu-art   Цитата(alexPec @ Nov 23 2012, 19:25) Поче...   Nov 26 2012, 08:25
|- - alexPec   Чего-то не совсем все ясно, вы, когда дескрипторы ...   Nov 26 2012, 10:10
|- - alexPec   И все же, почему количество передаваемых байт в де...   Nov 27 2012, 16:00
- - gosu-art   В общем я тут поковырял alt_avalon_sgdma_construct...   Nov 28 2012, 06:50
|- - alexPec   Цитата(gosu-art @ Nov 28 2012, 10:50...   Nov 28 2012, 09:39
- - gosu-art   Теперь работает прием и передача (256 байт) без уч...   Nov 29 2012, 10:42
- - Копейкин   Прошу подсказать, где ошибся... Использую аналогич...   Jan 30 2013, 10:22
|- - alexPec   Цитата(Копейкин @ Jan 30 2013, 14:22) Где...   Jan 30 2013, 14:17
|- - Acvarif   Цитата(Копейкин @ Jan 30 2013, 14:22) Дес...   Jan 30 2013, 15:05
- - Копейкин   Acvarif, там всё сложнее. DMA заполняет только час...   Jan 30 2013, 15:16
|- - alexPec   Цитата(Копейкин @ Jan 30 2013, 19:16) Пре...   Jan 30 2013, 18:30
- - Копейкин   Мне хотелось по минимуму задействовать процессор, ...   Jan 31 2013, 07:43
- - Копейкин   Посмотрел внимательно на Альтере: ссылка там анг...   Jan 31 2013, 12:51
|- - alexPec   Цитата(Копейкин @ Jan 31 2013, 16:51) Пол...   Jan 31 2013, 16:30
- - Копейкин   Я сейчас, как и описывал, сделал бесконечный цикл ...   Jan 31 2013, 16:45
- - prussta   Добрый день! Хочу запустить SGDMA в режиме mem...   Feb 1 2014, 17:38


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

 


RSS Текстовая версия Сейчас: 11th August 2025 - 13:34
Рейтинг@Mail.ru


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