- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
From the device datasheet Cyclone II has 4 PLL, and I need to generate four 250MHz clocks with 0 degree, 90 degree, 180 degree and 270 degree phase shift. The input clock is 50MHz. But the altpll function only has 3 output (c0-c2). How to access the other 3 pll ?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
just instantiate others "altpll", I think.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You can do it with two PLL output clocks as 180° = 0° inverted and 270° = 90° inverted
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Strictly NO !, you can't "shift 180°" with NOT gate because gates introduce a delay, so 180° is NOT guaranteed by this way.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What about rising_edge( clock ) and falling_edge( clock ) then? and DDR input blocks?
See page 2-9 of the Cyclone II datasheet: chapter 2. cyclone ii architecture (http://www.altera.com/literature/hb/cyc2/cyc2_cii51002.pdf)- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You can do a NOT gate or rising/falling edge. There is an inversion as the clock goes into the LAB that has negligible delay. It shouldn't be a problem at all and only uses two globals.
(Now, most of the time I see people do this is to oversample some incoming signal. Ideally that external data comes in and feeds four FFs clocked by these different clocks, all in the same LAB. The LAB-wide clock signal will hurt you here, in that you can't get four clocks into a single LAB, so the FFs get spread out and you get more skew. This is true whether you invert the clocks or had four separate clocks. Of course, it depends on your rates if that's a problem or not)- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- You can do a NOT gate or rising/falling edge. There is an inversion as the clock goes into the LAB that has negligible delay. --- Quote End --- Being (a bit) pedantic: as shown on page 2-9 (http://www.altera.com/literature/hb/cyc2/cyc2_cii51002.pdf) there is a mux that selects between the 'true' and the 'inverted' global(s) to feed the LAB. If there is any difference in the delay I expect TimeQuest will take that into account. --- Quote Start --- Strictly NO !, you can't "shift 180°" with NOT gate because gates introduce a delay, so 180° is NOT guaranteed by this way. --- Quote End --- 'Definitely YES' I'd say ...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- just instantiate others "altpll", I think. --- Quote End --- Hi everybody, I am thinking to instantiate other altpll as mmTsuchi had suggested, but I am unable to find any information regarding the other 3 pll in cyclone II other than what is available from the megawizard. For instance input port name "inclk0" (for the first pll) but no information for the second pll.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Did you miss the table pll clock input pin connections in the Cyclone II Device Handbook?
The problem with Cyclone II is that PLLs can be only driven by specific input pins, to use multiple PLLs, the clock source must be wired to different sides of the FPGA.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Did you miss the table pll clock input pin connections in the Cyclone II Device Handbook? The problem with Cyclone II is that PLLs can be only driven by specific input pins, to use multiple PLLs, the clock source must be wired to different sides of the FPGA. --- Quote End --- Ok..i will recheck again in the device handbook. Just one more question, can two pll be driven by the same source clock at the same time ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Once again: you don't need two PLLs to generate the 4 clocks: 0°, 90°, 180°, 270°. As Rysc confirmed you can use just one PLL with two clocks 0° and 90° and either use a 'not' operator or use falling_edge() in VHDL or negedge in Verilog to get the 180° and 270°.
As FvM indicates: using 2 PLLs wil necessitate connecting the external clock reference to 2 pins on the FPGA which in Cyclone II are located on the opposite sides. This will add about 150 to 200 ps skew between the outputs of the two PLLs. Also the two PLLs are located on different sides of the FPGA, adding more skew.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Once again: you don't need two PLLs to generate the 4 clocks: 0°, 90°, 180°, 270°. As Rysc confirmed you can use just one PLL with two clocks 0° and 90° and either use a 'not' operator or use falling_edge() in VHDL or negedge in Verilog to get the 180° and 270°. As FvM indicates: using 2 PLLs wil necessitate connecting the external clock reference to 2 pins on the FPGA which in Cyclone II are located on the opposite sides. This will add about 150 to 200 ps skew between the outputs of the two PLLs. Also the two PLLs are located on different sides of the FPGA, adding more skew. --- Quote End --- ok...got It. Now I need to modify my Verilog code to work on just with two clocks. Thanks for all of the comments.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page