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?
You may refer to the Cyclone V Pin Connection Guidelineshttps://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.
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.
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)
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)
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.
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)
"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.
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.
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?
Have you looked at Cypress App Note AN200498. It says you have to tell it to ignore the Device ID of the FLASH.We're hoping to use the Cypress chip you mention, so I hope it works. The App Note is very vague on some issues and says to contact Altera for some things like a quartus.ini file. That seemed odd. But we contacted Altera and they have no interest in helping use a competitor FLASH. I second your comments on the Altera FLASH. Even ignoring the ridiculous price, the size ruled it out in our case. And apparently they are replacing them all with footprint compatible new chips.
Did you manage to do the other things in the app note like change the latency code and get a quartus.ini file from Altera? When we tried, the response from our FAE was:--- Quote Start --- Intel is not providing the .ini, apparently they reserve that for million dollar opportunities. --- Quote End --- Microsemi PolarFire is looking real good at the moment.
--- Quote Start --- You were able to find suitable devices for AS programming up to 64Mb, would you be willing to share these with us? --- Quote End --- As said I used the older Micron devices, both 64 and 256 MBit in different designs, which are now obsolete. For some reason (EPCQ compatibility) we preferred the large SO16 package. I identified possible replacement devices, but I didn't yet test it.
--- Quote Start --- Have you looked at Cypress App Note AN200498. It says you have to tell it to ignore the Device ID of the FLASH. --- Quote End --- Thanks for the Cypress App Notes. I find myself in a similar situation. We have been using N25Q128 in a previous design and would like to find a direct replacement in SOIC-8. I have tested Winbond W25Q128JV and program + verify works but it does not boot. Have you found a working solution already? I think I will try Cypress S25FL128S if I can find one. The availability of small flash chips in SOIC-8 is quite poor in general.
ilkkak,Our FAE says the Winbond W25QxxJV series should work but you have to use Quartus 17.1 that came out recently and set the config device to EPCQ128A in the tools. No quartus.ini should be needed. Were you using 17.1? We're in the middle of designing a new board with the Winbond part since the Cypress is way to complicated. So I 'm hoping it works.
We got Winbond in WSON 6x5 mm package, which is about 2 mm shorter than the SOIC-8. They were readily available and cheap.Not sure if it works yet though!
--- Quote Start --- Our FAE says the Winbond W25QxxJV series should work but you have to use Quartus 17.1 that came out recently and set the config device to EPCQ128A in the tools. No quartus.ini should be needed. Were you using 17.1? --- Quote End --- I tried with 17.0 and 14.1 and EPCQ128. The Quartus download has been down for a couple of days, so I haven't been able to test 17.1 yet.
I assume he meant we should use ECPQXXX of the same size as the Winbond chip. It's not clear why we needed 17.1. Perhaps it generates a slightly different programming file. I'll ask him.I had trouble downloading 17.1 as well but it finally worked albeit slowly. Probably too many people doing at once for a new rev.