ESPIE act as an SPI flash chip emulator. ESPIE helps in reducing testing time iterration using emulation for the reprogrammation phase of the chip.
Using a FPGA board (currently De0-Nano) ESPIE exposes one one side an SPI slave that one connect to the master and on the other slide a medium to communicate with a computer daemon. This daemon handle the code synchronization between the current computer version and on-chip one.
Let's say one have a flash memory on a socket like the following picture, once one wants to test the code the following step should normally be done: |
- Code
- Unplug the chip
- Plug the chip on the programmer (e.g bus pirate)
- Flash the chip
- Replug the chip on the board
- Goto 1 if needed
This workflow implies a lot of manual processing, hence time consuming and potentially dangerous for chip's health. That's why by abstracting those steps one would gain some precious testing time. Now one would simply:
- Plug the FPGA to the SPI socket.
- Plug the FPGA to the PC
- Run the dameon
- Code
- Reset the board
- Goto 4 if needed