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

 
 
> И снова этот PCI, помогите разобраться
T00T
сообщение Jun 1 2015, 12:29
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 25-05-15
Пользователь №: 86 867



Доброго времени суток форумчане. Появилась идея создать устройство на PCI.
В плис я скажем новичок, но всю свою сознательную жизнь программировал на АСМе(Z80 avr),на AHDL gпару проектов делал, ну и Си немного касался.

Так что если глупые вопросы буду задавать не обессудьте.
Итак: Нужно сотворить TARGET устройство на PCI шине, у которого пусть будет 32x32bit слова памяти отображаемых в МЕМ области.

Я спаял железку на плисине XC6SLX9.
Ну на сколько понял написал проект для неё.
Результаты таковы:
Я взял материнку старую(Пень 3) для испытаний и начал отладку на ней. В итоге биос видит устройство, прописывает BAR в общем на первый взгляд все ок.


Проблеммы:
железка работает только на этой плате старой, и чем новее мать - тем хуже работает. На (пеньке-4) биос запускается и пишет BIOS ROM cheksum error
...............System halt.(Успевает пройти 7 транзакций с платой!!!!!)
И всё, а CORE 2 DUO просто весит.
И ещё один косячёк замечен.
На старой плате запускаю Linux - lspci отображает устройство, но когда LSPCI -X читаешь конфигурационную область - выдает что в 00 регистре FFFFFFFF.
А остальное всё считывает нормально.
Я смотрел этот вопрос и Запроса в этот адрес просто нет!!!!!! Или плата его в упор не видит!!!!

В чём может быть проблема с отказом работы на новых матерях. Ведь стандарт он и есть стандарт - должен работать везде. С появлением новых версий стандарта сигналы по другому выставляться не могут !!!!!
Может какая то странная материнка??????

Но ведь на новой, успевает пройти 7 транзакций с платой - зависаний на них нет - значит всё ок. с сигналами.
Опешу что реализовано, а что не делал:
плата отвечает только на команды R/W configure и R/W memory. На другие просто не отвечает.
Не анализируется C/ВЕ в фазе данных, а при чтении в фозе данных выдаю 0000.
паритет выставляется.
Stop не подключен.
REQ, GNT не подключены.



Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kuzmi4
сообщение Jun 2 2015, 16:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 T00T

Вам сюда

И вот мурзилка неплохая, не забываем и про стандарт конечно..

+сходу нашёл пример, но на немецком правда. Если постараться - думаю вы и на английском найдёте без особых проблем.
Go to the top of the page
 
+Quote Post
T00T
сообщение Jun 5 2015, 08:17
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 25-05-15
Пользователь №: 86 867



доброго времени суток sm.gif.
Всем спасибо за ответы.
Итак процесс идёт, но медленно нашёл в коде небольшой косячёк, который немного улучшил ситуацию, но это был лишь маленький косячёк.
Что улучшилось:

эта плата теперь работает нормально с устройством:
"и вот ещё что ну ладно после 7 - го запроса зависало бы устройство или шина не уходила в IDLE, но нет всё вроде нормально Frame=1, Irdi=1 после запроса.


Вот этот косячёк убрался :
На старой плате запускаю Linux - lspci отображает устройство, но когда LSPCI -X читаешь конфигурационную область - выдает что в 00 регистре FFFFFFFF.


В общем то - складывается впечатление, что алгоритм работает правильно и дело во временах!!!

По поводу длинны CLK и других шин- я пока эту проблему обошёл (есть плата PCI на такой микросхеме, я на неё свой проект пока разместил) и
есть разница между моей самодельной платой и промышленной - На промышленной плате результат такой: на новых матерях устройство видит одну транзакцию и всё - некоторые матери после этого уходят в перезагруз, а некоторые больше не обращаются к устройству и работают без него. А на самодельной плате не видно обращения.
В общем то думаю что проблема остаётся только в этих констрейнах(временных ограничениях)

Цитата(Kuzmi4 @ Jun 2 2015, 20:37) *
2 T00T

Вам сюда

И вот мурзилка неплохая, не забываем и про стандарт конечно..

+сходу нашёл пример, но на немецком правда. Если постараться - думаю вы и на английском найдёте без особых проблем.


Ну по первому пункту, У меня корпус TQG144 - и PCI ядер для него нет (сейчас уже).
Второй пункт, я уже с ним давно ознакомился.
А вот третий интересный.

Вот такой вопрос Задержки в коде учитываются при построении и реализации схемы, и в каких они единицах:
Пример:

parameter tdel = 10;
.
.
.
assign #tdel AD_bus = devsel? data_out : 32'bZ;


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

Будем копать.
Если у кого есть желание рассказать про алгоритм работы с констрейнами, милости просим sm.gif


Я вот не разбирался с CHIPSCOPE, а оказалось что я подобную штуку и сделал для анализа sm.gif.
Но теперь пришёл программатор из китая и CHIPSCOPE теперь тоже под рукой.

ну вот фотка самодельной платки, конечно о 33МГЦ при таком монтаже тяжело говорить, но алгоритм отладить можно было sm.gif

Сообщение отредактировал T00T - Jun 5 2015, 08:21
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
gerber
сообщение Jun 5 2015, 09:08
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088



Цитата(T00T @ Jun 5 2015, 12:17) *
ну вот фотка самодельной платки, конечно о 33МГЦ при таком монтаже тяжело говорить, но алгоритм отладить можно было sm.gif

Не будет работать, констрейны тут ни к чему при такой конструкции laughing.gif
Когда-то давно я пробовал вытащить на проводах шину CardBus (это тот же PCI 33 МГц, только в ноутбучном исполнении в формате PCMCIA), чтобы к ноутбуку подключить одну дорогую PCI карту от десктопа. Там проводов было буквально 5 см. Наблюдал именно такую картину, как у вас - при чтении конфиг-регистров произвольно меняются содержимое на 0xFFFF, периодически виснет и т. п. И это не FPGA, а фирменный SoC, который идеально работал на десктопе.
Поэтому нужно делать (купить) нормальную плату с FPGA+PCI и отлаживаться на ней.


--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
Go to the top of the page
 
+Quote Post
T00T
сообщение Jun 5 2015, 09:42
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 23
Регистрация: 25-05-15
Пользователь №: 86 867



Цитата(gerber @ Jun 5 2015, 13:08) *
Не будет работать, констрейны тут ни к чему при такой конструкции laughing.gif
Когда-то давно я пробовал вытащить на проводах шину CardBus (это тот же PCI 33 МГц, только в ноутбучном исполнении в формате PCMCIA), чтобы к ноутбуку подключить одну дорогую PCI карту от десктопа. Там проводов было буквально 5 см. Наблюдал именно такую картину, как у вас - при чтении конфиг-регистров произвольно меняются содержимое на 0xFFFF, периодически виснет и т. п. И это не FPGA, а фирменный SoC, который идеально работал на десктопе.
Поэтому нужно делать (купить) нормальную плату с FPGA+PCI и отлаживаться на ней.


Ну я уже повторяюсь - взял рабочую PCI с такой микросхемой, и залил в неё свой проект.
Фото прилагаю....


И результат работы на этой плате - на 3 не свежих матерях работает, а на более менее новых устройство видит одну транзакцию и всё - некоторые матери после этого уходят в перезагруз, а некоторые больше не обращаются к устройству и работают без него.
А на самодельной нет транзакций.

Ну так как на более старых(Pentium-4)775,pentium-3 все работает, значит дело то не в алгоритме и не в разводке платы(рабочая плата). нужно правильно подправить временные характеристики сигналов.

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

gerber - вы же отлаживали такой проект, не могли бы поделиться UCF файлом. Всё равно для каждого проекта все придётся подбирать .
Ну хотя бы для примера, от чего отталкиваться.

Сообщение отредактировал T00T - Jun 5 2015, 09:27
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- T00T   И снова этот PCI   Jun 1 2015, 12:29
- - gerber   1) Возможно, на новых "матерях" PCI 66 М...   Jun 1 2015, 15:45
- - T00T   ну вот что бы некоторые вопросы сразу отпадали так...   Jun 1 2015, 16:27
- - T00T   и вот ещё что ну ладно после 7 - го запроса зависа...   Jun 1 2015, 17:40
- - T00T   На более свежих вообще устройство не видит обращен...   Jun 1 2015, 20:08
- - gerber   Цитата(T00T @ Jun 1 2015, 20:27) И вот эт...   Jun 1 2015, 20:42
|- - T00T   Цитата(gerber @ Jun 2 2015, 00:42) Если р...   Jun 1 2015, 21:49
- - T00T   Ну или хотя бы подскажите как задать так что бы ра...   Jun 2 2015, 12:30
|- - gerber   Цитата(T00T @ Jun 5 2015, 13:42) Ну я уже...   Jun 6 2015, 05:43
- - Kuzmi4   2 2 T00T в DS собственно и написано что и куда над...   Jun 5 2015, 10:11
- - T00T   Итак всем спасибо!!!!!!...   Jun 5 2015, 11:57
- - T00T   Ну да, так и было на первом фото - плата от модема...   Jun 9 2015, 18:51


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

 


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


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