top of page

Lattice iCE40 FPGA Journey

Updated: 13 hours ago

As part of my post on MCUs, I added a Lattice iCE40 FPGA to the mix. While I have done a little bit of work with FPGAs in the past, it has been purely on the use of development boards (e.g., Digilent Arty). I've now started to dig deeper into FPGA -- from the PCB on up. I will use this post to capture some of my initial journey with the iCE40. Check back for updates! If you have suggestions on anything here, please drop me a note. Thanks!

I'm starting out with a Lattice iCE40HX4K-TQ144.

I upgraded the board to 1MB of SRAM.

I have ordered a couple of ICE40HX8K-CT256 ICs. These use a 256-pin BGA package with a 0.8mm pitch. I am currently researching fanout and routing for this BGA package and JLCPCB capabilities related to BGA routing. Possibly helpful resources:

I've received some very help feedback on my FPGA PCB design and have started a "to do" list below. Look for these changes in future updates. Thank you to everyone who has supplied the great feedback. It helps me learn rapidly and results in a better final solution!


Next up, I am hoping to get some VGA output working. A couple of resources I plan to use:

To Do


    • Change the stackup by either re-ordering my six-layer stackup or switch to an eight-layer stackup. If money was no object, I'd go for the eight-layer stackup. Even the six-layer PCB is expensive. Right now, I'm leaning towards a six-layer stackup that is reordered, based on @asmi06's nice feedback.

    • Change the power management to use an LT3504. Thank you, @ModSlash!.

    • Add DDR RAM.

    • Add serial flash (multiple).

  • ...

My Shopping List

This is just a spot for me to note parts I'll need to order to support my to do list. :)

Additional Resources

GitHub Files

133 views0 comments

Recent Posts

See All
bottom of page