Цитата
Цитата
Циклограмма работы с нанд-флеш сейчас отшлифована до идеала, все с хорошим запасом, там где требуется 7нс на предустановку данных на линии, я выставляю за 20нс и тому подобное.
Ой, это на частоте 50МГц? И какой при этом получится hold slack ? Хотя, скорее, на 25МГц, тогда правильно.
Не понял о каких мегагерцах вы говорите, я хотел сказать следующее: перед тем как щелкнуть передним фронтом WE, т.е. произвести запись данных, по даташиту требуется, чтобы данные на шине были установлены заблаговременно, минимум за tDS = 7 нс для Timing Mode = 5. Я выдерживаю 20нс. После подъема фронта WE также необходимо подержать данные в неизменном состоянии минимум tDH = 5 нс для Timing Mode = 5. Я держу 20нс. Это касается и записи данных, и при задании команды, и при установке адреса. Все с большим запасом, чем требует даташит.
Цитата
Констрейны для записи, может быть, можно и ограничить set_false_path и упаковкой всего в регистры, а для чтения лучше сделать по-нормальному.
потребуются create_generated_clock для RE_n,
set_clock_latency для него же с описанием задержки в PCB(она больше 1 нс),
два set_input_delay между RE_n и DQ для описания t_REA и t_RHOH и
set_multicyle_path для входных регистров(так как они защёлкиваются клоком с частотой выше RE и пропуском тактов).
Меня это все вообще пока в ступор вводит. В голове каша.
Поэтому решил убрать все констрейны.
Задержки внутри кристалла для ALE,CLE,WE,RE,CE,DQio почти одинаковы и составляют 5-6нс. Это в ТаймКвесте смотрел через Report Path.
И мне кажется, что если задержки одинаковые, тогда и констрейны никакие не нужны.
Цитата
Пытаться читать через 20 нс после опускания RE_n неправильно, к 16 нс задержки во flash нужно ещё добавить 1.3 нс в PCB и примерно 6 нс в буферах FPGA, в результате промахиваемся. Хотя работать может, так как 16 нс - это максимум.
Немного не так вы поняли. На том же сигналтапе видно, что между фронтами RE имеется 3 такта частоты по 10нс.
Получается так - опустили RE, через 3 такта подняли RE, через такт защелкнули данные DQ с входа плис в регистр.
Нарисовал картинку, вроде все получается как надо и запас получился 8нс.
На этом рисунке принял следующее: задержка внтури кристлла 6нс, задержки на pcb 2нс.
Или я в чем то ошибаюсь?
Цитата
Из сигналтапа следует, что данные всё-таки были неправильно записаны.
Да, но из этой страницы данные читаются много много раз (1000 раз), и как я написал, неправильное чтение может проявиться пару раз на эти 1000, а может вообще не проявиться. Значит в флешке записаны правильные данные.
Может это все таки помехи какие?