реклама на сайте
подробности

 
 
> Cyclone IV + ONFI2.x NAND DDR interface, Синхронный интерфейс NAND flash, грабли и костыли
ilynxy
сообщение Aug 1 2012, 05:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 11-04-10
Пользователь №: 56 562



Использую в своих проектах микросхемы 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, скорее всего, не подойдут, поскольку есть свои требования к корректирующим кодам, распределению информации и т.п. Интересует собственно самый низкий уровень: "записать байт/считать байт".
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
Hoodwin
сообщение Aug 1 2012, 20:22
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Когда-то я уже задавал подобный вопрос, но на него никто не ответил. От себя могу сказать, что порядка 180-200 МГц можно выжать даже из циклона, причем даже без использования dedicated ddr i/o, а просто с помощью fast i/o и удвоенной частоты тактирования регистров ввода-вывода. Во-всяком случае, так у меня получалось с DDR2 SDRAM. А 200 MT/s - это всего 100 МГц, так что сделать DDR для NAND - не проблема.
Go to the top of the page
 
+Quote Post
ilynxy
сообщение Aug 2 2012, 12:47
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 11-04-10
Пользователь №: 56 562



Цитата(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 память, но увы и ах, я с ней никогда не работал поэтому смотрю на этот интерфейс как баран. Ну попытка не пытка, попробую разобраться =).
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Aug 2 2012, 13:57
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Вот год назад я начинал эту тему. Там мне удалось сделать контроллер DDR2 на обычном fast i/о. Я не вижу проблем для сочетания асинхронного и синхронного интерфейса у NAND. Для ПЛИС оба варианта - это синхронный проект, просто разная логика стробирования данных. Фактически на деле все упрется в два варианта чтения шинных буферов на удвоенной частоте, то есть просто в два мультиплексора, один на вход, другой на выход. Сигнал we как clk - это тоже не проблема - это выход обычного счетного T-триггера (на удвоенной частоте).
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 15:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.02868 секунд с 7
ELECTRONIX ©2004-2016