Altera_Forum
Honored Contributor
15 years agoClock division and multiplexing in Cyclone-I
Hello all,
I have Cyclone-I FPGA in my lab. It is: EP1C12Q240C6. My requirement is to be able to select between 2 different crystal clocks, and their divide-by-2, divide-by-4 and divide-by-8 versions. This means that I need to have a selection for 8 different frequencies. On my board, I have two crystals with frequencies of 100MHz and 160MHz. From documentations, I see that Cyclone FPGA doesn't support the altclkctrl megafunction. This is unfortunate! Then I went through the Cyclone handbook on clock management. I see that at the output of the PLL, there is a multiplexer for selecting between the pll-input clock (inclk), pll-generated clocks (c0), dual-purpose clocks (dpclk) and user generated clocks. But it is not mentioned how one goes about using this multiplexer. can someone please tell me how one can use the internal clock multiplexer? In my device, there are two PLLs. I am planning to connect the 160MHz crystal to the first PLL for generating 80MHz and 40Mhz, and then have an internal logic for 20Mhz. In the same way, I plan to connect 100MHz to the other PLL for generating 50MHz and 25MHz, and create logic for 12.5MHz. Now the problem is, how do I multiplex all these to get a single clock output. I am thinking of using the second PLL and its associated multiplexer for driving the 100MHz related clock out of the chip, back to a DPCLK input of the first multiplexer (160MHz related). I don't see any other way for doing this. Can someone please help me out with this. thanking in advance, rajesh