I am going to replace EPCS16 with W25Q128FVSIG - due to cost and size reasons. I have already successfull programmed W25Q through cable using my own hardware and software and made FPGA configuring from it.
But is there any way to use Quartus programmer to program Winbond flash chip? Whatever I do programmer says that it can not recognize silicon ID.
The Quartus programmer should only recognize the configuration flash devices listed in the Convert Programming File tools. As you have done, your can use your own hardware+software tools to program the W25Q128FVSIG. Or you can use the Generic Serial Flash Interface Intel FPGA IP to access (write data) into the W25Q128FVSIG device. You can refer the Generic Serial Flash Interface Intel FPGA IP user guide or the how-to video in the links below:
>The Quartus programmer should only recognize the configuration flash devices listed in the Convert Programming File tools.
How can I add W25Q128FVSIG device into the device listing of the Convert Programming File tools? I know manufacturer ID, silicon ID and 16-bit capacity ID.
The point is that people should be able to use Quartus II programmer to program W25Q flash as they usually do with EPCS devices.
Edit: my target FPGA device is Cyclone 3, so while Generic Serial Flash Interface is great new feature, it is not supported for this chip family.
Since you are using Cyclone III device, I'm assuming your are using very old Quartus II version (such as v13.1 or lower). You are right about Generic Serial Flash Interface IP is not supported in mature FPGA and older Quartus version. Unfortunately, there are no setting in the Quartus tools allowing user to simply add any non-Intel vendor QSPI/SPI flash device. Perhaps, you may try to use the standalone Quartus Programmer v18.1 tools which include the Convert Programming File utilities. You can refer to the following link to download the standalone Quartus Programmer v18.1 tools:
The standalone Quartus Programmer v18.1 tools has been update to program some other QSPI flash device such as EPCQA. Micron and Macronix. You can try to test if the Quartus Programmer v18.1 tools is able to program the .jic/pof file into W25Q128FVSIG device or not. If the Quartus Programmer v18.1 tool still unable to recognize silicon ID W25Q128FVSIG device, at this point, please use your own hardware+software tools to program the W25Q128FVSIG.
Thank you for detailed answer. Will try.
I use Byteblaster II device, and if I recall properly its support was removed a time ago, and I suspect Programmer v18 also does not support it any more.
I think I will come to the point writing my own Programmer for Windows and Linux using .NET.
You are right, the Byteblaster II (EOL donwload cable) is no longer support in newer Quartus version. Furthermore, Byteblaster II only work in older 32-bit OS machine. You can only use USB Blaster and USB Blaster II cable with in newer Quartus version.
I have got USB blaster. I tried all available serial configuration devices on the Intel list, and 18.1 refuses to program W25W128FV complaining about silicon ID. So Altera/Intel still locks its customers to very specific range of the partner vendors.
This is actually a bad business decision: industrial designs will still use recommended chips, but hobbyist market is affected badly. There will be not much revenue from the hobbyists, but it is hobbyists and technology advocates who create word of mouth.
I am sad that I did not consider Xilinx one more time before making my first design in 2011. I have based my decision on the usefulness of forum (alteraforum dot com that time), and attitude of forum members. Well, that time it was bad for Xilinx, now bad times for Intel.
Update: I had been wrong in the above, but partially right.
Wrong: the problem was in the ribbon cable. Even native EPCS16 did not work, and I tracked issue down to cable. After cable replacement EPCS16 flashing works, and also W25Q128FV also flashes with EPCS16 setting. I see the following data:
W25Q128FV -- Quartus reports silicon ID as 0x18
Silicon ID (AB): 0x17
Manufacturer ID (9F): 0xEF (Winbond)
Options (9F): 0x40
Capacity ID (9F): 0x18
EPCS16 -- Quartus reports silicon ID as 0x14
Silicon ID (AB): 0x14
Manufacturer ID (9F): 0xC8 (GigaDevice)
Options (9F): 0x40
Capacity ID (9F): 0x15
So we clearly see that for EPCS Quartus reports silicon ID, but for W25Q128FV it reports capacity ID instead. I assume it checks for manufacturer ID, and if it does not know about the identifier, it uses capacity ID as guide for flashing. However there could be an issue with this way of identification: different flash chips may have different sector sizes (64K, 128K etc), and thus programmer will work for chips having same sector size as for selected known chip, but will not work properly if another sector size type is selected (e.g. EPCS128 instead of EPCS16).
Anyway, it seems to be working for my setup.
Now thing I was right in: the business model must change and it is obvious Intel will have to think about simplifying configuration device selection (or even addition of custom) and enhance supported devices list. Moreover Intel does not manufacture these chips, thus it is just a reselling business with questionable (and unsustainable) profits.
And I would like to thank @NYusof for the support, this Intel employee have made a difference.