Altera CPLD EPM570 series have four global clocks(GCLK0-GCLK3),I want to assign two clock sources to CPLD: one from oscillator and one from a MCU. From "GLOBAL SIGNAL" part of "MAX II Architecture"MAX II Architecture, i get confused.the structure is shown below:
why does CPLD have four clock output? I think it should only have one output connecting one of four global clocks. Does it mean that four clock output will serve different logicals? and is it safe to assign different clock sources to different GCLKx?
Electronic – Why does CPLD has four clock sources
clockprogrammable-logic
Related Topic
- Electronic – Implementing a counter in VHLD with edge triggered clear
- Electrical – Simulating LPM_counter on Modelsim gives ‘z’ (high impedance) output
- Electronic – Is this the correct way putting multiple chips into one JTAG chain
- Electronic – How to use global clock in VHDL
- Electronic – Oscillator slows down when the hand hovers over it
- Electronic – Does dividing a clock increase its jitter
- Electronic – Why do some microcontrollers have numerous oscillators (and what are their functions)
Best Answer
Multiple clocks are often needed because several parts of the CPLD (or FPGA for that matter) will be programmed with separate functionality that operates asynchronously from other parts using separated clock domains.
Other times some clocks will be generated from an external clock source using one of the specialty clock generator chips that created different clocks that have defined phase relationships. These can be leveraged in different parts of the CPLD/FPGA in a way to optimize the operational behavior of the chip programming.
It is perfectly safe to have different parts of the CPLD / FPGA using different clocks. Your challenge as the designer is to use extreme care to keep each circuit confined to its own clock domain. And if it turns out to be necessary for some logic to make a crossing from one clock domain to another that you apply the necessary design rigor to apply the necessary clock synchronization circuits to the crossing paths to ensure that the resulting logic is stable and not subject to metastability problems.