Skip to the content
4 layers65 × 56.5 mm2019-07-03 17:28:54 fpga hat, the printed circuit board in 3D

2019-07-03 17:28:54 fpga hat

Wren6991/Snowflake-FPGA31

A cheap iCE40 development board, designed on and for Raspberry Pi

Size
65 × 56.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
90
Nets
136
Pads
453
Tracks, vias
783, 30
Pours
5
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
30 Jun 2019
Updated
7 Jul 2019

Overview

2019-07-03 17:28:54 fpga hat is an open-source printed circuit board by Wren6991, from the Wren6991/Snowflake-FPGA repository on GitHub. It is a 4-layer board of 65 × 56.5 mm with 90 parts on 136 nets, routed with 783 tracks and 30 vias.

It is built around the ICE40HX8K-BG121TR, 74LVC2G07GV and MIC23050-4YML-TR, with the CAT24C32WI-GT3 among its other parts. Its parts include 28 capacitors, 19 resistors, 9 diodes, 9 switches and 8 ICs. It belongs with the fPGA and programmable logic boards and the FPGA and CPLD boards of this library.

Main components

4

README

Readme.md

Snowflake FPGA HAT

As an experiment, I am designing a PCB using only my Pi 4 4GB. Any other machine is off-limits. This includes

  • Schematic entry
  • Layout
  • Datasheets and reference material
  • Background Twitter browsing
  • Rendering PCB glamour shots:

Rendering of PCB

This is a HAT (Raspberry Pi addon board) with an iCE40 HX8k FPGA. The Pi can program the FPGA, and communicate with it via a UART, or a fast, bidirectional SDIO link. This project was spurred by the realisation that Pi 4 is a plausible FPGA development platform: faster processors, expanded memory and, above all, dramatic improvements in Symbiotic EDA's open source design flows in the last few years.

View schematic (PDF)

With the exception of the datasheet/ directory (to which I do not lay claim), this repository is distributed under the Apache-2.0 License.

Features

  • iCE40 HX8k
  • 4 Mbit SRAM 16 bit wide, 10 ns access
  • 4 Mbit flash for FPGA image and user data; dual I/O support
  • 3 PMOD-compatible expansion headers
    • 8 3.3V IOs each, plus power and ground
    • 2 headers on one side, 1 on another; the two on one side have standard 0.9" spacing, allowing use of dual-PMOD boards
  • Communication with host Pi:
    • UART
    • SPI for flash programming
    • SDIO for fast communications
    • FPGA reset, and configuration status (CDONE)
  • 8 user pushbuttons and LEDs
  • Reset button and configuration status LED
  • Audio output via 3.5 mm jack (same audio circuit as Pi)

Tolerances

Of the 121 balls on the FPGA's BGA package, I am using 120; the sole unconnected ball is VPP_FAST, which is used only for NVCM programming. This will make the layout exceptionally tight, which is part of the experiment! For a fighting chance, I am using JLCPCB to manufacture the prototype boards, rather than my usual iTead. Their tighter manufacturing tolerances should permit two traces between 0.3 mm pads on a 0.8 mm-pitch BGA, which allows the first 3 ranks of balls to be routed out on layer 1.

The capability requirements for this board are:

  • Via drill 0.2 mm
  • Via diameter 0.45 mm
  • Copper min width 0.09 mm
  • Copper-copper clearance 0.09 mm
  • Solder mask expansion 0.05 mm

Stackup

This is a 4-layer board.

  • L1: signal, GND fill
  • L2: GND plane
  • L3: Power polygons (+5V, +3V3, +1V2)
  • L4: signal, GND fill

All layers 1 oz/sqft copper. Assumed stacking for FR4 layers:

  • L1-L2 0.2 mm prepreg
  • L2-L3 1.2 mm core
  • L3-L4 0.2 mm prepreg

These dimensions are not critical. Signal integrity will be improved by minimising separation of L1-L2, but none of the routing is impedance-controlled.

Parts

90
QtyValueFootprintReferences
15100nCapacitor_SMD:C_0402_1005MetricC1, C3, C5, C6, C7, C8, C9, C10, C11, C15, C17, C18, C19, C26, C27
10470Resistor_SMD:R_0402_1005MetricR3, R10, R11, R12, R13, R14, R15, R16, R17, R18
9LEDLED_SMD:LED_0805_2012MetricD1, D2, D3, D4, D5, D6, D7, D8, D9
9PTS815fpga_hat:PTS815SW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8, SW9
61uCapacitor_SMD:C_0603_1608MetricC16, C22, C23, C24, C25, C28
64u7Capacitor_SMD:C_0603_1608MetricC2, C4, C12, C14, C20, C21
5TestPointfpga_hat:Testpoint_d0.7mmTP1, TP2, TP3, TP4, TP5
4100Resistor_SMD:R_0402_1005MetricR1, R2, R8, R9
34k7Resistor_SMD:R_0402_1005MetricR4, R5, R19
3Conn_02x06_Top_Bottomfpga_hat:PinSocket_2x06_P2.54mm_HorizontalJ3, J4, J5
2220Resistor_SMD:R_0402_1005MetricR6, R7
11uInductor_SMD:L_0805_2012MetricL1
12x20Connector_PinHeader_2.54mm:PinHeader_2x20_P2.54mm_VerticalJ1
1560pCapacitor_SMD:C_0402_1005MetricC13
174LVC2G07Package_TO_SOT_SMD:SOT-23-6_HandsolderingU4
1AudioJack3fpga_hat:STX-3000_TRS_3.5mmJ2
1CAT24C32WIPackage_SO:TSSOP-8_4.4x3mm_P0.65mmU2
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6
1DSC60XXfpga_hat:LGA4_1.6x1.2mmU5
1IS61WV25616fpga_hat:BGA-48_6x8_6.0x8.0mmU8
1MIC23050-4YMLfpga_hat:DFN8_2x2_0.5mmU3
1NCP115ASN330TPackage_TO_SOT_SMD:SOT-23-5_HandSolderingU6
1Solder jumperfpga_hat:SOLDER_JUMPJP1
1W25X40CLPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU7
1iCE40-HX8k-BG121fpga_hat:BGA-121_11x11_9.0x9.0mmU1

The 86 most common of 90 parts.

More from Wren6991/Snowflake-FPGA

1

Similar boards

  • 4 layers50 × 50 mmFpgaboy, the printed circuit board in 3D

    Fpgaboy

    Wren6991/RISCBoy

    Portable games console, designed from scratch: CPU, graphics, PCB, and the kitchen sink

    93 parts513
  • 4 layers84.3 × 50.8 mmPrecisionTimer RevG-1, the printed circuit board in 3D

    PrecisionTimer RevG-1

    SepticElectronics/High-Speed-Timer

    High Speed Precision Timer 55ps/4ns

    128 partsGPL-3.0
  • 2 layers88.6 × 30 mmOnionStraws, the printed circuit board in 3D

    OnionStraws

    mulcmu/esphome-ge-laundry-uart

    ESPHome interface to GE Washer & Dryer

    74 parts58MIT
  • 4 layers99.7 × 83.8 mmSbus to ztex, the printed circuit board in 3D

    Sbus to ztex

    MelkhiorVintageComputing/SBusFPGA

    Stuff to put a FPGA in a SBus system (SPARCstation)

    64 parts54
  • 2 layers129.5 × 67.9 mmGottaGoFastZ2, the printed circuit board in 3D

    GottaGoFastZ2

    LIV2/GottaGoFastRAM2000

    8MB autoconfig fast memory for the Amiga 2000

    38 parts32
  • 2 layers29.9 × 17.2 mmAVI1861, the printed circuit board in 3D

    AVI1861

    dmadole/AVI1861

    An update of the AVI1861 drop-in replacement for the CDP1861

    9 parts15GPL-2.0
  • 4 layers80 × 80 mmEPS, the printed circuit board in 3D

    EPS

    4111Spyglass/Hardware_CSAT

    243 parts1
  • 2 layers61.6 × 34.5 mmTia fpga, the printed circuit board in 3D

    Tia fpga

    lrrosa/tia-fpga

    FPGA replacement for the Atari 2600 TIA (C010444) video/sound chip, targeting a Sipeed Tang Nano 9K. Open hardware, CERN-OHL-S-2.0.

    24 parts1CERN-OHL-S-2.0

Questions

How big is the 2019-07-03 17:28:54 fpga hat PCB?

It measures 65 × 56.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the 2019-07-03 17:28:54 fpga hat use?

90 parts, built around the ICE40HX8K-BG121TR, 74LVC2G07GV, MIC23050-4YML-TR and CAT24C32WI-GT3. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the 2019-07-03 17:28:54 fpga hat KiCad files?

From the Wren6991/Snowflake-FPGA repository on GitHub, at the commit this page was made from: the board is timelapse/2019-07-03_17:28:54_fpga_hat.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the 2019-07-03 17:28:54 fpga hat design in my own project?

Its repository states no licence, so its author keeps all rights: ask Wren6991 before reusing the design.