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

 
 
> Обмен данными между ПЛИС и NIOS
limbast
сообщение Oct 12 2017, 12:34
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 28-01-05
Пользователь №: 2 252



Приветствую всех.
Имеется АЦП, с которого ПЛИС считывает, суммирует и умножает данные. После определенного числа выборок полученные данные нужно передать NIOS для дальнейших действий.
Подумалось, что можно передать просто через порт NIOS-а, но он ограничен 32 битами, а нужно передать два значения в 40 и 56 бит. В принципе можно разбить на несколько портов разной разрядности, а в NIOS склеить.
Далее подумал использовать Dual Port Memory. Но придется городить модуль для запихивания данных в эту память. Может есть модуль, который сам генерирует требуемые двухпортовой памяти сигналы, а на входе нужны только данные любой длины?
И наконец, а можно ли сделать чтобы регистры данных железа (40 и 56 бит) отображались в адресное пространство NIOS, чтобы NIOS фактически мог в любое время взять и прочитать этот регистр, наподобие чтения той же Dual Port Memory.

Сообщение отредактировал limbast - Oct 12 2017, 12:36
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Swup
сообщение Oct 12 2017, 14:23
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 127
Регистрация: 2-09-11
Из: Москва
Пользователь №: 66 970



Цитата(limbast @ Oct 12 2017, 16:34) *
можно ли сделать чтобы регистры данных железа (40 и 56 бит) отображались в адресное пространство NIOS


На сколько я понял вашу проблему, то передача этих значений ваших, довольно редкая операция.
И вот этот вариант мне кажется наиболее удобным, чем городить отдельную память и так далее.

Проблема в том, что вы видимо не достаточно осведомлены как работает qsys и avalon-mm в частности.

В общих чертах я бы сделал ваш модуль весь целиком, блоком qsys.
Сделал бы на нем avalon-mm slave с 32х битной шиной данных и irq sender.
В 0 адресе имел бы регистр управления с прерыванием и маской прерывания.
При получении данных писал бы их в регистры по 32 бита в адреса 1,2,3,4 и выставлял бы прерывание.
По прерыванию в ниосе читал бы эти 4 регистра (можно через указатель, можно через IORD. Второе лучше).
Сбрасывал бы прерывание.

Это все достаточно просто. Стоит разобраться один раз.

Вариант с памятью вообще выглядит избыточно.
А с пио, как-то кривовато. Зато можете сделать прямо сейчас, если спешите.
Go to the top of the page
 
+Quote Post



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

 


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


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