Имеется устройство с ПЛИС Xilinx Spartan-II в качестве PCI интерфейса. В данный момент пытаюсь реализовать его (интерфейс) с помощью OpenCores PCI core. Соответственно, появляются вопросы...
1. Конфигурационное пространство отображено в AS0, с его записью/чтением проблем нет.
При попытке записи в AS1 (отображенное на WB) проблем тоже нет - всё работает как надо (по крайней мере, в симуляторе). Мост правильно отрабатывает как со стороны PCI, так и со стороны WB.
А вот при попытке чтения из AS1 происходит завершение PCI-транзакции сигналом STOP#, даже до того, как соотв. сигналы появятся на WB.
Может кто знает, каковы причины такого поведения? Или подскажите, с какой стороны копать...
Вопрос снят. Описаное выше поведение следует считать правильным: с помощью сигнала STOP# мост провоцирует повторное чтение, и к тому моменту данные уже просачиваются со стороны WB на PCI (довольно странный способ обойтись без циклов ожидания).
Цитата(Vitёk @ Apr 17 2006, 15:09)

Вопрос снят. Описаное выше поведение следует считать правильным: с помощью сигнала STOP# мост провоцирует повторное чтение, и к тому моменту данные уже просачиваются со стороны WB на PCI (довольно странный способ обойтись без циклов ожидания).
В спецификации PCI это называется Retry. Гораздо лучший выход, чем занимать шину на неопределенное время и генерировать таким образом циклы ожидания.
Наверное да, если не обращать внимания на то, что два цикла доступа к устройству занимают больше времени, чем один с циклами ожидания.