Я пишу конечный автомат, который управляет потоком данных от чипа, устанавливая и считывая чтение/запись. Мои часы работают на частоте 27 МГц, что дает период 37 нс. Однако спецификация чипа, с которым я общаюсь, требует, чтобы я удерживал сигнал «запрос на чтение» не менее 50 нс. Конечно, это невозможно сделать за один цикл, так как мой период составляет 37 нс.
Я подумал, что могу создать дополнительное состояние, которое ничего не делает, но помечает следующее состояние как то, в котором я фактически завершаю чтение, следовательно, добавляю еще одну задержку периода (это означает, что я держу «запрос на чтение» в течение 74 нс), но это не звучит как хорошая практика.
Другой вариант, возможно, состоит в том, чтобы использовать счетчик, но мне интересно, есть ли еще один вариант, который я еще не посетил?
Как реализовать задержку в автомате, если состояние должно длиться дольше одного такта?
Спасибо!
(T1 должно быть больше 50 нс) Пожалуйста, см. здесь полное техническое описание.