Значит, мои представления о минимально возможных задержках были слишком оптимистичны и реально укладываться в таймаут шины сможет только микроконтроллер на той же плате.
Да. Получается, что при старте платы "эмулятора Q-Bus" МК должен регистрировать в FPGA все обслуживаемые адреса и сразу сообщать для них текущие значения, а FPGA должна запоминать содержимое для всех обслуживаемых адресов, самостоятельно выставляя RPLY и по вводу, и по выводу, а уже потом уведомляя МК о записи/чтении по обслуживаемому адресу ( уведомление о чтении нужно МК в основном для того, чтобы снимать бит готовности в обновляемом содержимом регистра статуса ).
Думаю, при таком подходе МК должен успевать снять бит готовности и обновить содержимое в буфере регистра статуса в FPGA до того, как вслед за чтением регистра данных процессор пришлёт по Q-Bus запрос на чтение регистра статуса.
Кстати, если регистрировать в FPGA не только текущее содержимое для всех обслуживаемых адресов, но и дополнительные значения, которые должны заноситься в другие обслуживаемые регистры при чтении и/или записи содержимого конкретного адреса, то такой более продвинутый алгоритм снимет узкие места по таймингам и позволит выполнять остальную обработку логики эмуляции устройств где и как угодно ( хоть по TCP/IP ).



Ответить с цитированием