Was asked to look into this issue. A legacy program used a Cyclone III and EPCS16 config device. Low stock of the config device triggered a need to procure more parts but those parts looks to be replaced by newer EPCQ16A. Original POF and SOF of two different design configurations are accessable but neither are allowed to be edited/changed. New design change (compilation/simulation) efforts are not needed and so procuring Quartus Prime to replace the original Quartus II for the sole purpose of programming is being discussed as to whether it's worth. Since neither original POF file can be used to directly program the EPCQ16A, the Quartus Prime Programmer was downloaded and used to separately convert each sof to a new pof. --- The issue is that the EPCQ16A is only allowing to be programmed one time (active serial) with successful entering of user mode after programming. Further attempts at programming the same or second converted design pof using Prime Programmer results in a successful programming action but upon power re-energizing the FPGA doesn't enter user mode. If the EPCQ16A is replaced by a new part, then either converted design POF can be programmed successfully one time (properly enters user mode after re-power). In the past when using Quartus II, the EPCS16 could be repeatedly re-programmed (either POF replacing the other). So the question is did Quartus II add a loader file behind the scenes each time the config device was programmed that the Prime Programmer isn't doing? There are no security bits enabled in the original design. In the Prime Programmer file conversion screen, only the sof is shown in the input section (Page 0, auto start addr). Disable ID check is checked. Disable AS Mode config_done error check is gray (neither checked or not checked). Bitslice padding value is 1. Do they need to be adding another input file alongside the SOF during conversion?
Yes. The first programming of a brand new EPCQ16A part results in Prime showing a successful programming with the FPGA able to enter regular user mode upon power-up. Subsequent programming efforts results in Prime showing a successful programming but the FPGA never enters user mode.
May i know which bitstream you are programming into it?
Also, can you check the nSTATUS pin state during device boot up? Would like to root cause the issue.
The issue appears to not be hardware or original EPCS16 POF related as an EPCS16 was installed in place of the EPCQ16A and using Quartus II on a legacy computer setup, I can repeatedly program and verify with success. I should mention that with the free downloadable Quartus Prime Programmer I have not been able to get a successful verification (by checking the verify option either with the program option or separately) even after what Prime says is a “successful” programming step.
The nStatus timing state is proper but have only monitored it on hardware with EPCS16 or first time EPCQ16A that enters proper user mode. Concern about resinstalling additional configuration devices on this particular board will limit future EPCQ16A troubleshooting efforts.
>The same USB Blaster is being used for both Quartus II and Quartus Prime setups with the only difference being the legacy setup is running an older version of Windows while the computer that is running Prime is Windows 10 Enterprise (with USB Blaster driver installed from the installed Prime folder). As I have previously stated, I can get a successful programming with proper user mode if the EPCQ16A is brand new (although not able to get successful verification).
>With an EPCS16 installed and using the original EPCS16 POF generated by Quartus II, I was able to successfully use the Quartus Prime Programmer and repeatedly successfully program (and verify) the board with proper user mode function.
It appears that something in the conversion of the original SOF to the EPCQ16A POF in Quartus Prime Programmer conversion section appears isn't proper.
Figure 9-7 in the Cyclone III Handbook is the hardware connection.
A decision has been made to source/procure more EPCS16 parts if prompt resolution can't be made,. Thanks.
I see. In short, when using quartus lite version, you are having problem in programming, but not with the standard and pro version. I think this might be because some of the IP are not supported in the lite version and thus causing problem during programming. Anyway, i am glad that this is already solved. Cheers.