Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Захватить шину NIOS. Как ?
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
Digi
К NIOS на внешнюю шину подключена SRAM из которой исполняется программа и хрянятся несколько массивов с данными. Периодически отдельный от NIOS модуль должен писать/читать эту SRAM. Подскажите, как по простому захватить tristate шину у NIOS и разрешить на некоторое время доступ к SRAM другому устройству ? Во время захвата шины NIOS должен тоже остановиться.

Пока что реализовано так: если приходит запрос на захват, контроллер дожидается завершения RD WR, затем останавливает такты NIOS и мультиплексором переключает шину куда нужно. Но в этом случае останавливаются все таймеры и очень часто начинает глючить JTAG. Если на таймеры подавать отдельный clk, то объем NIOS сильно разрастается и уже с трудом влазит в ПЛИС, а место еще нужно.
murmel1
На сколько по-простому?
Вы что подключаете "отдельный" компонент вне SOPC ?
Если сделать это в SOPC необходимый арбитраж будет создан автоматически. Заводите "отдельный" в систему и подключайте внутри нее.

На сколько доступов нужно перехватить доступ ) ?
Если на десятки то это делается назначением квот в системе (термин точно не помню, а дома под рукой нет Q). Процу назначьте 1, вашему компоненту сколько надо, например 16. Это означает, что ваш компонент будет беспрепятственно иметь доступ 16 раз непрерывно, а проц смогут обрывать после каждого.
В более сложном случае создайте свой компонент SOPC - арбитр Avalon-MM с приоритетностью (у арбитра по молчанию приоритетность карусельная). Делов-то...
Ссылка на литературу: сигнал waitrequest

Хотите подробнее - пишите подробнее.

Останавливать клок - ничего не получите.
DASM
"(термин точно не помню, а дома под рукой нет Q)" арбитраж это называется
Digi
ОК, спасибо. Буду изучать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.