The Olimex iCE40 boards are nice, they have 512 kiB SRAM and a 100 MHz oscillator but they are a bit harder to work with compared to the Lattice "breakout" boards.
One downside is that they don't have an FTDI chip like the Lattice boards. You have to connect an SPI programmer to the 2x5 connector. I use flashrom and a Beaglebone but someone is probably selling an off-the-shelf programmer.
You can't directly upload to the FPGA without modifying the board, you have to flash the memory chip using an external programmer. It's slightly slower. You'll probably be dead before you use up the 100,000 erase cycles of the flash chip. Modifying the board to allow direct configuration without going through the flash involves desoldering one 0402 resistor and soldering a small 0402 resistor (or solder-bridging the pads).
Another downside of the Olimex board is that while it has 40-ish IOs on 0.1" connectors, most IO's are on tiny 0.05" headers.
However Olimex also sells plug-in boards including ADC, DAC, a general-purpose I/O board with a VGA and a PS/2 connector which are nice for quick experiments. I used the ADC, the VGA and the PS/2 connector. The "digital I/O" board is a bit funky, you need to configure a DAC to program the I/O levels, I didn't bother with it.
The Olimex boards are directly powered from a 5V source using a barrel jack.
The Lattice iCE40HX8K-BB-EVN board is USB-powered, although it's not too hard to mod them to be externally powered. They include an FT2232H chip which provides easy configuration (and flashing), from Linux I use iceprog which comes with Yosys/Nextpnr etc. You can also roll your own SPI configurator. You can flash the chip or configure the FPGA directly (you rotate two jumpers to select the mode.)
The B channel of the FT2232H chip is wired in UART mode. You can use A channel in MPSSI mode and get about 30 Mb/s.
The Lattice board has pretty much all the I/Os available on four 0.1" headers (not all installed) and eight LEDs. Not all I/Os are used as some are connected to the LEDs and the FTDI.
Unfortunately these boards go in and out of stock.
Note that the spacing between the 0.1" connectors of the Lattice board are not 0.1" aligned! You can't plug more than one onto a standard Veroboard. Keep in mind if you want to make a daughter board.
The design files of the Olimex boards are available (it's fully open source and made with KiCAD). For the Lattice boards you only get the schematic.
You can also modify the Lattice boards for external SPI configuration but it's a bit messy, you have to disconnect the FTDI lines and tap into SCK,MOSI and CREST signals.
The Lattice boards only have the 12 MHz "USB" clock, but it's not a biggie you can PLL it up as needed.
Board | Power | Clock | USB | Connectors | FPGA direct config | SRAM |
Olimex iCE40HX8K | 5V barrel jack | 100 MHz | No | Various .1",0.05" | Requires modding | 512 kiB |
Lattice iCE40HX8K-BB | USB mini-B | 12 MHz | FT2232H for config + UART | 4 .1" headers | Jumper-configurable, via FTDI (iceprog) | None |
Verdict: Unless you need the 512 kiB SRAM, extrnal power or external SPI config I recommend the Lattice boards as they are pretty much plug-and-play, but the Olimex boards are cheaper and might have better availability.
The iCE40HX8K is a really nice chip and Yosys is amazing. BTW the 8K devices have 16 kiB of SRAM (32×4096) and Yosys does a good job of inferring the RAM blocks.