Hasty Briefsbeta

Interesting SPI Routing with iCE40 FPGAs

12 days ago
  • #Open Hardware
  • #Embedded Systems
  • #FPGA
  • The Fomu FPGA development board is highly portable, fitting entirely in a USB port.
  • It features a Lattice Semiconductor iCE40 UltraPlus 5K FPGA, popular for its open-source toolchain support.
  • Fomu's USB core is implemented in RTL (using ValentyUSB) to save space, included in the Foboot bootloader.
  • The iCE40 FPGA supports loading bitstreams into SRAM or external flash, with NVCM for high-volume applications.
  • Fomu includes a GD25Q16CEIGR flash chip for persistent bitstream storage, despite NVCM being unnecessary for prototyping.
  • Unlike other boards, Fomu requires bootstrapping since its USB core runs on the FPGA, necessitating Foboot for initial configuration.
  • Fomu's test points allow direct programming of the flash or FPGA, with specific strategies to manage SPI communication.
  • The iCE40 can act as a SPI controller or peripheral, complicating direct programming without proper pin management.
  • Fomu's design contrasts with the iCEstick, which restricts programming to SPI flash only to prevent accidental NVCM programming.
  • The fomu-flash utility uses deep power-down commands to manage flash IC during FPGA configuration, avoiding HOLD pin issues.