Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
The Intel sign-in experience is changing in February to support enhanced security controls. If you sign in, click here for more information.
19681 Discussions

max 10: Alternate between two clock sources without reseting I/Os values ??

Honored Contributor II


I'm using Max10M16 for my project. In the project we have two clock sources (CLK_1 and CLK_2) and we want to switch from one clock source to the other. Namely: 

- First, CLK_1 will be used as global clock source for Max 10. 

- After some times, the CLK_1 will be switched off. Now we want to use the CLK_2 (CLK_2 is always on) as a global clock source for for Max 10. 

- The switching between two clocks should not affect to the current IOs values (IO level should remain unchanged all the time). 


My question is: is it possible ? And if yes, is there any guide how to do it? 


0 Kudos
2 Replies
Honored Contributor II

Most PLLs have a clock switchover function, which is where I would start. (I don't remember if M10 has this or not). This could get complicated in that when switching the PLL has to lock to the second clock, where I don't know if your system can tolerate that. Also, if the clocks are not close in frequency, the PLL would have to be reconfigured, which can be a pain. 


I believe you can also have two clocks come in and do this in logic. It's not "recommended" but certainly works. I have an Arria 10 design with 12 clock muxes in logic that then drive globals, and it's all working in hardware, so it is do-able.
Honored Contributor II

Hi Rysc 

The PLL clock switchover seems to be suitable for my problem. As for Max10 device, the datasheet says that it has the "switchover" feature, however when looking in Qsys ALTPLL-IP for this "switchover" option, I cannot select/active this option as well as "enhanced pll" option in "general" tab. As far as I understand, the "switchover" can only be used in "enhanced pll" type, but the ALTPLL Wizard automatically selects "select the pll type automatically" and does not let me to select PLL type manually.