I am new to this FPGA. can any one help with the following :
Does Spartan 6 XC6SLX9 have an internal oscillator ?. If so what are its specifications ? , how can i access that ? . Please share any material, code available regarding the same.
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It only takes a minute to sign up.Sign up to join this community
I believe Xilinx guide UG382 (Spartan-6 FPGA Clocking Resources User Guide) answers your question.
Most FPGAs contain internal ring oscillators for managment purposes. Things like configuration loading on startup (where do you think clock for master SPI and master selectMAP comes from on Xilinx FPGAs?). In some cases, it is possible to access this oscillator. Looks like this is possible at least on the Virtex 6 and Spartan 6. On these devices, the oscillator is approximately 50 MHz +/- 50% (so 25-75 MHz, see http://forums.xilinx.com/t5/Spartan-Family-FPGAs/Spartan-6-clock-source/td-p/437084). It will vary part-to-part and with voltage and temperature, though, so you can't rely on a very specific frequency. This can be used for utility logic such as transceiver reconfiguration and board bring-up logic such as static I2C writes to external clock management logic and PLLs.
For a Spartan 6, you need to instantiate the STARTUP_SPARTAN6 primitive and connect to the CFGMCLK port. See the configuration user guide, UG380. This is a direct tap off of the internal configuration ring oscillator. You'll have to tie off all of the inputs appropriately so everything works correctly. Looks like you need to tie EOS, GSR, and GTS low and KEYCLEARB high. Make sure to pass CFGMCLK through a BUFG before using it to drive logic, and make sure to constrain it to at least 75 MHz (13 ns) to make sure that frequency variations in the oscillator will still let your design meet timing.
This is also possible on the Virtex 6 with the STARTUP_VIRTEX6 primitive. Similar procedure, just different ports to tie off. It may be possible with other FPGAs.
There is no user-accessible internal oscillator (such as you might find on many microcontrollers) on Spartan 6 devices.
You can use a DCM as a free-running oscillator, but you need to "get-it-going" with some clock-like signal. See Figure 2-20 in the user guide: http://www.xilinx.com/support/documentation/user_guides/ug382.pdf