реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Чудеса с простым счетчиком, Не работает счетчик в Virtex2
slash_spb
сообщение Aug 5 2009, 22:56
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 20-03-06
Пользователь №: 15 425



Доброе время суток.
Нужна помощь, т.к. даже бубен не помогает))) Имеется 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;

IN_ADC_CLK - клок от АЦП'а выровненный с данными.

Все бы хорошо, но счетчик временами сбоит. Вот выборка сигналов из ChipScope'a(выборка производилась на той же частоте, на которой работает АЦП ):
Прикрепленное изображение


Почему счетчик так может работать??? У меня уже нет ни каких идей. Места а в fpga еще много. 26МГц небольшая частота, что бы были проблемы с времянками. Мистика cranky.gif
Go to the top of the page
 
+Quote Post
Sergey'F
сообщение Aug 6 2009, 06:37
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660



Проблемы с времянками могут быть и на частоте 1МГц.
Откуда берется и как привязан к IN_ADC_CLK сигнал cregs_dsp_bclk2[ADCRXFIFOCR][ADCRXFIFOCR_RST]?
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Aug 6 2009, 07:49
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Тактовая ChipScope откуда берется?
Я вижу не сбой счетчика, а стробоскопический эффект.
Go to the top of the page
 
+Quote Post
ArMouReR
сообщение Aug 6 2009, 13:10
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 61
Регистрация: 3-03-06
Пользователь №: 14 936



Вставте код связаний с cregs_dsp_bclk2[ADCRXFIFOCR][ADCRXFIFOCR_RST] похоже проблема там...
Go to the top of the page
 
+Quote Post
slash_spb
сообщение Aug 6 2009, 19:57
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 20-03-06
Пользователь №: 15 425



Да, большое спасибо, там ошибка, сигнал сброса счетчика не синхронин 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
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Aug 6 2009, 20:38
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Анализатор таймингов на все это вместе с чипскопом что говорит, не ругается?

Как вариант - начать пытать схему отрезая от нее по кусочку, пока не сознается.
Go to the top of the page
 
+Quote Post
LordVader
сообщение Aug 6 2009, 22:38
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 127
Регистрация: 18-10-06
Пользователь №: 21 418



В порядке бреда - проходит пичок по цепи сброса, как раз перед фронтом клока, который на ноль счётчик должен был возвратить.
Go to the top of the page
 
+Quote Post
ArMouReR
сообщение Aug 8 2009, 00:28
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 61
Регистрация: 3-03-06
Пользователь №: 14 936



Shtirlits В правильную сторону клонит. Я бы еще внимательно просмотрел лог компиляции.
Можете обнаружить, что там что-то плохо попахивает...

И еще в качестве меры профилактики я бы сделал такую вещь:
Раз у вас cregs_dsp_bclk2[ADCRXFIFOCR][ADCRXFIFOCR_RST] это вроде как асинхронный reset я бы подключил его ко всем FlipLopам у вас в коде. Т.е. к adc1_d0, q_quadr и т.д....
Go to the top of the page
 
+Quote Post
dvladim
сообщение Aug 8 2009, 11:01
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



Цитата(slash_spb @ Aug 6 2009, 23:57) *
Вообще сигнал cregs_dsp_bclk2[ADCRXFIFOCR][ADCRXFIFOCR_RST] сбрасывает всю логику схемы и активен в самом начале, далее, при работе счетчика всегда равен нулю.

И все же приведите формирование cregs_dsp_bclk2[ADCRXFIFOCR][ADCRXFIFOCR_RST] . Что-то мне подсказывает что это не просто входной пин.
Как объявлен sample_cnt? reg [2:0] sample_cnt;?
Go to the top of the page
 
+Quote Post
slash_spb
сообщение Aug 9 2009, 18:48
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 79
Регистрация: 20-03-06
Пользователь №: 15 425



Большое всем спасибо. Схема наконец созналась. Решил на 150MHz посмотреть на клок от ацп. Вот что увидел:
Прикрепленное изображение


Код
always @(posedge IN_ADC_CLK)
  adc_clk_bit <= ~adc_clk_bit;

always @(posedge ref26_MHz)
  ref26_clk_bit <= ~ref26_clk_bit;


IN_ADC_CLK - клок от АЦП.
ref26_MHz - клок на АЦП.

Блин, с таким еще не сталкивался. Видимо что-то с АЦП или со схемотехникой. Пока решил просто использовать ref26_MHz, с ним все работает хоть это и не совсем правильно.

Спасибо за помощь rolleyes.gif
Go to the top of the page
 
+Quote Post
Shtirlits
сообщение Aug 9 2009, 21:02
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Цитата(slash_spb @ Aug 9 2009, 22:48) *
...Схема наконец созналась....

Хочется сказать голосом ослика из Шрека "У меня есть дракон осциллограф и я не побоюсь применить его!".
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 07:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01429 секунд с 7
ELECTRONIX ©2004-2016