Некоторые причины, по которым в проекте Vivado может не удаваться найти критический путь:
- Асинхронность тактовых сигналов. 1 Тактовые сигналы считаются синхронными, если они формируются внутри FPGA из одного источника. 1 Для асинхронных и мезохронных сигналов невозможно точно рассчитать значения, поэтому временной анализ имеет смысл проводить только для синхронных тактовых сигналов. 1
- Отсутствие синхронизаторов. 1 Чтобы гарантировать правильность передачи между асинхронными доменами, данные должны проходить через специальные синхронизаторы, например, через сдвоенные триггеры. 1 При формировании отчёта о CDC Vivado просматривает netlist и пытается найти между доменами синхронизаторы, и в случае их отсутствия выводится соответствующее замечание. 1
- Слишком плотная упаковка логики. 4 Стоит быть осторожным, если логика кажется слишком плотно упакованной в целом или в каком-то конкретном регионе. 4
Чтобы исключить путь из временного анализа, можно воспользоваться командой setfalsepath. 1 Флаг -from указывает начало пути, а флаг -to — его конец. 1