Forum Discussion
Cyclone V Configuration Devices
I've got a Terasic Cyclone V GX development board. I removed the EPCQ256 configuration device and am testing two other alternatives (Macronix MX25L257 and Cypress S25FL128). I created a simple project with some LEDs and am using JTAG indirect programming to program the devices (jic file).
In both cases Quartus will program the devices and verify without error, but in neither case will the FPGA configure properly at power up (active serial). nCONFIG = 3.3V CONFIG_DONE = 0V nSTATUS = 2V (?) Any thoughts?40 Replies
- Altera_Forum
Honored Contributor
I can confirm the Winbond W25Q128JVPIQ works fine. I gave up on Cypress. We're using the WSON 6x5 package that is a fraction of the size and cost of the Altera FLASH. Some details:
1) You need Quartus 17.1 2) You must use the IQ version of the Winbond, the IM version will not work. The IQ version defaults to Quad SPI mode. 3) The board layout and schematics are shown in the attached images. We set MSEL to "10011". 4) No changes to the quartus.ini are needed. 5) It acts exactly as a EPCQ128A. 6) The "Altera ASMI Parallel" IP works great to treat the parts of the FLASH not used for configuration as user FLASH. 7) You do NOT need to instantiate the serial flash loader in your design. It is automatically loaded by the programmer. From Cyclone V Datasheet: https://www.alteraforum.com/forum/attachment.php?attachmentid=15081 Set "Settings -> Device/Boars ... -> Device and Pin Options ..." https://www.alteraforum.com/forum/attachment.php?attachmentid=15082 Via File -> Convert Programming Files ... https://www.alteraforum.com/forum/attachment.php?attachmentid=15083 After loading the .jic fine in the programmer: https://www.alteraforum.com/forum/attachment.php?attachmentid=15084 - Altera_Forum
Honored Contributor
You may refer to the Cyclone V Pin Connection Guidelines
https://www.altera.com/en_us/pdfs/literature/dp/cyclone-v/pcg-01014.pdf the nCONFIG, CONF_DONE, nSTATUS should be connected to VCCPGM through an external10-kohm pull up resistor. The VCCPGM can be either 1.8V, 2.5V, 3.0V, or 3.3V. - Altera_Forum
Honored Contributor
Thanks for the reply. I'm confident he board I'm working with is wired correctly with respect to VCCPGM since;
1) It is a commercially available board from Terasic. 2) The FPGA configures correctly when an EPCQ256 configuration device is used. My question is why doesn't the FPGA configure correctly with the alternate configuration devices I experimented with, especially since they seem to program and verify without error. - Altera_Forum
Honored Contributor
This can be very problematic when you replace the flash to other models, voltage provided by different flash have different properties such as longer width and length of transistor require higher voltage theoretically to bypass the threshold(pinch-off).
Especially active serial, active means your fpga is master, that you need more voltage to push longer bits to destination/slave if your slave isn't really passive device, this is the physics behind. The cyclone V itself have max voltage of 3.9V, with 3.3V is from EPCQ256 itself and 2.5V simply won't run that EPCQ256 as well when serial. For parallel, yes, around equal or greater than 2.5V you can use already. What you can play with is the voltage increment since you are very confident no wrong connection, overclocking should only shorten you device only if you turn on for a very long time which you can feel the temperature when touch or put thermometer on it. So, expecting you do it quick with overclocking to define whether this is the problem or not. Else, you may spend time comparing both flash datasheets. Are you running it on R&D since you want to replace other model to original model? Best Regards, Tzi Khang, Lim (This message was posted on behalf of Intel Corporation) - Altera_Forum
Honored Contributor
Basically, your nconfig and config_done are at correct voltage. But nstatus is wrong which need at least 3v and above while you getting 2v only.
OK, let's say you really use external voltage source to make it 3v and fix the problem because transistor different width and different doping of npn junction. So, you can guess your R&D project already success powering up the fpga. No, story didn't end here because you connect it to load application, which I think only simple load like LED will success!!! You still need go through factors that high chance maybe the timing rise and fall issue leading or delay, 5ns could result a failure if you replace that LED with camera/image processing module, vsync everything failed and you will spend months troubleshoot it. Best Regards, Tzi Khang, Lim (This message was posted on behalf of Intel Corporation) - Altera_Forum
Honored Contributor
What I hear you saying is that I should stick with the EPCQ256 for my production design.
The whole problem of configuration devices for Altera FPGAs is getting worse and worse. They are either very large (often larger than the FPGA itself) and/or very expensive (often more expensive than the FPGA itself). The MAX10, with internal configuration FLASH, overcomes this problem to some degree, but has its own hassles when it come to remote configuration. - Altera_Forum
Honored Contributor
Hi gj_leeson,
First, definitely something is not right with the nSTATUS being at 2V. You need to check the nSTATUS pull up connection correctly to the VCCPGM voltage level and the POR monitored power supply. As long the nSTATUS does not reach to logic 1 (at least to the minimum voltage level VCCPGM),the configuration process cannot/will not start regardless in any configuration scheme. Second, for Active Serial configuration scheme, the Altera FPGA device is built to recognize EPCS/EPCQ (any Altera configuration flash devices) during the configuration process and not non-supporting Altera configuration flash devices. This is expected, there are no information in the Altera website stating Active Serial scheme can be use together with Macronix or Spansion flash devices. Regards, nyusof (This message was posted on behalf of Intel Corporation) - Altera_Forum
Honored Contributor
"Second, for Active Serial configuration scheme, the Altera FPGA device is built to recognize EPCS/EPCQ (any Altera configuration flash devices) during the configuration process and not non-supporting Altera configuration flash devices. This is expected, there are no information in the Altera website stating Active Serial scheme can be use together with Macronix or Spansion flash devices."
I get it. I wish Altera/Intel would provide a reasonable solution to the problem of configuration devices. Specifically, provide smaller devices at a lower cost or qualify devices from other vendors. - Altera_Forum
Honored Contributor
You can either believe what's claimed about possible incompatibility of third party serial flash devices or tackle the problem yourself.
Up to now, there have been compatible devices from major manufacturers. For EPCQ256, Micron N25Q256A13ESF40x was an appropriate replacement up to now. I guess that EPCQ256 is an OEM version of the Micron chip, like many other EPCS devices have been OEM versions of former ST/former Numonyx/now Micron, can be checked by manufacture ID. N25Q256A is obsolete, you have to look for a replacement. I was able to find suitable devices for any 1Mb/4Mb/16Mb/64Mb AS flash up to now, but the 256Mb device isn't on my schedule right now. - Altera_Forum
Honored Contributor
Thanks FvM. A few more comments;
1) Regarding the "claimed possible incompatibility of third party serial flash devices", and limtzikhang's comments not withstanding, all this talk about transistor width, pinchoff voltage and doping levels strikes me as utter nonsense. The fact is, you send a PROGRAM command and wait for the return STATUS while THE DEVICE PROGRAMS ITSELF. I neither know nor care about the internal workings, the chip is designed to operate in just this fashion. 2) This leaves my original question dangling in the air; how can I have two different serial devices that will program and verify, but the FPGA doesn't configure correctly at power-up? 3) You were able to find suitable devices for AS programming up to 64Mb, would you be willing to share these with us?