Добрый день.
Делаю прошивку под C-III как раз с АЦП AD9634, который тут упоминался.
Все работает нормально, но хочу навести порядок в голове с констрейнами по входу.
Вопрос возник по примеру sdc, что предоставил des00.
Сначала опишу что сделал сам.
Решил тоже не юзать виртуальный клок, а описывать непосредственно от DCO.
По даташиту фронт DCO запаздывает за данными на Tskew (0.3 : 0.7 нс).
Соответственно:
CODE
set_input_delay -max -clock [get_clocks {ADC1DCO}] -0.3 [get_ports {ADC1Data[*]}]
set_input_delay -max -clock [get_clocks {ADC1DCO}] -clock_fall -0.3 [get_ports {ADC1Data[*]}] -add_delay
set_input_delay -min -clock [get_clocks {ADC1DCO}] -0.7 [get_ports {ADC1Data[*]}] -add_delay
set_input_delay -min -clock [get_clocks {ADC1DCO}] -clock_fall -0.7 [get_ports {ADC1Data[*]}] -add_delay
set_false_path -rise_from [get_clocks {ADC1DCO}] -fall_to [get_clocks {adc1pll|altpll_component|auto_generated|pll1|clk[0]}]
set_false_path -fall_from [get_clocks {ADC1DCO}] -rise_to [get_clocks {adc1pll|altpll_component|auto_generated|pll1|clk[0]}]
Задержки по плате не учитываю, т.к. АЦП близко к FPGA и их вклад несущественен.
В FPGA ставлю PLL в режиме source synchronous и ей подкручиваю фазу, чтобы TQ не ругался.
С первой потытки выставил так, что слаки по сетапу большие, по холду - на грани: 2.3 нс и 0.2 нс. Залил в плату - все работает.
На плате 4 АЦП, со всеми все ок (на каждый свой pll).
Подвинул фазу так, чтобы сбалансировать сетап и холд. Стали в районе 1.2 нс. Заливаю - не годится.
Получается что я неверно задал констрейны и в первом случае просто пальцем в небо?
ок, беру sdc от des00.
Когда сетап на грани - не работает. Возможно сказываются задержки на плате.
Балансирую сетап и холд. Оба становятся в районе 0.75 нс. Заливаю - порядок.
Как говорится, респект des00.
des00, подскажите, пожалуйста, как вы получили цифры -max 1.0, -min -0.4.
Может подскажете, где я ошибся в своих констрейнах.
Спасибо.
Сообщение отредактировал otv116 - Mar 3 2018, 09:40