6917 - MachXO5-NX: How to speed up the MachXO5-NX (LFMXO5-25) boot/configuration time through its internal flash?

6917 - MachXO5-NX: How to speed up the MachXO5-NX (LFMXO5-25) boot/configuration time through its internal flash?

See below steps to significantly improve the boot/configuration time from internal flash:

1.)

In your source project, generate a bitstream that contains the following:

* Set the FLASH_CLK_FREQ = 112.5MHz


* Set CONFIG_IOSLEW = FAST




2.)

*Launch the Deployment tool 2022.1SP1 version and select Function Type: External Memory, Output File Type: Ping-Pong Boot



*Select 2 MachXO5-NX bitstream files or .jed files, namely primary boot (CFG0) and secondary boot (CFG1).
If you are using only a single boot image (CFG0 only for example), then you can put it twice (it will not matter later on) as shown below.

 




*

Select the “SPI Flash Read Mode”: Quad I/O SPI Flash Read

Set the Starting Address for the Primary Pattern: 0x00010000 (CFG0)

Set the Starting Address for the Secondary Pattern: 0x00100000 (CFG1)

Set the First Boot Selection: Primary Patten or Secondary Pattern (as applicable)

Check the “Generate Jump Table Only” option - this will generate the header file only to be used later in Radiant Programmer





*Set the output of the Header .mcs name



*Click on Generate to produce the .mcs file (this .mcs file will be used to program the internal flash header)




3.)

*Program the Quad Read Mode header (.mcs file generated from the Deployment Tool) file as well as your configuration image (CFG0) in the internal flash memory



HW RESULTS:

*After successful programming of the internal flash, perform a power cycle and then measure download time. See below the waveform measurement that significantly reduces the configuration time via self-download mode to ~12ms from ~373ms.