[an error occurred while processing this directive]
|
Входная частота: 47 МГц.
Внутри DCM происходит умножение частоты на 2 и фазовый сдвиг.
Reset в DCM заведен, однако его активация ситуацию не изменяет. Помогает только выключение питания и повторение загрузки. Просто перезагрузка также не помогает. При этом loc не выставляется примерно в 30% случаев загрузки - то есть нестабильность присутствует.
Вот элемент кода (Kvartz_Clock - сигнал входящий в кристалл, Xilinx_DCM_Clock - тактовый сигнал для работы внутренней логики).
-- ********************************************************************************
*****
attribute CLK_FEEDBACK of Xilinx_DCM : label is "2X";
attribute DLL_FREQUENCY_MODE of Xilinx_DCM : label is "LOW";
attribute CLKOUT_PHASE_SHIFT of Xilinx_DCM : label is "FIXED";
attribute PHASE_SHIFT of Xilinx_DCM : label is 40.0;
-- ********************************************************************************
*****
Kvartz_CLK_IBUFG: IBUFG_LVCMOS33
port map(
I => Kvartz_Clock,
O => Kvartz_Clock_Int );
Kvartz_CLK_BUFGMUX: BUFGMUX
port map (
I0 => Kvartz_Clock_Int,
I1 => '0',
S => '0',
O => Kvartz_Clock_BufGMux
);
Xilinx_DCM_ClockFB <= Xilinx_DCM_Clock;
Xilinx_DCM: DCM
port map(
CLKIN => Kvartz_Clock_BufGMux,
RST => NOT PCIX_Bus_Reset_Int,
CLKFB => Xilinx_DCM_ClockFB,
CLK0 => open,
CLK2X => Xilinx_DCM_Clock_FromDLL,
LOCKED => Xilinx_DCM_Locked
);
Xilinx_Clock_BUFG: BUFG
port map(I => Xilinx_DCM_Clock_FromDLL, O => Xilinx_DCM_Clock);