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