Цитата(DmitryR @ May 24 2010, 12:35)

Я не в курсе, но практически уверен, что нет. Вобщем я очень быстро пришел к выводу, что написать самому человеческий контроллер будет быстрее, чем копаться в этом. Например, если бы я дал такой (микроновский) контроллер программисту - мне пришлось бы написать талмуд о том, что там можно делать и чего нельзя (очевидно например что полностью случайный доступ нельзя делать). Это вообще глупо на мой взгляд: делать контроллеру интерфейс Random Access Memory при том, что access там совершенно не random. Это вводит всех в заблуждение и чревато.
По поводу интерфейса Random Access Memory смею не согласиться. В данном контроллере используется стандартная схема работы с NAND флеш по следующей логике: запись команды во флеш->чтение/запись данных во внутренний буфер->извлечение данных из внутреннего буфера по SRAM интерфейсу. Так что SRAM интерфейс нужен только для обращения к регистрам и буферам данных контроллера, а не напрямую к NAND. А это как раз то что мне нужно, так как я не представляю как по другому сделать скоростной DMA доступ к флеш памяти, минуя копирование данных во внутренний буфер.
Цитата(Victor® @ May 24 2010, 13:04)

А может посмотрите в сторону e.MMC?
http://www.numonyx.com/en-US/MemoryProduct...Pages/eMMC.aspxНапишите контроллер для MMC - получите более универсальную штуку, IMHO
Я рассматривал вариант с самсунговской OneNAND памятью - это контроллер+NAND массив в одном корпусе. Здесь принцип тот же, только использован MultimediaCard интерфейс. Спасибо за совет, буду иметь ввиду, что у Numonix есть такой чип.
Я пока еще мучаю контроллер от Мicron. Перевел код на Verilog с помощью бесплатной утилиты под Linux, кое-что пришлось править руками.
Написал тестбенч для контроллера. Короче такая проблема: на VHDL все работает, в Veriloge работать отказывается, ошибка - бесконечный цикл симуляции. В списках чувствительности в VHDL процессов в FSM есть перекрестные ссылки, причем процессы асинхронные, нет ни rising_edge ни falling_edge условий. Объясните почему в VHDL это работает, а в верилоге нет?
Еще есть одно подозрение, используется tristate цепь данных, причем эта цепь есть в списке чувствительности одного из процессов. В VHDL данные в цепь назначаются внутри другого процесса. Я пробовал заменить эту цепь assign'ом с условным оператором с записью Z-состояния, второй вариант с использованием force, release внутри процесса. Оба варианта все равно ничего не дают.
прикладываю FSM на верилоге. Похоже симуляция зацикливается в процессах COMBtoggleFSM и combFSMmain при стейте STprogrampage. Там кое-что уже закомментарено, это результаты моих экспериментов

.
st2FSM.v ( 38.78 килобайт )
Кол-во скачиваний: 407