4988 - What are the programming considerations for SSPIEM and I2CEM modification with Aardvark SPI/I2C APIs?

4988 - What are the programming considerations for SSPIEM and I2CEM modification with Aardvark SPI/I2C APIs?

Aardvark is a SPI/I2C adapter which can be used for programming of Lattice FPGA devices with Slave SPI or Slave I2C. Lattice Diamond provides SSPIEM and I2CEM example source codes which are modified with Aardvark SSPI and I2C API’s respectively. However we do not guarantee that these API’s will be supported for all the programming modes incorporated in the .sea and .iea files generated by the Lattice Deployment Tool, which are used by our SSPIEM and I2CEM source codes. This is due to the limitation of the Aardvark adapter and with its associated read/write API’s meant for the data transfer between the Lattice’s algo interpretation logic and the actual programming hardware driver logic. The Aardvark adapter has a buffer limitation of 4KB and any algo file data above 4KB will overflow the buffer and will result in a programming failure.

The Deployment tool modes which are effected due to this are the ‘Fast Programming’ modes for any device, for example the LIFMD-6000(crosslink) device support fast programming mode but will not program with Aardvark API’s. As the Fast Programming mode results in an algo file in which the whole data is passed at once as a whole for fast programming and overflows in the Aardvark buffer resulting in a programming failure. The supported programming modes are ‘Erase Program Verify’ , ‘Background Erase Program Verify’, ‘Flash Program’, ‘SSPI Program’ etc.

The example source code using FTDI can be used to program devices in Fast Programming mode as we guarantee that our drivers work with this mode and the buffer in the FTDI device is large enough to hold large Fast Programming mode data.