Использую в своих проектах микросхемы NAND flash от samsung K9WA* и подобные. Но с недавних пор выросли требования к пропускной способности: в скорость чтения/записи страниц не упираюсь, но параллельный асинхронный интерфейс flash памяти стал узким местом (если верить даташиту то пик ~40 МГц x 8 бит). Сейчас шина данных распараллелена на 4 микросхемы (32 бита), что в теории может дать ~150 МБайт/сек, а на практике (с учётом циклов адреса и прочего управления) у меня получается ~120 МБайт. Дальше параллелить уже не могу и вообще асинхорнные интерфейсы не комильфо, а хотелось бы не менее 200 МБайт/сек.
Вот такие есть микросхемы MT29F* у Micron (аналогичные у других производителей). У них есть режим работы: синхронный интерфейс DDR типа, обещают 200 MT/s per pin, что меня очень устраивает. После беглого чтения даташита выяснилось, что после включения питания микросхемы по умолчанию находятся в асинхронном режиме и, чтобы их перевести в синхронный надо выдать некоторую последовательность команд.
Собственно вопросы:
- есть у кого положительный опыт прикручивания подобного интерфейса к ПЛИС (Cyclone IV или стоит выбрать другую)?
- какие ожидаются грабли (например про переключение асинхронный/синхронный интерфейс и сможет ли ПЛИС обеспечить 200 MT/s в DDR)?
- есть ли что-то готовое, что можно посмотреть/использовать?
Готовые контроллеры, вроде mass storage, скорее всего, не подойдут, поскольку есть свои требования к корректирующим кодам, распределению информации и т.п. Интересует собственно самый низкий уровень: "записать байт/считать байт".