Electrical – How to erase a bitstream from an FFPGA using a microcontroller

fpgaintel-fpgastm32

How can I erase the bitstream that is stored in flash memory from an FFPGA (Flash FPGA, e.g. MAX10) using a microcontroller or any other logic?

I analyzed MAX10 documentation and still didn't find any easy (and fully documented) solution.

It seems like I could use the Altera On-Chip Flash IP Core, but it requires to power up the FPGA, load the bitstream, and then eventually erase the proper CFM memory. Maybe I could use JTAG In-System Programming and somehow invoke ISC_ERASE command? Is there any other way that requires less power?

Best Answer

The JTAG commands required to program or erase the FPGA are defined by IEEE Std 1532

https://standards.ieee.org/findstds/standard/1532-2002.html

The manufacturere should provide a BSDL file that defines the command set for your specific FPGA. Having both the BSDL file the IEEE 1532, and the IEEE 1149 standards should together provide all the information required to send the

You first need to send the ISC_ENABLE command to enter programming mode. Then send ISC_ERASE, to erase the portion of flash memory.then ISC_DISABLE when you are done.