Читаю Post-Place & Route Static Timing report.
Вижу:
Timing constraint: Default OFFSET IN BEFORE analysis for clock "IOBlock1/clk_in_int_buf"
Т.е. проверяем по сути setup timе для входных триггеров. Который должен быть положительным.
Смотрим дальше:
52 paths analyzed, 13 endpoints analyzed, 0 failing endpoints
0 timing errors detected.
Ошибок нет.
Смотрим как они считают:
Offset (setup paths): 0.417ns (data path - clock path + uncertainty)
Т.е. данные идут дольше чем клок. По идее это же отрицательный SETUP TIME????? Клок придёт ещё до того как данный дойдёт до триггера. Какая же это норма????
Если смотреть есть ещё:
Offset (hold paths): -1.127ns (data path - clock path + uncertainty)
Который считается по этой же формуле но уже для самых худших параметров температуры и питания.
Он уже отрицательный. Хотя по логике как раз отличный setup time.
Собственно вопросы:
1. Почему имеем положительный и отрицательный SETUP TIME и всё равно 0 timing errors???
2. Почему расчёт идёт именно так а не наоборот: clock path-data path
3. В чём ошибка моих рассуждений?
4. Где почитать про эти setup paths и hold paths??? Может я их неверно трактую?