Здравствуйте.
Есть проект с плис Альтеры, к плис подключается нанд-флеш.
Интерфейсные ноги такие:
flash_ALE : out std_logic := '0';
flash_CE_n : out std_logic := '1';
flash_CLE : out std_logic := '0';
flash_DQio : inout std_logic_vector(7 downto 0) := (others => 'Z');
flash_RE_n : out std_logic := '1';
flash_WE_n : out std_logic := '1';
Флешка работает в асинхронном режиме. Максимальная частота дергания ног RE и WE - 50МГц.
На частоте 100МГц организованы циклограммы работы с флешкой.
Ниже прикрепил иллюстрации из даташита.
Сигналы ALE, CLE, CE_n выставляются заблаговременно до начала работы и снимаются через несколько тактов после окончания работы, думаю здесь можно не копать, констрейнами не обвешивать.
Пока пытаюсь рассмотреть этап записи данных.
При записи данных flash_DQio выставляются как выходные сигналы, а внутри флешки защелкиваются по нарастающему фронту flash_WE_n.
Наружу клок никакой не идет.
Длина проводников на печатной плате составляет от 50мм до 100мм, как я понимаю это десятые доли наносекунд, и их можно не учитывать.
Я никак не соображу какие констрейны прописать для этих сигналов flash_DQio и flash_WE_n.
Ну и аналогичная проблема при чтении данных из флешки.
При чтении данных flash_DQio выставляются как входные сигналы, внутри флешки выдача данных начинается через 16нс после прихода спадающего фронта flash_RE_n.
Поэтому внутри плис после формирования спадающего фронта ожидаем данные через два такта частоты 100МГц.
Какие здесь нужно описать констрейны, и нужно ли, ведь все учитывается циклограммой работы?