Цитата(des00 @ Dec 11 2009, 08:01)

если верить времянкам что вы привели, вот это очень странно. Th со стороны проца влиять не должен, т.к. в это время он не изменяет состояние линий CS/A/D/WE.
зато есть разница, когда вычислять адрес.
ИМХО не совсем корректно считать адрес по опусканию строба записи - так как можно ещё нитуда записать
Об этом (уже не помню кто) говорил - что лучше по фронту хватать данные, а не по спаду
Кстати, много подключал асиков к шине блекфина - так ни одно из них не работало корректно с Thold>0. Почему - не знаю

Цитата(des00 @ Dec 11 2009, 08:01)

на одном триггере можно и хлопнуть, а вот 2 триггера ИМХО излишне.
попробуем
Цитата(des00 @ Dec 11 2009, 08:01)

Если верить времянкам что вы привели и вы используете только запись то ИМХО управляющий сигнал здесь один WE. И обрабатывал я бы его по первому (спадающему фронту) Т.е. в начале фазы записи twr. CE/A/D к этому моменту должны быть уже установлены и удерживаться в фиксированном положении (tsu). WE нарезал бы на 3-х триггерах, последние 2 использовал для детектора фронта. Если на длительности сигнала не менее 2 отсчетов тактовой нарезки, то все должно работать с полпинка при времянках Tsu >= 1, Twr = 1, Th >= 0.
осмыслю сказанное вами, попробую. результат напишу. Не забывайте также что у меня SRAM 10ns - как она поведёт на Twr=1 (7.5ns) - ещё не известно

Цитата(des00 @ Dec 11 2009, 08:01)

PPS. и ваш VHDL код я бы переписал, на начальном этапе увлечение VHDL variable до добра не доведет. Да и читать ваш код из-за этого сложно.
переменные хранят значения только управляющих регистров. и всё.
различия между сигналами и переменными представляю - сигнал апдейтится только при следующем клоке, а переменная мгновено. Это если синхронная логика и процесс последовательный. При параллельном они одинаковы.
в чём опасность использования переменных - конкретно в моём коде - где и каких?
Сообщение отредактировал %-) - Dec 11 2009, 05:39