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

 
 
 
Reply to this topicStart new topic
> Программирование PCI core на С++, как управлять и следить за работой PCI через HAL API???
xxxmatrixxx
сообщение Nov 9 2012, 10:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 28-03-12
Из: Санкт-Петербург
Пользователь №: 71 050



Здравствуйте,

требуется осуществить обмен по PCI на частоте 66 МГц и разрядностью 64 бита...

PCI Lite не подходит, т.к. максмальная разрядность 32 бита...

PCI идет в составе с NIOS2, DDR... c установленной MicroC и стэком протоколов TCP/IP nichestack...

Мне необходимо адресоваться к внутренней DDR, размер которой равен 256 Мбайт и логически разбита на 4 банка(страницы) по 64Мбайт

Проект в SOPC Builder и инициализация коры PCI представлены на рисунках ниже...

Вопрос:
Я по документации нашел только как адресное пространство шины PCI транслируется на шину Avalon и наоборот, но как отследить состояние на шине PCI я так и не нашел... т.е. как узнать, завершился ли обмен по шине, передались ли все данные на сторону PСI и т.д. ???



У меня реализована шина PCI 64 бита, а сторона Avalon работает на 32 разряда...
Вопрос такой: когда я буду принимать по шине PCI данные 64 бита, то скорее всего они разобьются в 2 ячейки по 32 бита на стороне Avalon,
но как передавать на сторону PCI - 2 по 32 бита, либо одной пачкой по 64 бита??? другой вариант я рассматривал, чтобы сделать на стороне Avalon 64разрядную память, а не 32х разрядную... подключить к основной схеме через мост 64/32 бита... что посоветуете?


Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение


Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
gosu-art
сообщение Jan 25 2013, 07:56
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



Я тоже сейчас хочу попробовать PCI через SOPC. пока без Ниоса. Не пройму... че за Avalon CRA port? как его использовать?
Go to the top of the page
 
+Quote Post
gosu-art
сообщение Feb 6 2013, 14:33
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



Ну пример из гайда заработал 1111493779.gif Пишу, читаю из компа через обычный ДМА.
Прикрепленное изображение

Правда за одну транзакцию ДМА можно передать максимум 4к байт.
Go to the top of the page
 
+Quote Post
gosu-art
сообщение Feb 6 2013, 14:33
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



....
Go to the top of the page
 
+Quote Post
gosu-art
сообщение Feb 7 2013, 21:05
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 555
Регистрация: 14-10-09
Пользователь №: 52 939



Протестировал скорость с SOPC PCI + DMA+NIOS! в устройство 95МБ в комп 114 МБ! Старый ДМА не позволяет передавать более 4096 байт при 1024 берсте( время одной транзакции = 38-45 мкс), если поставить длину передачи больше, то контроллер ДМА выставляет burst lenth = 0, что для PCI SOPC контроллера непозволительно (должно быть минимум 1 для одиночной) происходит зависание... приходится перепрошивать ПЛИСcrying.gif Ниосом,причем, уже сложновато разруливать таким потоком при таком ДМА. Буду пробовать SGDMA.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 21:21
Рейтинг@Mail.ru


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