|
DCM в XC3S400 |
|
|
|
Nov 22 2005, 10:55
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 5-05-05
Из: Зеленоград
Пользователь №: 4 762

|
Проблема такая: описываю на Verilog такой модуль module my_dcm(CLKIN_IN, CLKFX_OUT, CLKIN_IBUFG_OUT, CLK0_OUT);
input CLKIN_IN; output CLKFX_OUT; output CLKIN_IBUFG_OUT; output CLK0_OUT; wire CLKFB_IN; wire CLKFX_BUF; wire CLKIN_IBUFG; wire CLK0_BUF; wire GND; assign GND = 0; assign CLKIN_IBUFG_OUT = CLKIN_IBUFG; assign CLK0_OUT = CLKFB_IN; BUFG CLKFX_BUFG_INST (.I(CLKFX_BUF), .O(CLKFX_OUT)); IBUFG CLKIN_IBUFG_INST (.I(CLKIN_IN), .O(CLKIN_IBUFG)); BUFG CLK0_BUFG_INST (.I(CLK0_BUF), .O(CLKFB_IN)); // Period Jitter (unit interval) for block DCM_INST = 0.04 UI // Period Jitter (Peak-to-Peak) for block DCM_INST = 0.13 ns DCM DCM_INST (.CLKFB(CLKFB_IN), .CLKIN(CLKIN_IBUFG), .DSSEN(GND), .PSCLK(GND), .PSEN(GND), .PSINCDEC(GND), .RST(GND), .CLKDV(), .CLKFX(CLKFX_BUF), .CLKFX180(), .CLK0(CLK0_BUF), .CLK2X(), .CLK2X180(), .CLK90(), .CLK180(), .CLK270(), .LOCKED(), .PSDONE(), .STATUS())/* synthesis xc_props="CLK_FEEDBACK=1X, \ CLKDV_DIVIDE=2.000000, \ CLKFX_DIVIDE=1, \ CLKFX_MULTIPLY=10, \ CLKIN_DIVIDE_BY_2=FALSE, \ CLKIN_PERIOD=100.000000, \ CLKOUT_PHASE_SHIFT=NONE, \ DESKEW_ADJUST=SYSTEM_SYNCHRONOUS, \ DFS_FREQUENCY_MODE=LOW, \ DLL_FREQUENCY_MODE=LOW, \ DUTY_CYCLE_CORRECTION=TRUE, \ FACTORY_JF=C080, \ PHASE_SHIFT=0, \ STARTUP_WAIT=TRUE" */; // synopsys translate_off defparam DCM_INST.CLK_FEEDBACK = "1X"; defparam DCM_INST.CLKDV_DIVIDE = 2.000000; defparam DCM_INST.CLKFX_DIVIDE = 1; defparam DCM_INST.CLKFX_MULTIPLY = 10; defparam DCM_INST.CLKIN_DIVIDE_BY_2 = "FALSE"; defparam DCM_INST.CLKIN_PERIOD = 100.000000; defparam DCM_INST.CLKOUT_PHASE_SHIFT = "NONE"; defparam DCM_INST.DESKEW_ADJUST = "SYSTEM_SYNCHRONOUS"; // defparam DCM_INST.DFS_FREQUENCY_MODE = "HIGH"; defparam DCM_INST.DFS_FREQUENCY_MODE = "LOW"; defparam DCM_INST.DLL_FREQUENCY_MODE = "LOW"; defparam DCM_INST.DUTY_CYCLE_CORRECTION = "TRUE"; defparam DCM_INST.FACTORY_JF = 16'hC080; defparam DCM_INST.PHASE_SHIFT = 0; defparam DCM_INST.STARTUP_WAIT = "TRUE"; // synopsys translate_on endmodule
На входе - 10МГц, на выходе, как видно, д.б. 100МГц. Симулирую его - все великолепно... Синтезирую (Sinplify Pro), заливаю в кристалл... на выходе... 10МГц!!! Причем, как бы я ни менял коэффициенты деления/умножения все одно и то же: 10МГц... Может кто сталкивался?
|
|
|
|
|
 |
Ответов
|
Nov 22 2005, 19:56
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 5-05-05
Из: Зеленоград
Пользователь №: 4 762

|
Цитата(tegumay @ Nov 22 2005, 21:23)  Если в DCM задействован как DFS и DLL то мин вх частота 18 Мгц лучше всего зайдите на сайт Xilinxa и скачайте доки по Spartan 3 DFS - когда задействованы выходы CLKFX и CLKFX180 (1-280 MHZ) DLL - когда зайдействованы остальные выходы если поставить обратную связь то будет уже не DFS а DLL и частота мин станет 18Мгц а не 1 МГц по ходу так Дело в том, что я не сам создавал сей чудный код, а доверил его архитектурному визарду от Ксайлинкса... И он сказал, что минимальная входная частота от 1 МГц для данной конфигурации... по крайней мере, как я его понял...
|
|
|
|
|
Nov 23 2005, 13:29
|
Частый гость
 
Группа: Свой
Сообщений: 139
Регистрация: 5-05-05
Из: Зеленоград
Пользователь №: 4 762

|
Сейчас вот попробовал сделать DCM-ку на ките. Входная частота 50МГц. Заодно для очистки совести все синтезировал не в Sinplify, а в XST. На выходе CLK2X вижу удвоенную частоту, фазы 90-180-270 нормально подвинутые. Но это я все видел и на своей плате с 10МГц входа (разве что с CLK2X там полз сигнал 10МГц, но со скважностью 4). Но с выхода CLKFX прет какой-то бред, постоянная со слабыми колыханиями, которые по сути своей вероятно наводки... Напомню, что на своей плате с 10МГц-ами, я видел те же 10МГц сквозняком. Какие будут идеи? А то у меня уже своих вариантов и не осталось... Пробовал обойтись, как тут звучало, без связи CLK0-CLKFB. Эффект нулевой.
|
|
|
|
Сообщений в этой теме
stalko DCM в XC3S400 Nov 22 2005, 10:55 tegumay На 50 Мгц коэффициенты MUL и DIV какие? не те же с... Nov 23 2005, 20:28 stalko Цитата(tegumay @ Nov 23 2005, 23:28) На 5... Nov 23 2005, 20:41 Grumbler_2002 Посмотреть STATUS на предмет захвата или срыва ча... Nov 23 2005, 21:51 stalko Цитата(Grumbler_2002 @ Nov 24 2005, 00:51... Nov 24 2005, 06:52 tegumay а как 2X он же работал? если он есть то и захват д... Nov 24 2005, 09:51 stalko Цитата(tegumay @ Nov 24 2005, 12:51) а ка... Nov 24 2005, 11:25  stalko Всё!! Всем спасибо!!!
Проблема... Nov 24 2005, 16:59   stalko Вдогонку подумалось...
Все хорошо, но это я все п... Nov 24 2005, 17:22    stalko Чего боялся, то и произошло...
Вернулся к основном... Nov 25 2005, 10:11     stalko Все, закрываю тему. Synplify оказалась ни при чем,... Nov 25 2005, 18:14
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|