Giter VIP home page Giter VIP logo

snowflake-fpga-ice40's Introduction

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.

snowflake-fpga-ice40's People

Contributors

wren6991 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.