demikon 0 2 июля, 2007 Опубликовано 2 июля, 2007 · Жалоба Добрый день. Помогите разобраться в следующей проблеме. Необходимо сформировать 2 тактовых сигнала для внешних устройств (АЦП и ДСП), с частотами 6.2 МГц и 50 МГц соответственно. Я делал следующим образом, тактировал плис (спартан3 на 200тв) 50 МГц и счетчиком делил входную частоту до 6.2 МГц. И выводил полученные частоты на пины. Но мне думается, что это не лучший вариант.... Решил использовать блок тактовой синхронизации. Формирую три тактовые частоты - 50, 6.25 и 100 МГц. последняя - рабочая частота для плиса. Подаю на выходные пины 50 и 6.2 МГц и на одном из пинов нет сигнала... :( Посмотрел RTL-схему - выходные буфферы подключены, сигнала заведены на BUFG. Сигналы DCM блока получал из генератора core. Может кто подскажет в чем проблема? Или мой подход к решению вопроса тактирования изначально не правильный? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexB 0 2 июля, 2007 Опубликовано 2 июля, 2007 · Жалоба ... блок тактовой синхронизации ... 6.25 МГц ... нет сигнала... Вы для генерации 6.25Мгц используете встроенный в DCM синтезатор частоты. Нижняя граница для него 18МГц. Внимательно изучите XAPP462 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demikon 0 2 июля, 2007 Опубликовано 2 июля, 2007 · Жалоба Вы для генерации 6.25Мгц используете встроенный в DCM синтезатор частоты. Нижняя граница для него 18МГц. Внимательно изучите XAPP462 Может я не прав, но я использую делитель входной тактовой частоты на 8, для 6.25 и умножаю входную на 2 для 100 МГц. Я не использую DFS. И плис мне выдаетт 6.2МГц. Но на втором пине нет сигнала. Если я переключаю тактовые частоты на пинах, то получаю 50МГц на первой пине, а на втором - нет сигнала. И еще вопрос - можно использовать ресурсы одного банка с разными тактовыми частотами? Вы для генерации 6.25Мгц используете встроенный в DCM синтезатор частоты. Нижняя граница для него 18МГц. Внимательно изучите XAPP462 Прочитал..... да 18МГц. Но тогда я не понимаю почему плис выдавал мне 6.2МГц....... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demikon 0 2 июля, 2007 Опубликовано 2 июля, 2007 · Жалоба Объясните мне, плиз, что я делаю не так. Генерю корку для DCM блока с сигналами clk0, clkx2, clk90 (входная тактовая 50 МГц). Обратная связь через clk0. Использую clk0 и clk90 для получения частоты 6.2 МГц. Из clkx2 получаю 50МГц. Вывожу на пины две частоты по 6.2МГц вижу, 50 не вижу. Вывожу вместо 50МГц 6.2 - на выходном пине есть сигнал. Почему? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SunnyAngel 0 2 июля, 2007 Опубликовано 2 июля, 2007 · Жалоба 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: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CodeWarrior1241 0 2 июля, 2007 Опубликовано 2 июля, 2007 · Жалоба Вы для генерации 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 25 3 июля, 2007 Опубликовано 3 июля, 2007 · Жалоба 50 не видете ? может у вас осцил с дикой входной емкостью :)))) для просто диагностики наличия клока выведите блинкеры <25Гц + сигнал захвата PLL. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demikon 0 3 июля, 2007 Опубликовано 3 июля, 2007 · Жалоба 50 не видете ? может у вас осцил с дикой входной емкостью :)))) для просто диагностики наличия клока выведите блинкеры <25Гц + сигнал захвата PLL. Не, с ним все нормально - 50МГц видно и больше можно. Ставил "блинкеры" работают, а выводить на внешний пин ни в какую ;((( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RKOB 0 3 июля, 2007 Опубликовано 3 июля, 2007 · Жалоба > Но на втором пине нет сигнала. Если я переключаю тактовые частоты на пинах, то получаю 50МГц на первой пине, а на втором - нет сигнала. У вас не получается вывести клок на конкретный пин ? Пробовали вывести на другой пин ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demikon 0 3 июля, 2007 Опубликовано 3 июля, 2007 · Жалоба Уф....... Все сделал...... В чем была проблема - не знаю, но создал новый проект вставил код, предложенный SunnyAngel'ом заработало, затем попробовал свой код - заработало. Вставил код SunnyAngel'а в старый проект - не работает....... Н-да..... ISE 9.1.3. Может стоит перейти на более раннию версию? Часто при компиляции проекта ise теряет некоторые файлы. Или в проекте сделал изменения, которые найти не могу :(( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться