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

 
 
> mt32 под EP3C25 не работает в режиме Burst, Проблема организации пакетного режима
xxxmatrixxx
сообщение Jun 19 2012, 13:25
Сообщение #1


Участник
*

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



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

У меня такая проблема:
Сделал программу на Verilog, которая принимает данные из вне, а потом перекидывает их на сторону PCI(работал, как таргет, считывали с меня по прерыванию)... но такой вариант был слишком затратен по времени, т.к. верхнее ПО было написано под Linux, а сам чипсет компа не давал возможности с меня считывать пакетно... что только не пробовал, ничего не выходило, прочитал на форуме ELECTRONIX, подсказали, что придется реализовывать мастера...

Так вот поставил mt32 core для Альтеры с возможностью работы в режиме 66Мгц...

Прога под Linux пока не подправлена, но я попробовал выходить на шину мастером и писать данные в меня... я увидел, что я пишу так же, т.е. одиночными посылками, а не пакетно....

Вопрос: что необходимо указать в установках core(я пробовал менять конфигурацию баров с non - prefetchable на prefetchable), либо как организовывать обмен по PCI так, чтобы я работал в пакетном режиме???

Спасибо...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
XVR
сообщение Jun 29 2012, 08:35
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата
Вопрос: как необходимо вести обмен между мною и ПК? какой адрес памяти ПК, выделенный для меня, должен передаваться мне(просто там 64 бита, а мне передается старшая часть 64го слова)
Если там 64 бита, то вы и должны передавать 64 бита. Т.е. у вас должна быть PCI64. Если же у вас PCI32, то со стороны Linux'а вы должны заказывать себе буфер для обмена в нижней части памяти (в 32х битах)

Скажите своему програмисту, что бы позвал pci_set_dma_mask(pdev, DMA_32BIT_MASK) перед pci_alloc_consistent
Отдавать на плату нужно будет младшую часть 64х битного адреса (от pci_alloc_consistent)
Go to the top of the page
 
+Quote Post
xxxmatrixxx
сообщение Jul 6 2012, 09:25
Сообщение #3


Участник
*

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



Цитата(XVR @ Jun 29 2012, 12:35) *
Если там 64 бита, то вы и должны передавать 64 бита. Т.е. у вас должна быть PCI64. Если же у вас PCI32, то со стороны Linux'а вы должны заказывать себе буфер для обмена в нижней части памяти (в 32х битах)

Скажите своему програмисту, что бы позвал pci_set_dma_mask(pdev, DMA_32BIT_MASK) перед pci_alloc_consistent
Отдавать на плату нужно будет младшую часть 64х битного адреса (от pci_alloc_consistent)


XVR, Не мог бы скинуть код под Линукс, если есть конечно, где ты работаешь как таргет, а в тебя пишут.... буду очень признателен
мыло: petrov3372@yandex.ru
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 6 2012, 13:57
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(xxxmatrixxx @ Jul 6 2012, 13:25) *
XVR, Не мог бы скинуть код под Линукс, если есть конечно, где ты работаешь как таргет, а в тебя пишут.... буду очень признателен

Запись в таргет под управлением CPU возможна только словами. Для записи блоками нужен мастер.
Go to the top of the page
 
+Quote Post
xxxmatrixxx
сообщение Jul 9 2012, 07:50
Сообщение #5


Участник
*

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



Цитата(XVR @ Jul 6 2012, 17:57) *
Запись в таргет под управлением CPU возможна только словами. Для записи блоками нужен мастер.


Так комп работает как таргет, а я со стороны своего модуля как мастер...

У меня виснет, когда я захватываю шину, становлюсь мастером на шине и пишу в ПК... вероятнее всего, что проблема в работе со стороны ПК,
либо адрес, который определяет linux и мне выдает, неверный, либо сконфигурирована память на стороне ПК не правильно...

Просто я грешу на неправильную работу проги под Linux...
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jul 9 2012, 09:01
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



У меня mt32 на Cyclone III работает как в Линук, так и в ДОС.
BAR0 и BAR1 проецируются на память ПК, а BAR2 и BAR3 на регистры ввода-вывода в mt32. Один из последних используется для приема начального адреса (через запрос на прерывание), по которому потом в память ПК начинает записываться массив. Правда я записываю в память ПК последовательно по слову, может быть и для того, чтобы не занимать надолго PCI-шину, были сомнения, что иначе ограничивается производительность программы на ПК…
Заметил, что Ваша программа работает с ClkPCI и Clk50. У меня тоже две частоты, обошел коллизии тем, что работаю с внутренним ОЗУ на одной более высокой в процессе подготовки данных, а потом при работе с шиной переключаю на ClkPCI. Ну и соответственно два банка для подготовки данных, работающих по принципу «пинг-понг»…
Go to the top of the page
 
+Quote Post
xxxmatrixxx
сообщение Jul 9 2012, 09:25
Сообщение #7


Участник
*

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



Цитата(Serhiy_UA @ Jul 9 2012, 13:01) *
У меня mt32 на Cyclone III работает как в Линук, так и в ДОС.
BAR0 и BAR1 проецируются на память ПК, а BAR2 и BAR3 на регистры ввода-вывода в mt32. Один из последних используется для приема начального адреса (через запрос на прерывание), по которому потом в память ПК начинает записываться массив. Правда я записываю в память ПК последовательно по слову, может быть и для того, чтобы не занимать надолго PCI-шину, были сомнения, что иначе ограничивается производительность программы на ПК…
Заметил, что Ваша программа работает с ClkPCI и Clk50. У меня тоже две частоты, обошел коллизии тем, что работаю с внутренним ОЗУ на одной более высокой в процессе подготовки данных, а потом при работе с шиной переключаю на ClkPCI. Ну и соответственно два банка для подготовки данных, работающих по принципу «пинг-понг»…


Я использую очередь для согласования частот, а так же по функциональности она больше подходит....

У меня просьба, не смогли бы скинуть код, часть кода, где видно, как работаете с корой как с мастером,
какие настройки для коры ставите, чтобы работать как мастер....

Может у вас будет код под Линукс, где выделяете память, конфигурируете ее под линукс...

Я буду очень благодарен... просто мучаюсь уже 2ю неделю, а копать не очень понимаю где...
Go to the top of the page
 
+Quote Post
Serhiy_UA
сообщение Jul 9 2012, 10:00
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112



Цитата(xxxmatrixxx @ Jul 9 2012, 12:25) *
..какие настройки для коры ставите, чтобы работать как мастер....

По поводу корки PCI_bb, как черного ящика. Не нашел в Вашей программе определения параметров для mt32. Мои, в приложении. Правда, в предыдущем посте я ошибся по BAR3, но это не принципиально...
Программы на ПК под PCI-шину не пишу, пока только синтез ПЛИС...
Прикрепленные файлы
Прикрепленный файл  PCI_bb___defparam.zip ( 5.81 килобайт ) Кол-во скачиваний: 39
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- xxxmatrixxx   mt32 под EP3C25 не работает в режиме Burst   Jun 19 2012, 13:25
- - Serhiy_UA   Цитата(xxxmatrixxx @ Jun 19 2012, 16:25) ...   Jun 20 2012, 05:30
|- - xxxmatrixxx   Цитата(Serhiy_UA @ Jun 20 2012, 09:30) По...   Jun 21 2012, 05:53
|- - Serhiy_UA   lm_tsr[9..0] от SignalTap показывает, что что-то н...   Jun 21 2012, 09:10
|- - xxxmatrixxx   Цитата(Serhiy_UA @ Jun 21 2012, 13:10) lm...   Jun 22 2012, 06:12
|- - Serhiy_UA   Цитата(xxxmatrixxx @ Jun 22 2012, 09:12) ...   Jun 22 2012, 09:08
|- - xxxmatrixxx   Цитата(Serhiy_UA @ Jun 22 2012, 13:08) на...   Jun 28 2012, 12:23
|- - xxxmatrixxx   RE: mt32 под EP3C25 не работает в режиме Burst   Jul 4 2012, 09:11
||- - 608   А запись одного слова в память компьютера, по выде...   Jul 4 2012, 12:38
||- - xxxmatrixxx   Цитата(608 @ Jul 4 2012, 16:38) А запись ...   Jul 4 2012, 14:38
||- - xxxmatrixxx   Цитата(Serhiy_UA @ Jul 9 2012, 14:00) По ...   Jul 9 2012, 12:08
||- - Serhiy_UA   Цитата(xxxmatrixxx @ Jul 9 2012, 15:08) p...   Jul 9 2012, 12:33
||- - xxxmatrixxx   Цитата(Serhiy_UA @ Jul 9 2012, 16:33) поп...   Jul 10 2012, 06:22
||- - Serhiy_UA   Цитата(xxxmatrixxx @ Jul 10 2012, 09:22) ...   Jul 10 2012, 06:39
||- - xxxmatrixxx   Цитата(Serhiy_UA @ Jul 10 2012, 10:39) См...   Jul 10 2012, 07:01
||- - Serhiy_UA   Цитата(xxxmatrixxx @ Jul 10 2012, 10:01) ...   Jul 10 2012, 07:24
||- - xxxmatrixxx   Цитата(Serhiy_UA @ Jul 10 2012, 11:24) Не...   Jul 10 2012, 07:32
||- - xxxmatrixxx   Нашел в чем ошибка)))))))Причем только сейчас)))) ...   Jul 11 2012, 13:56
||- - xxxmatrixxx   Извините за поспешные выводы... Сейчас добился то...   Jul 12 2012, 11:57
||- - Serhiy_UA   Цитата(xxxmatrixxx @ Jul 12 2012, 14:57) ...   Jul 12 2012, 12:16
||- - xxxmatrixxx   Цитата(Serhiy_UA @ Jul 12 2012, 16:16) pc...   Jul 12 2012, 13:28
||- - XVR   Цитата(xxxmatrixxx @ Jul 12 2012, 17:28) ...   Jul 12 2012, 17:16
||- - xxxmatrixxx   RE: mt32 под EP3C25 не работает в режиме Burst   Jul 15 2012, 08:35
|- - XVR   Цитата(xxxmatrixxx @ Jul 9 2012, 11:50) У...   Jul 9 2012, 09:09
- - XVR   Цитата[ 57.282589] e_bus: First word: 24h (36) fro...   Jul 15 2012, 08:45
|- - xxxmatrixxx   Цитата(XVR @ Jul 15 2012, 12:45) Странно ...   Jul 16 2012, 06:39
- - XVR   Все вроде правильно, НО - обратите внимание - у ва...   Jul 16 2012, 08:11
- - xxxmatrixxx   Цитата(XVR @ Jul 16 2012, 12:11) Все врод...   Jul 17 2012, 11:01


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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 15:22
Рейтинг@Mail.ru


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