Change Note 2025-07-07
More Pico2-Ice Board Support
Pico2-Ice Board
- Split the board support into three modules:
ICE40UP5K
: basics for the iCE FPGA sans configuration;IceCfgCram
: directly write config bitstream data into the FPGA’s configuration RAM (CRAM);IceCfgFlash
: write the config bitstream data into the FPGA’s dedicated flash memory on the board, from where the iCE chip will load it upon start-up.
- Simplify the configuration: one single procedure per configuration method, see the corresponding example programs.
- Add writing and reading SPI flash memory.
Module Library (lib/v2.1)
Module ICE40UP5K
- Pin and parameter definitions.
- Provide the clock to the FPGA via GPIO.
- Start and stop the FPGA.
New Module IceCfgCram
- Write the FPGA bitstream data directly into the configuration RAM.
- See example program
IceCram
.
New Module IceCfgFlash
- Write the FPGA bitstream data into the flash memory dedicated to the iCE chip.
- See example program
IceFlash
.
New Module W25Q32JV (Flash Memory)
- Write (program) and read the W25Q32JV flash memory chip via SPI.
- Standard SPI instructions supported (the chip also has dual and quad modes); no support for write protection and similar features yet.
Module GPIO
- Rename
ResetPad
toResetPin
.
Module SPIdev
- Add procedure
ApplyReset
: (re-) apply the reset controller’s reset condition.
Example Programs
IceCram
: re-implement to use the new CRAM configuration procedure inIceCfgCram
.IceFlash
: program the configuration flash memory, start the FPGA, which then reads its configuration autonomously from the flash memory into CRAM.TestFlash
: some basic tests for writing and reading the flash memory (in directory ofIceFlash
).
Infrastructure
- As sort of a dog-food test, all changes and additions above have been developed, tested, and deployed on and from macOS, without ever resorting to Windows.
- I have been using the ZOC terminal program lately, which is available for both Windows and macOS.