- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have some questions about booting a Cyclone FPGA (EP1C3 or EP1C6).
I'm making a design that has an ARM7 microcontroller and a Cyclone FPGA. I'd like to store the program for the FPGA inside the microcontroller flash (or otherwise make it possible to update the FPGA program via the microcontroller) What's the best way to do this? Also, on a related note, what sort of boot times can I expect as my designs grow larger? What's the rate at which the FPGA can read and process the program data?Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
usually the best way to do this is in "Passive Serial mode"
One of the Quartus outputs available is a .RBF (Raw binary File) And the Passive Serial mode looks like an SPI device. You may have to do an Endian Swap on the RBF, but you basically shift the data out, make sure you get the config done and go. We do this we several designs with various Cyclone and Stratix families. One thing if this is a new board, and you have a choice, I suggest moving to the newer Cyclone III family, It will give you a faster design, lower power, and at a lower unit cost. The maximum bit rate is 20 Mbps on Cyclone (If I remember correctly) and 20 or 40 Mbps So you can figure it as the worse case number of bits for the device. Usually it's pretty fast, unless you have a really slow SPI. Pete- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The boot time is NOT a function of the internal design size of the FPGA.
It is a function of the load time of the FPGA, which is always the number of configuration bits of the FPGA.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The boot time partly depends on the design size - if compressed bitstreams are used, which is generally advisable. The nominal configuration bitstream size defines the upper bound for boot time then.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your help. How do I wire it up for this passive serial mode?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi baldur,
If possible, I really, really **strongly** suggest you to use a Cyclone 3 device (EP3C5 or EP3C10 for example). There is a passive parallel configuration scheme which does not exists in Cyclone devices. FPGA configuration data are supplied on a byte wide scheme , and can clocked at least up to 100 MHz... Very simple to implement, yet very efficient. For example, uncompressed bitstream for an EP3C10 is about 3.3 Mbits (~412 Kbytes). Let's say your ARM7 clock data bytes at 10 MHz (optimistic ?) , you can expect a configuration time of about 41 ms. The bad news is that in passive // mode, bitstream can not be compressed. But the good news is that configuration time is constant, so this is a guaranteed time. I use passive // configuration scheme on a custom board with a EP3C10, but since I have no microcontroller on the board (I use a NIOS inside the FPGA) , I use a CPLD (from Xilinx :D ) which converts data bits from a SPI serial flash to 8 bits data, at an equivalent bit rate of 96 Mbits/s (12 Mbytes/s). I got configuration time of about 35 ms. Works very well. Cyclone 3 are pure pleasure ... really low cost and low power and cool configuration modes. Hope this help.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I gotta check the datasheets on that but are the Cyclone3 QFP144 devices pin compatible with the Cyclone devices in that package? (As in, are the non-configurable pins in the same locations?)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No, they are not compatible in any way.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok, then I will need a new devel board. This is what I have for the Cyclone: http://www.dallaslogic.com/ezfpga_cyclone_c3c6.htm
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The latest Cyclone III devboard costs less than 300USD so I recommend you to purchase it, you can try all the "cool" facilities that anakha explained at a very low cost. ;)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Well, I need a board with some GPIO available not on a mezzo connector.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have found very simple to build an adapter board from the mezzo conector to simpler GPIOs connection points. :)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
After I've read more about the Cyclone III I went and ordered the Cyclone III starter kit and this mezzo to pin header adapter: http://www.terasic.com.tw/cgi-bin/page/archive.pl?language=english&categoryno=39&no=218
Looking forward to working with this platform, it promises some great performance.- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page