Hello,I have been trying to figure out how to program the Si5338C that is used as a clock generator for the Cyclone V GX starter kit. Basically I need two different clocks with frequencies of 125 MHz and 125.01 MHz. I am using quartus prime and have been looking in the megafunctions provided by altera but until now I can not find any solution. Silicon Lab has a software called clock builder desktop but works only on evaluation board sold by them. Can someone point me how to configure the Si5338 directly on the Cyclone V GX starter Kit ? Thanks alot in advance. Jallix PS: I am quite a beginner in FPGA development.
The Si5338 can be configured via I2C, which can be hosted by the FPGA. There is no Altera "Si5338 MegaFunction" to help you here. However, it is possible - bear with me - this is pretty involved...Altera don't have their own I2C IP but have partners who offer it. Try microtronix (https://www.altera.com/products/reference-designs/all-reference-designs/industrial/ref-i2c.html) or, better still, write your own (I would). Once you have an I2C master in your FPGA you can control the registers in the Si5338 as you wish. You can then setup the clock output signals to operate at the frequencies and I/O standards you need. Now refer to the si5338 datasheet (https://www.silabs.com/support%20documents/technicaldocs/si5338.pdf) for information about the registers you need to write to. Ah, but what values do I write? The datasheet is pretty cr@p in that respect. You might want to use SiLabs clock software development tools (https://www.silabs.com/products/clocksoscillators/pages/timing-software-development-tools.aspx) to help generate the set of register writes needed. Now refer back to the "Register Write-Allowed Mask", section 10.3, page 29, of the Si5338 datasheet. This specifies a particularly well defined (but tedious) way of determining whether or not you should actually modify each bit of that particular register or not, based on each address' mask and data. Fortunately, the Clock Software Development Tools throw out the relevant masks with every relevant address/data combination. And that's it. You're up and running. Needless to say, it's not straightforward and, while Terasic were trying to create a development board that was flexible, their choice of clock source leaves a little to be desired. Such is inter-corporation pressure to use 'great' products on such showpiece bits of kit. We use this part in one of our products and - wish we hadn't... Cheers, Alex PS. Sorry - particularly good lunch time drinking session. I occasionally find the forum such a suitable release. --- Quote Start --- PS: I am quite a beginner in FPGA development. --- Quote End --- I promise, I'm not picking on you. However, SiLabs...
--- Quote Start --- Altera don't have their own I2C IP but have partners who offer it. Try microtronix (https://www.altera.com/products/reference-designs/all-reference-designs/industrial/ref-i2c.html) or, better still, write your own (I would). --- Quote End --- FYI, the OpenCores I2C component generally works OK, if you can accept the license. http://www.alterawiki.com/wiki/i2c_(opencores)
Dear Alex and Ted,thanks alot for your answers. As soon as I have time, I'll study the datasheets and will try the steps you mentioned. If by chance you have written a quartus project for that, I would be really glad to have that as an example. Thanks again and have a nice weekend. Best regards, Herman