Нужна помощь, т.к. даже бубен не помогает))) Имеется Virtex2 на который гонятся данные с АЦП(AD9430). На ЦАП подаем частоту 26МГц. Задача очень проста, забирать каждый 8-ой отчет. Вот, что имеем:
Код
always @( posedge IN_ADC_CLK )
if ( cregs_dsp_bclk2[ADCRXFIFOCR][ADCRXFIFOCR_RST] )
sample_cnt <= 3'd0;
else
sample_cnt <= sample_cnt + 1'd1;
always @(posedge IN_ADC_CLK)
adc1_d0 <= ADC1_D;
always @( posedge IN_ADC_CLK )
if ( sample_cnt == 3'd2 )
q_quadr <= adc1_d0;
if ( cregs_dsp_bclk2[ADCRXFIFOCR][ADCRXFIFOCR_RST] )
sample_cnt <= 3'd0;
else
sample_cnt <= sample_cnt + 1'd1;
always @(posedge IN_ADC_CLK)
adc1_d0 <= ADC1_D;
always @( posedge IN_ADC_CLK )
if ( sample_cnt == 3'd2 )
q_quadr <= adc1_d0;
IN_ADC_CLK - клок от АЦП'а выровненный с данными.
Все бы хорошо, но счетчик временами сбоит. Вот выборка сигналов из ChipScope'a(выборка производилась на той же частоте, на которой работает АЦП ):
Нажмите для просмотра прикрепленного файла
Почему счетчик так может работать??? У меня уже нет ни каких идей. Места а в fpga еще много. 26МГц небольшая частота, что бы были проблемы с времянками. Мистика
