Да, большое спасибо, там ошибка, сигнал сброса счетчика не синхронин c IN_ADC_CLK. Исправил.
Код
always @( posedge IN_ADC_CLK, posedge cregs_dsp_bclk2[ADCRXFIFOCR][ADCRXFIFOCR_RST] )
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;
Вообще сигнал cregs_dsp_bclk2[ADCRXFIFOCR][ADCRXFIFOCR_RST] сбрасывает всю логику схемы и активен в самом начале, далее, при работе счетчика всегда равен нулю. Даже после исправления счетчик не хочет считать))). Вот (Сигнал cregs_dsp_bclk2[ADCRXFIFOCR][ADCRXFIFOCR_RST] тоже приведен):
Тактовая частота chipscope одинакова с тактовой частотой идущей на ацп.
До конца не осознал что такое стробоскопический эффект, но при правильной работе счетчика мы должны видеть примерно одинаковый уровень сигнала q_quadr. Частота изменения сигнала q_quadr в 8 раз меньше тактовой частоты chipscope, но как показывает выборка, сигнал q_quadr "скачет".
Все вроде должно работать, а не работает или я ошибаюсь и все еще что-то делаю не верно?
Сообщение отредактировал slash_spb - Aug 6 2009, 20:00