Идея: различные стадии синхронизировать по разному, тогда на уровне RTL (Register Transfer Layer) не будет гонок. т.е. вход на следующий этап конвеера записывается в другой момент времени чем на текущий этап.
![]()
![]()
Пример синхронного сдвигового регистра.
![]()
Пример синхронного сдвигового регистра с двойной синхронизацией.
![]()
Пример динамического синхронного сдвигового регистра с двойной синхронизацией
![]()
Пример динамического расширителя импульса. Если импульс маленький то его можно продлить:
![]()
А вообще можно делать столько стадий сколько надо
![]()