SLIDE 6 Joachim Rodrigues, EIT, LTH, Introduction to Structured VLSI Design jrs@eit.lth.se FPGA Intro
Delay‐Locked Loop (DLL)
- Consists of a variable delay line and
control logic. Produces a delayed version of the input clock
- Clock distribution network routes
the clock to all internal registers and feedback CLKFB pin.
- Control logic samples the input clock
as well as the feedback clock in
- rder to adjust the delay line.
- Delay line is built as a series of
discrete delay elements.
- A DLL inserts a delay between the
input clock and the feedback clock until the two rising edges align.
- After the edges from the input clock
line up with the edges from the feedback clock, the DLL "locks."
Joachim Rodrigues, EIT, LTH, Introduction to Structured VLSI Design jrs@eit.lth.se FPGA Intro
DCM‐ Module Block Diagram
Remember: DCM is optional. If only one clock is required the
- rdinary clock network can be used.
Joachim Rodrigues, EIT, LTH, Introduction to Structured VLSI Design jrs@eit.lth.se FPGA Intro
DCM‐ VHDL
DCM_inst : DCM generic map ( CLKDV_DIVIDE => 2.0, ‐‐ Divide by CLKFX_DIVIDE => 1, ‐‐ integer from 1 to 32 CLKFX_MULTIPLY => 4, ‐‐ integer from 1 to 32 CLKIN_DIVIDE_BY_2 => FALSE, ‐‐ TRUE/FALSE CLKIN_PERIOD => 0.0, ‐‐ period of input clock CLKOUT_PHASE_SHIFT => "NONE", ‐‐ CLK_FEEDBACK => "1X", ‐‐ feedback NONE, 1X or 2 DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", ‐‐ DFS_FREQUENCY_MODE => "LOW", ‐ DLL_FREQUENCY_MODE => "LOW", ‐ DUTY_CYCLE_CORRECTION => TRUE, ‐‐ Duty cycle FACTORY_JF => X"C080", ‐‐ FACTORY JF Values PHASE_SHIFT => 0, ‐‐ Amount of fixed phase shift SIM_MODE => "SAFE", DCM_inst : DCM generic map ( CLKDV_DIVIDE => 2.0, ‐‐ Divide by CLKFX_DIVIDE => 1, ‐‐ integer from 1 to 32 CLKFX_MULTIPLY => 4, ‐‐ integer from 1 to 32 CLKIN_DIVIDE_BY_2 => FALSE, ‐‐ TRUE/FALSE CLKIN_PERIOD => 0.0, ‐‐ period of input clock CLKOUT_PHASE_SHIFT => "NONE", ‐‐ CLK_FEEDBACK => "1X", ‐‐ feedback NONE, 1X or 2 DESKEW_ADJUST => "SYSTEM_SYNCHRONOUS", ‐‐ DFS_FREQUENCY_MODE => "LOW", ‐ DLL_FREQUENCY_MODE => "LOW", ‐ DUTY_CYCLE_CORRECTION => TRUE, ‐‐ Duty cycle FACTORY_JF => X"C080", ‐‐ FACTORY JF Values PHASE_SHIFT => 0, ‐‐ Amount of fixed phase shift SIM_MODE => "SAFE", STARTUP_WAIT => FALSE) ‐‐ port map ( CLK0 => CLK0, ‐‐ 0 degree DCM CLK ouptput CLK180 => CLK180, ‐‐ 180 degree DCM CLK output CLK270 => CLK270, ‐‐ 270 degree DCM CLK output CLK2X => CLK2X, ‐‐ 2X DCM CLK output CLK2X180 => CLK2X180, ‐‐ 2X, 180 CLK90 => CLK90, ‐‐ 90 degree DCM CLK output CLKDV => CLKDV, ‐‐ (CLKDV_DIVIDE) CLKFX => CLKFX, ‐‐ DCM CLK synthesis out (M/D) CLKFX180 => CLKFX180, ‐‐ LOCKED => LOCKED, ‐‐ DCM LOCK status output PSDONE => PSDONE, ‐‐ STATUS => STATUS, ‐‐ 8‐bit DCM status bits CLKFB => CLKFB, ‐‐ DCM clock feedback CLKIN => CLKIN, ‐‐ Clock input (IBUFG, BUFG,DCM) PSCLK => PSCLK, ‐‐ PSEN => PSEN, ‐‐ Dynamic phase adjust enable PSINCDEC => PSINCDEC, ‐‐ Dynamic phase adjust RST => RST ‐‐ DCM asynchronous reset input ); ‐‐ End of DCM_inst instantiation STARTUP_WAIT => FALSE) ‐‐ port map ( CLK0 => CLK0, ‐‐ 0 degree DCM CLK ouptput CLK180 => CLK180, ‐‐ 180 degree DCM CLK output CLK270 => CLK270, ‐‐ 270 degree DCM CLK output CLK2X => CLK2X, ‐‐ 2X DCM CLK output CLK2X180 => CLK2X180, ‐‐ 2X, 180 CLK90 => CLK90, ‐‐ 90 degree DCM CLK output CLKDV => CLKDV, ‐‐ (CLKDV_DIVIDE) CLKFX => CLKFX, ‐‐ DCM CLK synthesis out (M/D) CLKFX180 => CLKFX180, ‐‐ LOCKED => LOCKED, ‐‐ DCM LOCK status output PSDONE => PSDONE, ‐‐ STATUS => STATUS, ‐‐ 8‐bit DCM status bits CLKFB => CLKFB, ‐‐ DCM clock feedback CLKIN => CLKIN, ‐‐ Clock input (IBUFG, BUFG,DCM) PSCLK => PSCLK, ‐‐ PSEN => PSEN, ‐‐ Dynamic phase adjust enable PSINCDEC => PSINCDEC, ‐‐ Dynamic phase adjust RST => RST ‐‐ DCM asynchronous reset input ); ‐‐ End of DCM_inst instantiation
Joachim Rodrigues, EIT, LTH, Introduction to Structured VLSI Design jrs@eit.lth.se FPGA Intro
ISE‐Coregen
initialized by using coregen in ISE