Коллеги, спасайте! День уже потерял а эту ерунду не победил. Есть кусок схемы (рис) на который ругается таймквест (отчет на рисунке) - это формирователь пачки импульсов для считывания данных с LVDS АЦП. Все клоки pll констрейнятся, видны в отчете клоков таймкветса.
Клоки С0 и С1 одинаковой частоты, 96 МГц.
Как видно, slack. Что только не делал... Регистры между ENA и компаратором, фазы клоков двигал относительно друг друга - результата ноль. Всегда slack отрицательный. Причем когда он в пределах -0,2..-0,4 нс схема еще работает, а когда стает -1,5..-3 нс - с АЦП ошибочные значения идут.
Пока схема была под 20000LE (cyc3) слак небольшой был, все работало, добавляю еще кусок на 10000LE - все, уже криво работает. Повторяемость 100% - маленькая схема - работает, большая - не работает.
Уже сделал так (думал может не эта часть а что-нить еще): вместо выхода АЦП поставил память, забитую семплами АЦП - оба варианта - и на 20000LE, и на 30000LE работает все отлично. Т.е. причина почти наверняка не в обработке, а в источнике данных, и похоже именно в этом месте.
Пробовал создавать отдельный раздел на этом блоке (lvds_block) компилировал с небольшой схемой (когда все работает), ставил фиксировать post-route, pacement and routing на раздел lvds_block. После этого расширял схему (lvds_block не меняется при этом), компилировал - уже глюки. Вроде уж зафиксировал даже... Как так то? Что б такое написать-то чтоб он меня услышал?
Помогите победить...