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