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

 
 
 
Reply to this topicStart new topic
> fifo + microblaze прерывания
Alexey_Rostov
сообщение Nov 21 2014, 13:50
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Здравствуйте! Подскажите как лучше решить след задачу:
есть fifo + microblz + dma + ddr
Необходимо "аппаратно" наполнить fifo и программно c помощью mcrblz записать данные в DDR.

Пока делаю так: вешаю FIFO на AXI для процессора (DMA) c одной стороны, а с другой вывожу ноги наружу.
Наполняю FIFO и по сигналу full процессор должен дать команду DMA на трансфер данных в ДДР.

Вот тут и загвоздка: как сигнал full сделать сигналом прерывания для процессора?


FIFO сделал через coregen и в XPS повесил на шину через интерф AXI4.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Nov 21 2014, 16:09
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



можно добавить еще порт GPIO с прерыванием, и сигнал завести как бы на его ногу, так не?
Go to the top of the page
 
+Quote Post
Alexey_Rostov
сообщение Nov 21 2014, 17:50
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Цитата(Golikov A. @ Nov 21 2014, 19:09) *
можно добавить еще порт GPIO с прерыванием, и сигнал завести как бы на его ногу, так не?


хорошая идея. Еще посматриваю в сторону сигнала s_axi_rready для интерфейса. Вроде как по нему процессор получает информацию о готовности канала чтения
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Nov 21 2014, 18:32
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



есть мнение что нечего лезть в шину на прикладном уровне.
Надо поглядеть нет ли у контроллера ДМА сигнала запуска, его еще логично было бы заюзать, а вот какие-то внутренние сигналы шины ИМХО не верно. Но еще раз ИМХО, может у кого есть и другое аргументированное мнение...
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Nov 21 2014, 18:49
Сообщение #5


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

Цитата(farbius @ Nov 21 2014, 20:50) *
хорошая идея. Еще посматриваю в сторону сигнала s_axi_rready для интерфейса. Вроде как по нему процессор получает информацию о готовности канала чтения


Вы не на тех "девушек" посматриваете sm.gif

Если уж так надо такую колбасу колбасить - в смысле через прерывании программно запускать DMA, то в составе любой системы Microblaze уже есть контроллер прерывания. На этот контроллер заводятся все прерывания в системе (таймер, UART, DMA, тот же GPIO). По аналогии заводите туда еще один сигнал, подключаете к выводу FULL (в соответствующей полярности), пишете функцию инициализации и обработки соответствующего прерывания и вуаля - начинаете периодически терять ваши данные на входе в фифо sad.gif Поскольку как быстро это прерывание обработается прогнозировать хоть и можно но тяжело - а данным может быть ну уж очень невтерпеж! Тогда уж лучше цепляйте сигнал прерывания на AFULL.

Правильнее наверное подключить источник ваших данных непосредственно на вход stream DMA (черз фифо или непосредственно) и уже получать прерывание по окончанию пересылки заданного количества данных в память.

Успехов! Rob.



Go to the top of the page
 
+Quote Post
Alexey_Rostov
сообщение Nov 22 2014, 05:35
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 236
Регистрация: 28-06-13
Из: Минск, Беларусь
Пользователь №: 77 312



Цитата(RobFPGA @ Nov 21 2014, 21:49) *
Правильнее наверное подключить источник ваших данных непосредственно на вход stream DMA (черз фифо или непосредственно) и уже получать прерывание по окончанию пересылки заданного количества данных в память.


большое спасибо за совет. Действительно лезть в шину это я погорячился... laughing.gif
Про подачу данных непосредственно на вход ДМА обязательно посмотрю.

Вообще в идеале задача решалась бы так: на шину вешать ядро FIFO с выходом в сторону процессора (ДМА) , а вход выводить наружу. Тут я до конца не разобрался: в xps ядра FIFO такой возможности не предоставляют... (из двух ядер одно для ethernet, другое для ДМА (скорее всего то о чем Вы говорите))
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 15:16
Рейтинг@Mail.ru


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