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

 
 
> 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
 
Start new topic
Ответов
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
RobFPGA
сообщение Nov 21 2014, 18:49
Сообщение #4


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

Группа: Свой
Сообщений: 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



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

 


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


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