Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Формирование тактовых сигналов
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
demi
Добрый день.
Помогите разобраться в следующей проблеме.
Необходимо сформировать 2 тактовых сигнала для внешних устройств (АЦП и ДСП), с частотами 6.2 МГц и 50 МГц соответственно. Я делал следующим образом, тактировал плис (спартан3 на 200тв) 50 МГц и счетчиком делил входную частоту до 6.2 МГц. И выводил полученные частоты на пины. Но мне думается, что это не лучший вариант....
Решил использовать блок тактовой синхронизации. Формирую три тактовые частоты - 50, 6.25 и 100 МГц. последняя - рабочая частота для плиса. Подаю на выходные пины 50 и 6.2 МГц и на одном из пинов нет сигнала... sad.gif Посмотрел RTL-схему - выходные буфферы подключены, сигнала заведены на BUFG. Сигналы DCM блока получал из генератора core.
Может кто подскажет в чем проблема? Или мой подход к решению вопроса тактирования изначально не правильный?
AlexB
Цитата(demi @ Jul 2 2007, 10:54) *
... блок тактовой синхронизации ... 6.25 МГц ... нет сигнала...


Вы для генерации 6.25Мгц используете встроенный в DCM синтезатор частоты. Нижняя граница для него 18МГц.

Внимательно изучите XAPP462
demi
Цитата(AlexB @ Jul 2 2007, 11:07) *
Вы для генерации 6.25Мгц используете встроенный в DCM синтезатор частоты. Нижняя граница для него 18МГц.

Внимательно изучите XAPP462


Может я не прав, но я использую делитель входной тактовой частоты на 8, для 6.25 и умножаю входную на 2 для 100 МГц. Я не использую DFS. И плис мне выдаетт 6.2МГц. Но на втором пине нет сигнала. Если я переключаю тактовые частоты на пинах, то получаю 50МГц на первой пине, а на втором - нет сигнала.
И еще вопрос - можно использовать ресурсы одного банка с разными тактовыми частотами?

Цитата(AlexB @ Jul 2 2007, 11:07) *
Вы для генерации 6.25Мгц используете встроенный в DCM синтезатор частоты. Нижняя граница для него 18МГц.

Внимательно изучите XAPP462

Прочитал..... да 18МГц. Но тогда я не понимаю почему плис выдавал мне 6.2МГц.......
demi
Объясните мне, плиз, что я делаю не так.
Генерю корку для DCM блока с сигналами clk0, clkx2, clk90 (входная тактовая 50 МГц). Обратная связь через clk0. Использую clk0 и clk90 для получения частоты 6.2 МГц. Из clkx2 получаю 50МГц.
Вывожу на пины две частоты по 6.2МГц вижу, 50 не вижу. Вывожу вместо 50МГц 6.2 - на выходном пине есть сигнал. Почему?
SunnyAngel
2 demi ->
Код
DCM_unit1 : DCM
   generic map (
      CLKDV_DIVIDE =>8.0, --  Divide by: 1.5,2.0,2.5,3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5
                           --     7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0 or 16.0
      CLKFX_DIVIDE => 2,   --  Can be any interger from 1 to 32 --!
      CLKFX_MULTIPLY => 2, --  Can be any integer from 2 to 32  --!
      CLKIN_DIVIDE_BY_2 => FALSE, --  TRUE/FALSE to enable CLKIN divide by two feature
      CLKIN_PERIOD => 20.0,          --  Specify period of input clock
      CLKOUT_PHASE_SHIFT => "NONE", --  Specify phase shift of NONE, FIXED or VARIABLE
      CLK_FEEDBACK => "1X",       --  Specify clock feedback of NONE, 1X or 2X
      DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS",
      DFS_FREQUENCY_MODE => "LOW",     --  HIGH or LOW frequency mode for frequency synthesis
      DLL_FREQUENCY_MODE => "LOW",     --  HIGH or LOW frequency mode for DLL
      DUTY_CYCLE_CORRECTION => TRUE, --  Duty cycle correction, TRUE or FALSE
      FACTORY_JF => X"C080",          --  FACTORY JF Values
      STARTUP_WAIT => FALSE) --  Delay configuration DONE until DCM LOCK, TRUE/FALSE
   port map (
      CLK0 => CLK0,     -- 0 degree DCM CLK ouptput
      CLKDV => CLKDV,   -- Divided DCM CLK out (CLKDV_DIVIDE)
      CLKFX => CLKFX,   -- DCM CLK synthesis out (M/D)
      CLKFB => CLK0,   -- DCM clock feedback
      CLKIN => clk   -- Clock input (from IBUFG, BUFG or DCM)
   );

Этот код должен выдать Вам необходимые частоты, попробуйте. clkdv - 6,25 MHz, clkfx-50 MHz.

2 AlexB ->
Цитата
Вы для генерации 6.25Мгц используете встроенный в DCM синтезатор частоты. Нижняя граница для него 18МГц.

xapp462.pdf, страница 52 и 55. Если я чего-то не так поняла, укажите, пожалуйста, страницу, где почитать и чтоб знать... 07.gif
CodeWarrior1241
Цитата(AlexB @ Jul 2 2007, 03:07) *
Вы для генерации 6.25Мгц используете встроенный в DCM синтезатор частоты. Нижняя граница для него 18МГц.

На стр. 52 Xapp462 нижния граница 18MHz подразумевает входной сигнал через CLKIN, a 6.25MHz ведь для demi должен выходить через CLKDV - с этим CLKOUT_FREQ_DV_LF_MIN может быть 1.125MHz или выше. Так что 6.25MHz работать должно. Надо незабыть поставить constraint на DLL_FREQUENCY_MODE что-бы был в low condition, и соответственно использовать входящий CLKIN от 18MHz - 160MHz. Вроде код от SunnyAngel это выполняет.
des00
50 не видете ? может у вас осцил с дикой входной емкостью smile.gif)))
для просто диагностики наличия клока выведите блинкеры <25Гц + сигнал захвата PLL.
demi
Цитата(des00 @ Jul 3 2007, 06:36) *
50 не видете ? может у вас осцил с дикой входной емкостью smile.gif)))
для просто диагностики наличия клока выведите блинкеры <25Гц + сигнал захвата PLL.

Не, с ним все нормально - 50МГц видно и больше можно.

Ставил "блинкеры" работают, а выводить на внешний пин ни в какую ;(((
RKOB
> Но на втором пине нет сигнала. Если я переключаю тактовые частоты на пинах, то получаю 50МГц на первой пине, а на втором - нет сигнала.

У вас не получается вывести клок на конкретный пин ? Пробовали вывести на другой пин ?
demi
Уф.......
Все сделал......
В чем была проблема - не знаю, но создал новый проект вставил код, предложенный SunnyAngel'ом заработало, затем попробовал свой код - заработало. Вставил код SunnyAngel'а в старый проект - не работает.......
Н-да..... ISE 9.1.3. Может стоит перейти на более раннию версию? Часто при компиляции проекта ise теряет некоторые файлы. Или в проекте сделал изменения, которые найти не могу sad.gif(
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.