|
mt32 под EP3C25 не работает в режиме Burst, Проблема организации пакетного режима |
|
|
|
Jun 19 2012, 13:25
|
Участник

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

|
Здравствуйте
У меня такая проблема: Сделал программу на Verilog, которая принимает данные из вне, а потом перекидывает их на сторону PCI(работал, как таргет, считывали с меня по прерыванию)... но такой вариант был слишком затратен по времени, т.к. верхнее ПО было написано под Linux, а сам чипсет компа не давал возможности с меня считывать пакетно... что только не пробовал, ничего не выходило, прочитал на форуме ELECTRONIX, подсказали, что придется реализовывать мастера...
Так вот поставил mt32 core для Альтеры с возможностью работы в режиме 66Мгц...
Прога под Linux пока не подправлена, но я попробовал выходить на шину мастером и писать данные в меня... я увидел, что я пишу так же, т.е. одиночными посылками, а не пакетно....
Вопрос: что необходимо указать в установках core(я пробовал менять конфигурацию баров с non - prefetchable на prefetchable), либо как организовывать обмен по PCI так, чтобы я работал в пакетном режиме???
Спасибо...
|
|
|
|
|
 |
Ответов
|
Jun 29 2012, 08:35
|
Гуру
     
Группа: Свой
Сообщений: 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)
|
|
|
|
|
Jul 6 2012, 09:25
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Jul 9 2012, 07:50
|
Участник

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

|
Цитата(XVR @ Jul 6 2012, 17:57)  Запись в таргет под управлением CPU возможна только словами. Для записи блоками нужен мастер. Так комп работает как таргет, а я со стороны своего модуля как мастер... У меня виснет, когда я захватываю шину, становлюсь мастером на шине и пишу в ПК... вероятнее всего, что проблема в работе со стороны ПК, либо адрес, который определяет linux и мне выдает, неверный, либо сконфигурирована память на стороне ПК не правильно... Просто я грешу на неправильную работу проги под Linux...
|
|
|
|
|
Jul 9 2012, 09:01
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

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

Группа: Участник
Сообщений: 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ю неделю, а копать не очень понимаю где...
|
|
|
|
|
Jul 9 2012, 10:00
|
Знающий
   
Группа: Свой
Сообщений: 721
Регистрация: 23-10-08
Из: next to Odessa
Пользователь №: 41 112

|
Цитата(xxxmatrixxx @ Jul 9 2012, 12:25)  ..какие настройки для коры ставите, чтобы работать как мастер.... По поводу корки PCI_bb, как черного ящика. Не нашел в Вашей программе определения параметров для mt32. Мои, в приложении. Правда, в предыдущем посте я ошибся по BAR3, но это не принципиально... Программы на ПК под PCI-шину не пишу, пока только синтез ПЛИС...
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|