Перейти к содержанию
    

Контроллер прерываний

Существует отлаженый блок работы со SDRAM памятью выполняющий потоковое копирование данных внутри этой памяти и на 1 приемник данных

 

Необходимо добавить еще 1-3 приемников для выполнения дополнительных операций с данными из память. Как их добавить так чтобы можно было указывать приоритет работы с памятью каждого из дополнительных приемников.

 

Отлаженый блок работает по строгому циклу - период которого изменять нельзя.

 

Подскажите где можно почитать про основы построения контроллера прерываний или где взять корку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Существует отлаженый блок работы со SDRAM памятью выполняющий потоковое копирование данных внутри этой памяти и на 1 приемник данных

 

Необходимо добавить еще 1-3 приемников для выполнения дополнительных операций с данными из память. Как их добавить так чтобы можно было указывать приоритет работы с памятью каждого из дополнительных приемников.

 

Отлаженый блок работает по строгому циклу - период которого изменять нельзя.

 

Подскажите где можно почитать про основы построения контроллера прерываний или где взять корку?

Не совсем понял вам нужен контроллер прерываний или приоритетный декодер ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А может использовать систему на кристалле?

 

Разбираюсь с Nios II поэтому пока ниче не могу сказать. Начальство не рассматривает пока такого варианта. Но если все будет подходить по скорости, объему и ногам то думаю будем пользовать.

 

Кстати а какой компилятор используется для програмирования под Nios или Nios II

 

Не совсем понял вам нужен контроллер прерываний или приоритетный декодер ?

 

А в чем разница?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не совсем понял вам нужен контроллер прерываний или приоритетный декодер ?

 

А в чем разница?

Хммм ИМХО задача контроллера прерываний среагировать на конкретное событие и сообщить об этм системе верхней иерархии и все.

А задача приртетного декодера в вашем случае будет более точным назвать его многоканальным контроллером, развести одну память на несколько процессов/блоков. В котором доступ к разделяемуму ресурсу (памяти) определяеться приоритетом запроса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда мне надо приоритетный декодер с контроллером прерываний.

У меня один процес существует всегда и имет нивысший приоритет обращения к памяти. А другие могут быть а могут и не быть.

 

Где взять доки и теорию. А то снова модифицировать конечный автомат а затем тестировать блок нет никакого желания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда мне надо приоритетный декодер с контроллером прерываний.

У меня один процес существует всегда и имет нивысший приоритет обращения к памяти. А другие могут быть а могут и не быть.

 

Где взять доки и теорию. А то снова модифицировать конечный автомат а затем тестировать блок нет никакого желания.

Может я чего-то не понимаю, но, имхо, тут никакой глубокой теории нет - как организуете, так и будет. Я делал просто, по зравому смыслу: имеется внешняя память, внутри ПЛИС имеется несколько устройств, которым надо туда лазить (по очереди, ессно). Устройств было 4 штуки. Контроллер памяти содержал соответствующее количество шин данных и адресов (для каждого устройства) и сигналы Request, Grant для каждого устройства. Когда устройство хочет обратиться к памяти, оно выставляет сигнал Request и ждет своего сигнала Grant, при получении которого начинает работать. Контроллер памяти для обработки запросов и формирования логики разрешений использует простой арбитр - если ресурс не занят, то по запросу предоставляется разрешение. Если ресурс занят, то очередной запрос ждет. Если при освобождении ресурса запросы выставили два и более устройств, то разрешение получит устройство с наибольшим приоритетом. Все это успешно работает в 6-м циклоне.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас у меня все приблизительно так и построено. Сделал основную операцию с Источник1 смотрим есть ли команда по передаче на Источник2

Если есть Отдаем данные Источнику2 - нет простой

Это реализовано с помощью конечного автомата.

Сейчас:

Добавили Источник3 - изменили автомат

отладили

протестировали

Источник4 - изменили автомат

отладили

протестировали

Источник5 - изменили автомат

отладили

протестировали

и т. д.

Сейчас не извесно сколько будет источников

 

Хочу:

Добавили приоритетный декодер

отладили

протестировали

Добавили Источник3

Добавили Источник4

Добавили Источник5

и т. д.

 

Задача возникла в процессе разработки поектому изначально на нее никто не закладывался

 

Думаете так не производительней?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Serega Doc

Уже в который раз человечество изобретает велосипед :)

Посмотрите описание на шину AHB, Wishbone. Там это уже всё есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сейчас у меня все приблизительно так и построено. Сделал основную

[...]

Источник5 - изменили автомат

отладили

протестировали

и т. д.

Сейчас не извесно сколько будет источников

 

Хочу:

Добавили приоритетный декодер

отладили

протестировали

Добавили Источник3

Добавили Источник4

Добавили Источник5

и т. д.

 

Задача возникла в процессе разработки поектому изначально на нее никто не закладывался

 

Думаете так не производительней?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда мне надо приоритетный декодер с контроллером прерываний.

У меня один процес существует всегда и имет нивысший приоритет обращения к памяти. А другие могут быть а могут и не быть.

 

Где взять доки и теорию. А то снова модифицировать конечный автомат а затем тестировать блок нет никакого желания.

наткнулся вчера, посмотрите может что поможет

xapp535 "High Performance Multi-Port Memory Controller"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...