hdl_student 0 19 октября, 2015 Опубликовано 19 октября, 2015 · Жалоба Добрый день. На Altera Cyclone EP1C12 написан простенький контроллер PCI (стандарт - 3.0). В 4-х разных компьютерах и 2-х крейтах CompactPCI это художество преспокойно работает. На одной материнской плате мастер PCI при загрузке не хочет выставлять FRAME# в режиме CONF_READ. В SignalTap поставил буфер в 1К, вижу как контроллер перебирает соседей, доходит до меня, выставляет C/BE#, AD, FRAME#, я отвечаю DEVSEL# и TRDY#, и тут (такт №2-3) мастер выставляет следующий адрес в конфигурационном пространстве и не выставляет новый FRAME#. 1. Допущено отклонение от стандарта? 2. Подразумевается какой-то burst? Соседям он почему-то выставляет их раздельно, да и в стандарте такого вроде бы нет. 3. Мастер выставляет второй IDSEL очень длинным, будто бы ждет от меня чего-то. Чего - не понятно. Попробовал вставлять и убирать дополнительные такты ожидания, сужая или расширяя пару DEVSEL# и TRDY# - не помогает. Заранее признателен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hdl_student 0 19 октября, 2015 Опубликовано 19 октября, 2015 · Жалоба Дополнительные четыре часа хождения по кругу SignalTap - стандарт PCI - SignalTap сделали свое дело. Оказалось, что я неправильно считал PAR, на что забивали другие материнки и процессорные модули, а эта оказалась принципиальной. Аж 8 раз пыталась стрясти с моего контроллера данные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться