Важные ключевые слова crossclock и metastability.
На самом деле, кроме множества клоков и возможной метастабильности регистров при пересечении данными их границ, есть не менее популярный момент - reset. Если он асинхронный, то его обычно не учитывает timing analyzer, предполагается, что первый фронт клока случается через достаточное время после снятия сброса. Аргументированно доказать, что это всегда так способен не каждый разработчик, даже если его явно об этом попросить. Проблема может проясниться даже на одноклоковой схеме, если исходный сигнал reset пропустить через регистр, а уже потом раздать всем (через глобальную сеть и через что попало будет по разному интересно). В целом этот регистр не обязателен, но без него нужно не забыть описать reset в констрейнах.
Это была ассоциация на "20-30 раз включения питания". Удачи.
|