I am trying to program an ISSI 128Mbit config program using the serial flash loader. My device is an ARRIA V. I have done this for years but recently changed my config device to what I thought was an equivalent.
I previously used a Micron M25P128 without issue. All I have changed is the part. All tracking is the same. I can also program and config the ISSI device with our own software, so it works. I just can't program the device using the Quartus programmer.
Now Initially, the programmer wasn't happy with the silicon ID and refused to program. I then used V19.1 generic programmer to set the Device ID. The programmer would then program fine. When rebooted, the FPGA won't run because the contents of the config isn't right. I have done a verify on the config device and It fails at address 0x000200 (address location 512 decimal) .
I have also probed the lines during the program and the expected clock (12MHz) , viable data and the CS lines are all banging away.
I have used the generic 19.1 programmer to adjust what happens during the programming but it isn't happy with any of it. Here are some of the things I have tried in the programmer.
1) Checked all the commands are correct
2) Removed the command to use 4 bit addressing (I believe the ISSI uses 3) Removed extra commands during initialisation that write to the extended status registers that don't exist in the ISSI part
4) Added extra time to the program operation
5) During the erase process, changed the status register it was looking at for the WIP bit to 0x05
6) Used all the different templates micron,cypress, macronix
7) Increased delay after Write enable command
Has anyone made this work or has anymore ideas?
I haven’t program a .jic into an ISSI 128Mbit.
However, in Quartus 19.1 version, we have a new feature which is we can defined our own flash device.
1. Go to File > Convert Programming File
2. On Programming file type, Select JTAG Indirect Configuration File (.jic)
3. Select “ … ” button (on the left of the Mode option)
4. Configuration Device windows pop-up
In this Configuration Device, you can define your own flash device and Quartus Programmer able to program withour error.
I think you can try to have a look at this new feature.
Unfortunately, there are two known issues regarding to this user-defined feature. Below are the workaround for these issues.
I hope this will help.
Thanks but as I explained in the original post, I have already been using the generic flash programmer in 19.1 and tried all the different options to get the chip working and it just doesn't. Also one of the supported chips S25FL128 doesn't work either. If I choose a Winbond template and then program the S25FL128, it appears to work and run the code.
If anybody manages to get the S25FL128 or the ISSI part to work properly then let me know.
I believe that this problem may be solved. If not, here on how we manage to get this memory to work with Quartus 19.1 for write, erase and FPGA initialization.
I hope this helps.