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

 
 
> Как сделать параллельную шину в NIOS?
juvf
сообщение Sep 6 2011, 11:32
Сообщение #1


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Нужно из NIOS читать писать обычное статическое ОЗУ, по параллельной шине. Т.е. нужно в ниосе шина адреса, шина данных и управление - rd, wr и cs. Как собрать такой контроллер параллельной шины в Qsys? В SOPC-Builder собрал через Avalon Memory Mapped Tristate Slave и Avalon Tristate Bridge. Пытаюсь также в Qsys сделать - не получается. Почему-то в итоге сигнал wr из процессора выходит как inout, т.е. двунаправленный.

Цитата(Kuzmi4 @ Aug 30 2011, 17:28) *
2 juvf
не пробовали AVALON компонент использовать вместо мостов?
В приложении моё чЮдо, использую правда в SOPC, но проблем не было laughing.gif
[attachment=60026:sram_top.7z]
Это я вообще не понял, что к чему.

Как сделать простую, обычную, параллельную шину в NIOS с помощью Qsys?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
WitFed
сообщение Dec 8 2011, 08:20
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 271
Регистрация: 6-12-11
Из: Taganrog
Пользователь №: 68 701



Конечно, только не во всех версиях ядра Ниос этот старший бит работает.
Мы обычно с IOWR/IORD не заморачиваемся, отключая кэш данных в SOPCB -- тогда и sth хорошо работает напрямую, и чтение.
Ну, пару дней попрыгаем после создания очередного проекта, почему это записи на шину не попадают из проца, затем кэш нафиг -- и прога не замутняется больше лабудой всякой ! wink.gif
Вообще, авторам Ниос надо бы вводить понятие кэшируемых и некэшируемых регионов, как бывает в приличных процах, и чтобы на старте автор сам задавал их расположение, хотя бы с точностью до 1 бита на 1М в маске какой-то.
А как криво выглядят фразы в мануале "After reset, the contents of the instruction cache and data cache are unknown. They must be initialized at the start of the software reset handler for correct operation." ! Неужто резет на эти блочки трудно им было завести ? Зато спецкоманды ассемблерные устроили и обрабатывают в ядре wink.gif
Go to the top of the page
 
+Quote Post
juvf
сообщение Dec 12 2011, 08:07
Сообщение #3


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

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(WitFed @ Dec 8 2011, 14:20) *
Мы обычно с IOWR/IORD не заморачиваемся, отключая кэш данных в SOPCB -- тогда и sth хорошо работает напрямую, и чтение.

а как вы делаете? понятно что вы кеш отключаете. а что дальше? как изменить 1 бит в GPIO без макрасов IOWR/IORD?

*((alt_u32*)(PORTB_BASE)) |= (1 << MODBUS_1);

такой код выставит битик с номером MODBUS_1 на GPIO по адресу PORTB_BASE, не затрагивая другие?
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 05:42
Рейтинг@Mail.ru


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