Добрый день.
На 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# - не помогает.
Заранее признателен.