В нашем девайсе используется Spartan-3, 400 киловентилей, Speed Grade -4. Большая часть схемы внутри тактируется от сигнала 120 Мгц, который вырабатывается из 12 Мгц на DCM-е.
Недавно обнаружилась проблема - этот модуль DCM иногда вдруг засыпает - перестаёт генерировать какой либо сигнал. Случается очень редко - только 2 раза замечал, но это полный П.
Вот так он подключается:
Код
DCM_clkH: DCM_01
PORT MAP
(
CLKIN_IN => clk12M,
RST_IN => '0',
CLKFX => clkH,
CLKIN_IBUFG_OUT => clk12M_int, -- Этот сигнал больше нигде не используется
LOCKED_OUT => open -- Этот пока что тоже не обрабатываем, но придётся, видимо.
);
PORT MAP
(
CLKIN_IN => clk12M,
RST_IN => '0',
CLKFX => clkH,
CLKIN_IBUFG_OUT => clk12M_int, -- Этот сигнал больше нигде не используется
LOCKED_OUT => open -- Этот пока что тоже не обрабатываем, но придётся, видимо.
);
И входная и выходная частоты подключены к глобальным тактовым линиям.
Атрибуты в настроечном файле:
CLK_FEEDBACK = NONE
CLKDV_DIVIDE = 2
CLKFX_DIVIDE = 1
CLKFX_MULTIPLY = 10
CLKIN_DIVIDE_BY_2 = FALSE
CLKIN_PERIOD = 83.3333
CLKOUT_PHASE_SHIFT = NONE
DESKEW_ADJUST = SYSTEM_SYNCHRONOUS
DFS_FREQUENCY_MODE = LOW
DLL_FREQUENCY_MODE = LOW
DUTY_CYCLE_CORRECTION = TRUE
FACTORY_JF = 16'hC080
PHASE_SHIFT = 0
STARTUP_WAIT = FALSE
В связи с этим вопрос: это где-то проблема в настройках, или такое действительно бывает? И что с эти делать?