Skip to the content
PCBKitNew board
2 layers38 × 16 mmDip switch, the printed circuit board in 3D

OpenFPGA ICE40UP5K

Size
38 × 16 mm
Copper layers
2
Thickness
1.6 mm
Parts
5
Nets
10
Pads
44
Tracks, vias
112, 16
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
25 Apr 2020
Updated
8 Aug 2020

Overview

Dip switch is an open-source printed circuit board by BitOpenFPGA, from the BitOpenFPGA/OpenICE repository on GitHub. It is a 2-layer board of 38 × 16 mm with 5 parts on 10 nets, routed with 112 tracks and 16 vias.

Its parts include 2 resistors, 1 connector and 1 switch.

README

README.md

OpeniCE

来源

开源FPGA应具备几个维度特点:

OpenICE

其中最难弄得就是工具链了,经过长时间查找,终于在GitHub上找到了一个FPGA的开源工具链Yosys,选择的理由如下:

Intel Quartus II (No )License

Xilinx Vivado ISE (No) License

Lattice Diamond (No) License 注册可以免费申请,但是随时可以收回(一般不会)

Yosys, nextpnr, icestorm, iverilog, symbiflow (YES) 整个工具链开源

支持的硬件:

http://www.clifford.at/icestorm/

折中选择ICE40UP5K-SG48芯片。

为什么选择ICE40系列FPGA呢?

Lattice的iCE40系列芯片在国外很受欢迎,大部分的开发环境都是开源的,不需要担心License所带来的限制,只需要将工具链进行安装之后就可以进行FPGA的开发之路,典型的基于iCE40系列的开源开发板有iCEBreaker、UPduino、BlackIce、iCEstick、TinyFPGA 等。

每个开发版对比如下: 表格来源:https://www.crowdsupply.com/1bitsquared/icebreaker-fpga

iCEBreakerTinyFPGA BXTomu FPGALattice ICEstickUPDuino v2.0ICE40UP5K BreakoutAlhambra IIICE40HX8K Breakout
LicenseOSHWOSHWOSHWClosedClosedClosedOSHWClosed
Price$65$38$??~$25$13.99$49$59.90$49
Schematics Published?YesYesNot YetYesYesYesYesYes
Design files Published?YesYesNot YetNoYesNoYesNo
FPGA
ModeliCE40UP5KiCE40LP8KiCE40UP5KiCE40HX1KiCE40UP5KiCE40UP5KiCE40HX4K(8K)iCE40HX8K
Logic Capacity (LUTs)5280768052801280528052803520 (7680)7680
Internal RAM (bits)120k + 1024k128k120k + 1024k64k120k + 1024k120k + 1024k80k128k
Multipliers80808800
Peripherals
USB InterfaceFTDI 2232HQOn FPGA BootloaderOn FPGA BootloaderFTDI 2232HLFTDI 232HQFTDI 2232HLFTDI 2232HQFTDI 2232HL
USB HS FIFO/SPI interface to the FPGAYes through Jumper ModNoNoNoNoNoNoNo
USB Serial (UART) interface to the FPGAYesNoNoYesNoYesYesYes
GPIO inline termination resistorsYes 33 OhmNoNoNoNoNoYes 300 OhmNo
User IOs27 + 741 + 24 + 2183434 + 22090 + 10
Pmod Connectors30010100
User Buttons1 Tact + 3 Tact on Breakoff Pmod1 CRESET2 Capacitive004 DIP2 Tact0
User LED2 + 5 on Breakoff Pmod1051 RGB1 RGB88
Indicator LEDPWR, CDONEPWRCDONE, FTDI-TX/RXPWR, CDONEPWR, CDONE, FTDI-TX/RXPWR, CDONE
Onboard Clock12 MHz MEMS Shared with FTDI16 MHz MEMS12 MHz MEMS12 MHz MEMS? Shared with FTDI12 MHz MEMS? Shared with FTDI12 MHz MEMS? Shared with FTDI12 MHz MEMS Shared with FTDI12 MHz MEMS? Shared with FTDI
Flash128 Mbit QSPI DDR8 Mbit SPI16 Mbit SPI32 Mbit SPI32 Mbit SPI32 Mbit SPI32 Mbit SPI32 Mbit SPI
FPGA Power Delivery
Dedicated GND/Power PlanesYesYesNoYesNoYesYesYes
Dedicated FPGA Bypass Capacitors198918219??
IO GND Connections11614382220
Software
Open Source ToolchainYesYesYesYesYesYesYesYes
APIOYesYesYesYesYesYesYesYes
icestudioYesYesNot YetYesYesYesYesYes
migenYesYesNoYesNoYesNoYes

硬件上也可以参考:https://github.com/icebreaker-fpga/icebreaker-examples

其中icebreaker可以直接采购,但是国内买还是偏难,而且价格上也比较贵,综合考虑还是自己参考官方的DEMO和icebreaker自己做,原则上尽量减少改动。

OpenICE介绍

OpenICE 是基于Lattice iCE40UP5k设计的开源FPGA开发板,开发板以Arduino为原型进行设计,资源丰富,板载RGB LED,KEY,TYPE-C-USB, RESET,大部分IO以标准PMOD接口引出,可与标准PMOD外设进行对接,方便日常的开发使用。
板载的调试器以FT2232H为核心设计,支持官方的EDA进行下载调试,同时经过开源工具链ICEProg就可实现轻松实现烧写。FT2232H同时支持虚拟串口和FPGA进行通信。

整版的原理框图如下:

OpenICE

PCB截图如下:

OpenICE OpenICE

芯片规格

iCE40UP5K-SG48

  1. 5280 Logic Cells (4-LUT + Carry + FF)
  2. 128 KBit Dual-Port Block RAM
  3. 1 MBit (128 KB) Single-Port RAM
  4. PLL, Two SPI and two I2C hard IPs
  5. Two internal oscillators (10 kHz and 48 MHz)
  6. 8 DSPs (16x16 multiply + 32 bit accumulate)
  7. 3x 24mA drive and 3x hard PWM IP

硬件说明

iCE40UP5K

  1. SPI Flash使用W25Q64(8MB)/W25Q128(16MB)
  2. 板载按键开关、LED和RGB LED可用于测试
  3. 所有IO以标准PMOD接口引出
  4. 板载电源指示灯V8,方便查看整版电源情况

Capable enough to host CPU softcores

开发环境搭建

推荐使用虚拟机镜像进行开发测试,简单方便。
FPGA工具链安装请参考icestorm
gcc工具链安装请参考 riscv-gnu-toolchain

FPGA教程

参考

toolchain

http://www.clifford.at/icestorm/

examples

https://github.com/damdoy/ice40_ultraplus_examples
https://github.com/icebreaker-fpga/icebreaker-examples

SpinalHDL 教程

https://spinalhdl.github.io/SpinalDoc-RTD/SpinalHDL/Getting%20Started/index.html

开源FPGA单板OpenICE介绍

https://github.com/OpenFPGA-ICE/OpenICE/blob/master/README.md

Parts

5
QtyValueFootprintReferences
210kpkl_dipol:R_Array_Convex_4x0402R1, R2
1PMODpkl_connectors:PMODHeader_2x06_P2.54mm_HorizontalJ1
1SW_DIP_x08Button_Switch_THT:SW_DIP_SPSTx08_Slide_9.78x22.5mm_W7.62mm_P2.54mmSW1

The 4 most common of 5 parts.

Questions

How big is the Dip switch PCB?

It measures 38 × 16 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Dip switch use?

5 parts. 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 Dip switch KiCad files?

From the BitOpenFPGA/OpenICE repository on GitHub, at the commit this page was made from: the board is Hardware/PMOD_SubCard/DIP-SWICH/v1.0a/dip-switch.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Dip switch design in my own project?

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

More from BitOpenFPGA/OpenICE

1
  • 2 layers41 × 20.3 mm7segment, the printed circuit board in 3D

    7segment

    BitOpenFPGA/OpenICE

    OpenFPGA ICE40UP5K

    8 parts37

Similar boards

  • 2 layers98 × 27 mmXy limit, the printed circuit board in 3D

    Xy limit

    opulo-inc/lumenpnp

    The LumenPnP is an open source pick and place machine.

    5 parts3.7k
  • 2 layers21 × 33 mm24g2usb pico2w, the printed circuit board in 3D

    24g2usb pico2w

    joypad-ai/joypad-os

    Universal controller firmware for building adapters, dongles, and custom controllers.

    5 parts1.7kApache-2.0
  • 2 layers53.2 × 59.6 mmA10 OLinuXino Lime Rev B SHIELD TEMPLATE, the printed circuit board in 3D

    A10 OLinuXino Lime Rev B SHIELD TEMPLATE

    OLIMEX/OLINUXINO

    OLINUXINO is Open Source / Open Hardware, low cost from EUR 24 Linux Industrial grade Single Board Computer capable to operate -25+85C

    5 parts1.5k
  • 2 layers30 × 11 mmMain control board servo tester, the printed circuit board in 3D

    Main control board servo tester

    jamro/tiny-engineer

    A small desktop robot that brings an AI coding assistant to life, physically acting out when it reads files, thinks, writes code, and finishes work.

    5 parts1.1k
  • 2 layers78.8 × 35.3 mmKiCadTest, the printed circuit board in 3D

    KiCadTest

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    5 parts915
  • 2 layers50 × 23 mmMiniCircuits LTCC, the printed circuit board in 3D

    MiniCircuits LTCC

    VanceVagell/kv4p-ht

    Open source handheld ham radio project KV4P-HT

    5 parts828GPL-3.0
  • 2 layers20.3 × 15.2 mmL0 light sensor, the printed circuit board in 3D

    L0 light sensor

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    5 parts546MIT