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

 
 
> RAM и PowerPC
AlexB_88
сообщение Sep 3 2013, 13:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 28-09-11
Пользователь №: 67 424



Всем доброго времени суток!!)) Работая с Ml-403 , столкнулся с проблемой. Для тестового проекта была создана Dual port RAM в ISE с помощью IP_core generator. Задача состояла в том, чтобы читать данные из памяти мог PowerPC. Для этого было создано в XPS IP ядро с памятью. Собственно вопрос в том как сделать так чтобы шина PLB задышала? То есть как назначить порты адреса для чтения из процессора и порты чтения памяти для Dual port RAM.
Пытался вывести наружу сигналы IP2BUS_data , BUS2IP_addr, чтобы назначить их на соответствующие порты памяти. Подскажите пожалуйста это правильный подход или есть другой. Выбрал такой подход так как в предыдущем проекте смог писать и читать регистры из PowerPC, путем того ,что сделал внешние порты регистров из User_logica.
Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Sep 16 2013, 08:17
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Внимание вопрос. На плате есть внешняя память типа ДДР?

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

Обмен данными память - процессор происходит естественным образом, чтение - запись по заданному адресному пространству.
Теперь обмен АЦП - память. Поскольку все стандартное, то не вижу смысла придумывать велосипед, и для этого обмена надо использовать ДМА модуль (опять же готовый). Если хочется трудностей то можно сделать свой модуль с мастер доступом к шине.

Теперь если внешней памяти нет.
По методу задачи чайника, внутреннюю можно сделать либо из БРАМа либо на регистрах. Регистры - жрут ресурсы плис, БРАМы - спец блоки, которые кроме как для памяти больше и девать некуда. Потому я бы делал память на БРАМ блоках, потому что для этого надо просто сказать дайте память и всеsm.gif... И поскольку это стандартный компонент, то я бы подключал его тоже стандартным путем, то есть через контроллер на шину процессора.

Обмен данными память - процессор происходит опять естественным образом.
Обмен АЦП - память опять через ДМА или мастер модуль.


А если подойти творчески, то можно сделать так:

Модуль сбора данных с АЦП, после пост обработки кладет их в ФИФО. ФИФО - это стандартный элемент, который имеет выход либо в регистр либо в шину сразу. Дальше вешаете его на шину (напрямую или через переходник) и получаете интуитивный режим чтения данных со стороны процессора, и удобный способ записи со стороны АЦП. ФИФО создается на БРАМах.

Go to the top of the page
 
+Quote Post
AlexB_88
сообщение Sep 16 2013, 10:06
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 28-09-11
Пользователь №: 67 424



Цитата(Golikov A. @ Sep 16 2013, 12:17) *
Внимание вопрос. На плате есть внешняя память типа ДДР?

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

Обмен данными память - процессор происходит естественным образом, чтение - запись по заданному адресному пространству.
Теперь обмен АЦП - память. Поскольку все стандартное, то не вижу смысла придумывать велосипед, и для этого обмена надо использовать ДМА модуль (опять же готовый). Если хочется трудностей то можно сделать свой модуль с мастер доступом к шине.

Теперь если внешней памяти нет.
По методу задачи чайника, внутреннюю можно сделать либо из БРАМа либо на регистрах. Регистры - жрут ресурсы плис, БРАМы - спец блоки, которые кроме как для памяти больше и девать некуда. Потому я бы делал память на БРАМ блоках, потому что для этого надо просто сказать дайте память и всеsm.gif... И поскольку это стандартный компонент, то я бы подключал его тоже стандартным путем, то есть через контроллер на шину процессора.

Обмен данными память - процессор происходит опять естественным образом.
Обмен АЦП - память опять через ДМА или мастер модуль.


А если подойти творчески, то можно сделать так:

Модуль сбора данных с АЦП, после пост обработки кладет их в ФИФО. ФИФО - это стандартный элемент, который имеет выход либо в регистр либо в шину сразу. Дальше вешаете его на шину (напрямую или через переходник) и получаете интуитивный режим чтения данных со стороны процессора, и удобный способ записи со стороны АЦП. ФИФО создается на БРАМах.



спасибо Вам за ответ) Внешней памяти у нас нет поэтому нам подходит путь два(контроллер памяти и память ). Поправьте меня если я не прав. Тогда последовательность действий будет следующая:
в XPS я добавляю два IP ядра это брам контроллер и брам блок.
Далее я делаю порт Б брам блока внешними (это порты clk, rst, en, wen, addr, din и dout).
делаю топовый файл процессора в ISE и в нем я вижу все эти 7 портов. И к ним я уже должен подключаться?
я правильно Вас понял?

Или:
Я делаю своё IP-ядро мастером на PLB шине и, зная адрес BRAM контроллера, читаю и пишу данные туда как из своего IP-ядра, так и из процессора. Но в таком случае я не смогу одновременно писать и читать данные из своего IP-ядра и из процессора?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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