Serega DocТочнее опишите задачу, пожалуйста. У меня есть подозрение, что мы говорим о разных вещах

.
Схемотехника моего устройства предусматривает процессор, память, периферию и вычислитель специальных функций на FPGA. Таким образом, практически у каждого устройства есть своя локальная память и контроллер доступа к шине AHB. Хотя спецификация шины и предусматривает режим обмена данными неопределённой длины, реально пакеты ограничены объёмом обрабатываемых данных в устройствах. Контроллер SDRAM имеет раздельные сигналы адреса, данные чтения, данные записи и сигналы контроля шины. Из них наиболее интересны сигналы Ack и Rdy (хотя в AHB они именуются иначе и вообще физически представлены в виде кода из нескольких бит). Таким образом, когда контроллер SDRAM получает команду с шины (запись или чтение), он формирует сигнал Ack, сообщая, что он понял команду.
В случае записи он захватывает данные с шины на каждом такте, а затем снимает сигнал готовности Rdy. Фактически, данные с шины поступают в локальное WR_FIFO_SDRAM, пока контроллер активизирует банк, строку и колонку. Затем они с максимальной скоростью переписываются в SDRAM. В случае чтения он снимает сигнал готовности Rdy сразу и выставляет его после того, как данные появиться на шине AHB. Была мысль возвращать сигнал «занят», и потребовать от Master ещё раз обратиться к контроллеру, освобождая шину от циклов ожидания, но руки не дошли.
Со стороны SDRAM для линии данных контроллер выдаёт сигналы на переключение шины с вывода на ввод, принудительно вставляя один такт во избежание конфликтов. Таким образом, у меня и возник вопрос, как можно одновременно писать и читать SDRAM. Просто в моей модели её использования таким образом невозможно в принципе.