Делаю десериализатор для потока LVDS данных с АЦП, который представляет собой сдвиговый регистр (не использую аппаратные serdes ).
Исходник десериализатора в аттаче.
SDC файл следующего вида
CODE
create_clock -name {clk} -period 20.020 -waveform { 0.000 10.01 } [get_ports {clk}]
create_clock -name {adc_clk0} -period 2.860 -waveform { 0.540 1.970 } [get_ports { adc_clk0 }]
create_clock -name {adc_frame} -period 20.020 -waveform { 2.700 12.710 } [get_ports {adc_frame}]
create_clock -name {adc_clk0} -period 2.860 -waveform { 0.540 1.970 } [get_ports { adc_clk0 }]
create_clock -name {adc_frame} -period 20.020 -waveform { 2.700 12.710 } [get_ports {adc_frame}]
сигнал adc_clk180 также описан выше как (и констрейн для него автоматически определен)
CODE
assign adc_clk180 = ~adc_clk0;
RTL симуляция проходит успехно, timequest дает положительные слаки (минимальный для adc_clk0 состовляет порядка 0.3 нс ). Но Post fir симуляция проходит не корректно (хотя моделсим не ругается на setup/hold), выходные данные идут с произвольным сдвигом.
Подскажите, где возможная ошибка и как ее найти ?
з.ы
поясню
adc_clk0 есть сигнал DCO c АЦП
adc_frame - FCO