Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cyclone IV + ONFI2.x NAND DDR interface
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
ilynxy
Использую в своих проектах микросхемы 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, скорее всего, не подойдут, поскольку есть свои требования к корректирующим кодам, распределению информации и т.п. Интересует собственно самый низкий уровень: "записать байт/считать байт".
Hoodwin
Когда-то я уже задавал подобный вопрос, но на него никто не ответил. От себя могу сказать, что порядка 180-200 МГц можно выжать даже из циклона, причем даже без использования dedicated ddr i/o, а просто с помощью fast i/o и удвоенной частоты тактирования регистров ввода-вывода. Во-всяком случае, так у меня получалось с DDR2 SDRAM. А 200 MT/s - это всего 100 МГц, так что сделать DDR для NAND - не проблема.
ilynxy
Цитата(Hoodwin @ Aug 2 2012, 00:22) *
Во-всяком случае, так у меня получалось с DDR2 SDRAM. А 200 MT/s - это всего 100 МГц, так что сделать DDR для NAND - не проблема.
Спасибо за ответ. Насчёт 100МГц DDR я даже не сомневаюсь — на Cyclone III успешно запускал RGMII (125MHz x 4 bit, DDR), да и по даташиту на Cyclone IV обещают 250 MHz DDR (но это наверное только при хорошей погоде).

В предстоящей битве меня пугают пару вещей. Первая — переключение асинхронный/синхронный интерфейс. При этом "привычные" ноги меняют своё значение: например !WE становится CLK. Как щаз вижу мультиплексированние клока высокой частоты и сопутствующие огороды констрейнов.
Второе — при чтении микросхема сама генерирует клок сопровождения данных DQS (но этого мало, он ещё и двунаправленный, при записи, наоборот, нужно на нём генерировать сопровождающий клок), причём временные характеристики этого клока и данных не слишком удобные (не утверждаю — беглое чтение даташита), как бы не пришлось его поворачивать на PLL, чтобы втиснутся в констрейны из-за задержек входных/выходных пинов.

Всё это очень напоминает DDR память, но увы и ах, я с ней никогда не работал поэтому смотрю на этот интерфейс как баран. Ну попытка не пытка, попробую разобраться =).
Hoodwin
Вот год назад я начинал эту тему. Там мне удалось сделать контроллер DDR2 на обычном fast i/о. Я не вижу проблем для сочетания асинхронного и синхронного интерфейса у NAND. Для ПЛИС оба варианта - это синхронный проект, просто разная логика стробирования данных. Фактически на деле все упрется в два варианта чтения шинных буферов на удвоенной частоте, то есть просто в два мультиплексора, один на вход, другой на выход. Сигнал we как clk - это тоже не проблема - это выход обычного счетного T-триггера (на удвоенной частоте).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.