首先呢,先强调一遍,我做板子不是为了挣钱,因为国内目前的形式比较严峻,只是为了体验一下开源的工具和环境,也为了后人能对FPGA有个新的认识,所以不会触碰到任何人的蛋糕。
本来今天不准备发文了,还是熬夜把东西整理一下吧,原因就是上面那句话。下面书回正传。
来源
开源FPGA应具备几个维度特点:
其中最难弄得就是工具链了,经过长时间查找,终于在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
iCEBreaker | TinyFPGA BX | Tomu FPGA | Lattice ICEstick | UPDuino v2.0 | ICE40UP5K Breakout | Alhambra II | ICE40HX8K Breakout | |
License | OSHW | OSHW | OSHW | Closed | Closed | Closed | OSHW | Closed |
Price | $65 | $38 | $?? | ~$25 | $13.99 | $49 | $59.90 | $49 |
Schematics Published? | Yes | Yes | Not Yet | Yes | Yes | Yes | Yes | Yes |
Design files Published? | Yes | Yes | Not Yet | No | Yes | No | Yes | No |
FPGA | ||||||||
Model | iCE40UP5K | iCE40LP8K | iCE40UP5K | iCE40HX1K | iCE40UP5K | iCE40UP5K | iCE40HX4K(8K) | iCE40HX8K |
Logic Capacity (LUTs) | 5280 | 7680 | 5280 | 1280 | 5280 | 5280 | 3520 (7680) | 7680 |
Internal RAM (bits) | 120k + 1024k | 128k | 120k + 1024k | 64k | 120k + 1024k | 120k + 1024k | 80k | 128k |
Multipliers | 8 | 0 | 8 | 0 | 8 | 8 | 0 | 0 |
Peripherals | ||||||||
USB Interface | FTDI 2232HQ | On FPGA Bootloader | On FPGA Bootloader | FTDI 2232HL | FTDI 232HQ | FTDI 2232HL | FTDI 2232HQ | FTDI 2232HL |
USB HS FIFO/SPI interface to the FPGA | Yes through Jumper Mod | No | No | No | No | No | No | No |
USB Serial (UART) interface to the FPGA | Yes | No | No | Yes | No | Yes | Yes | Yes |
GPIO inline termination resistors | Yes 33 Ohm | No | No | No | No | No | Yes 300 Ohm | No |
User IOs | 27 + 7 | 41 + 2 | 4 + 2 | 18 | 34 | 34 + 2 | 20 | 90 + 10 |
Pmod Connectors | 3 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
User Buttons | 1 Tact + 3 Tact on Breakoff Pmod | 1 CRESET | 2 Capacitive | 0 | 0 | 4 DIP | 2 Tact | 0 |
User LED | 2 + 5 on Breakoff Pmod | 1 | 0 | 5 | 1 RGB | 1 RGB | 8 | 8 |
Indicator LED | PWR, CDONE | PWR | CDONE, FTDI-TX/RX | PWR, CDONE | PWR, CDONE, FTDI-TX/RX | PWR, CDONE | ||
Onboard Clock | 12 MHz MEMS Shared with FTDI | 16 MHz MEMS | 12 MHz MEMS | 12 MHz MEMS? Shared with FTDI | 12 MHz MEMS? Shared with FTDI | 12 MHz MEMS? Shared with FTDI | 12 MHz MEMS Shared with FTDI | 12 MHz MEMS? Shared with FTDI |
Flash | 128 Mbit QSPI DDR | 8 Mbit SPI | 16 Mbit SPI | 32 Mbit SPI | 32 Mbit SPI | 32 Mbit SPI | 32 Mbit SPI | 32 Mbit SPI |
FPGA Power Delivery | ||||||||
Dedicated GND/Power Planes | Yes | Yes | No | Yes | No | Yes | Yes | Yes |
Dedicated FPGA Bypass Capacitors | 19 | 8 | 9 | 18 | 2 | 19 | ? | ? |
IO GND Connections | 11 | 6 | 1 | 4 | 3 | 8 | 22 | 20 |
Software | ||||||||
Open Source Toolchain | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
APIO | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
icestudio | Yes | Yes | Not Yet | Yes | Yes | Yes | Yes | Yes |
migen | Yes | Yes | No | Yes | No | Yes | No | Yes |
硬件上可以参考:https://github.com/icebreaker-fpga/icebreaker-
icebreaker可以直接采购(贸泽上有),但是国内买还是偏难,而且价格上也比较贵,综合考虑还是自己参考官方的DEMO和icebreaker自己做,成本尽量控制在150以内。
OpenICE介绍
OpenICE 是基于Lattice iCE40UP5k设计的开源FPGA开发板,开发板以Arduino为原型进行设计,资源丰富,板载RGB LED,KEY,TYPE-C-USB, RESET,大部分IO以标准PMOD接口引出,可与标准PMOD外设进行对接,方便日常的开发使用。板载的调试器以FT2232H为核心设计,支持官方的EDA进行下载调试,同时支持开源工具链ICEProg进行烧写。FT2232H同时支持虚拟串口和FPGA进行通信。
这部分设计可以参考:https://github.com/folknology/IceCore
是以低成本STM32XXXX为基础实现板载下载器,源码及固件全部开源,是博主早些年参加电子大赛进行设计的,不过考虑下载器的兼容性问题,还是以官方支持的EDA为基础进行设计,不适用官方EDA两者相差不大,即使用了也只需要多一步操作完成相关功能,具体后面再聊。
整版的原理框图如下:
PCB截图如下:
芯片规格
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
·picorv32
·picosoc
·RISC-V and others
开发环境搭建
待后续详细介绍
FPGA教程
产品链接
参考
toolchain
http://www.clifford.at/icestorm/
examples
https://github.com/damdoy/ice40_ultraplus_exampleshttps://github.com/icebreaker-fpga/icebreaker-exampleshttps://github.com/wuxx/icesugar
SpinalHDL 教程
https://spinalhdl.github.io/SpinalDoc-RTD/SpinalHDL/Getting%20Started/index.html
开源FPGA单板OpenICE介绍
https://github.com/OpenFPGA-ICE/OpenICE/blob/master/README.md
开源FPGA单板OpenICE介绍
https://github.com/OpenFPGA-ICE/OpenICE
最后上几张照片吧(直男的照片):
B站上同步了这次设计的视频,大家有兴趣可以看看:
最后就是抽奖环节,这次送出两块开发板,一块V1.0a版本一块V1.0b版本的,两款使用过程中并没有太大区别,唯一的区别是1.0b增加了一个开关和LED,其他无任何区别。
因为整个工具链还是稍微有一点复杂的,还是希望有一定Liunx基础的童鞋参与。
两块开发板随机附件都包括:
1*type-C 数据线一条
1*按键&LED PMOD扩展板
1*拨码开关 PMOD扩展板
1*数码管 PMOD扩展板
因为都是手动焊接,板子可能不是特别美观,望请见谅。
抽到奖品的请添加小编微信:
同时,拿到开发板后还是希望能和我反馈一下使用情况,包括任何不合理、BUG或者使用有任何问题都可以进行反馈,当然这也不是强求的。
最后还是怕惹麻烦,强调一下:
本次活动最终的解释权归《OpenFPGA》号主碎碎思所有。
抽奖链接如下:
最后还是注意一下,本次活动完全免费,如果有人加你微信,朝你要钱或者其他方式索要钱财的,都是骗子。