开源FPGA怎么玩?能不能支持Risc V!

网友投稿 2018-12-23 18:27

开源硬件领域MCU板卡很火,著名的Arduino、树莓派(Raspberry Pi)、Micro:bit,开源的MCU也是个热门的话题,除了老牌的8051、OpenRisc等,这两年的明星就是Risc V了,在中国集成电路大跃进的加持下,它几乎成了中国处理器追赶世界的一剂春药。

两天前穷途末路的MIPS也宣布要开源了。

开源要成功,最重要的是要形成一个良性的生态,这个生态中缺少一个环节,无论吵吵的多热闹,最后还是会散场。

很多人在问,FPGA领域有没有开源的平台呢?在以前还真的难找见,本来FPGA的器件厂商就凤毛麟角了(本身也说明了一定的问题),支持FPGA开发的工具更是难以靠民间的力量搞定了,从商业角度貌似没有足够的吸引力让一些大的玩家去投入足够的资源来构建这么一个生态。

但在民间,仍不乏一些痴迷的技术高手,他们以玩转技术、让不可能变成可能作为人生最大的乐趣,他们利用仅有的一个后门通道 - Lattice的iCE40系列,热烈地玩着,不问前途,虽然小众,但也收获了越来越多的喝彩。

他们是小脚丫FPGA的榜样,也许我们没有足够的力量像他们一样在技术上探索如此之深,但我们的使命是让FPGA更加接地气、亲民,通过自己的努力构建尽可能完整的学习生态系统,让每个学习数字逻辑的学生都能掌握FPGA的使用。

在FPGA领域,Lattice的iCE40系列是硬件开源领域最受欢迎的一款,在海外的骇客(Hacker,水平远高于我们碰到的Maker)工程师中知名度极高,无论是基于这个系列的板卡还是开发工具都有众多的玩家,尤其是Lattice最近新推出的iCE40UP5K - 非常低的价格(估计批量的单片售价低于10元RMB)、虽然有限的逻辑资源但能够支持Sensor AI的功能,乃至支持现在如日中天的开源处理器Risc V软核,无疑iCE40UP5K将成为开源FPGA届的新星。

借Crowsupply上的一个众筹产品来简单看看FPGA在开源方面的一些探索,也让一些学习fpga的朋友更直观地体会一下究竟怎样玩FPGA才能学到真的技能,对这个板子有兴趣的朋友可以点击左下角“阅读原文”到达相应的页面上去详细阅读:


iCEBreaker FPGA板专为FPGA的初学者量身定制的,它支持最新的开源FPGA 开发工具以及下一代的开源CPU架构。iCEBreaker很轻松地跟各种Pmod外设进行连接,可以有大量得第三方Pmod模块可以选用,本板卡的设计者也专门制作了一系列的Pmod专用模块。https://cdn.china-scratch.com/timg/181225/1RHIW6-0.jpg

iCEBreaker的照片

性能指标

  • 核心器件使用Lattice iCE40UP5k FPGA

    • 5280逻辑单元 (4-LUT + Carry + FF),跟我们Lattice版本的小脚丫FPGA资源相当,比Altera版本的逻辑资源少;

    • 120 Kbit双口RAM

    • 1 Mbit (128 KByte)单口RAM,这个存储量超过了我们小脚丫用的FPGA的内部存储器容量,这是它能支持CNN的原因;

    • PLL, 2 x SPI, 2 x I2C硬化的IPs

    • 两个内部振荡器 (10 kHz and 48 MHz) 大大简化设计

    • 8个DSP乘法器块用于信号处理,比如语音合成以及软件定义无线电;

    • 非常低的功耗,用于电池供电得场合

    • 3个24 mA驱动和 3 x hard IP PWM (可以直接驱动RGB LED灯和小电流的马达)

  • 足够多、足够快的存储器

    • 128 Mbit (16 MB) quad SPI double data rate (QSPI-DDR) flash

    • 例如: 可以向LED点阵传送视频流

  • 很多的I/O(其实UP5K FPGA的管脚很少,但也够用了)

    • 3个管脚用于RGB LED

    • 2个用于板上的LEDs

    • 一个UART端口, RX管脚和TX管脚可以通过虚拟USB串口进行访问

    • 一个按键

    • 两个Pmod连接器(总计16x管脚)

    • 有一个可以掰下来的Pmod (8 x pins)

      • ‍5个星型排列的LED灯

      • 3个按键

    • 足够的资源支持CPU软核!

      • picorv32

      • pico soc

      • RISC-V以及其它软核

  • 板上FPGA编程器以及USB到串行适配器

    • 兼容IceStorm iceprog工具

    • 简单, 同主机连接无需驱动

Pmod连接器和Pmod模块

这个板子有3种标准的Pmod连接器,可以做非常丰富的扩展 - 可以用市场上众多的现成的Pmod模块,也可以自己设计专用的Pmod模块,比如他们自己开发得7段数码管Pmod、DIP开关Pmod、LED屏驱动Pmod和一个HDMI输出Pmod.

https://cdn.china-scratch.com/timg/181225/1RHI456-1.jpg

各种Pmod模块

https://cdn.china-scratch.com/timg/181225/1RHL3V-2.jpg

开源的工具链

iCEBreaker FPGA原型板支持一下的开源设计工具:

  • Yosys: 用于Verilog RTL综合的框架;

  • Arachne-pnr: 针对iCE40 FPGA的布局布线工具

  • nextpnr: 时序驱动的FPGA布局布线工具;

  • IceStorm: 针对iCE40 FPGA进行分析和创建bitstreams的工具;

  • icestudio: 基于IceStorm的可视化编辑器

  • Migen: 基于Python的FPGA硬件设计工具包

https://cdn.china-scratch.com/timg/181225/1RHG354-3.jpg

ICEStudio的界面

https://cdn.china-scratch.com/timg/181225/1RHT5J-4.jpg

Nextpnr的界面

iCEBreaker板子的框图:

https://cdn.china-scratch.com/timg/181225/1RHRA2-5.jpg

https://cdn.china-scratch.com/timg/181225/1RHSW3-6.jpg

https://cdn.china-scratch.com/timg/181225/1RHV933-7.jpg

下面几张图是这个FPGA的制作者去年参加我们母公司SupplyFrame在Pasadena举办的Hackaday SuperCon的状况;

https://cdn.china-scratch.com/timg/181225/1RHaD3-8.jpg

https://cdn.china-scratch.com/timg/181225/1RH95a0-9.jpg

https://cdn.china-scratch.com/timg/181225/1RH95T3-10.jpg

https://cdn.china-scratch.com/timg/181225/1RH932H-11.jpg

数码管显示Pmod和8位开关Pmod

https://cdn.china-scratch.com/timg/181225/1RHa500-12.jpg

HDMI输出Pmod

https://cdn.china-scratch.com/timg/181225/1RI030Y-13.jpg

这个板子上用到的iCE40UP5k FPGA速度足够快,能够输出720p的视频!通过上图中的HDMI Pmod模块(支持12 bits/pixel)可以输出800 x 600分辨率的测试图案以及一个720p的图案。

LED屏幕驱动Pmod

https://cdn.china-scratch.com/timg/181225/1RI0L26-14.jpg

大的视频广告板,采用很多小型的RGB LED灯组成,可以驱动产生动画效果和视频。

https://cdn.china-scratch.com/timg/181225/1RI04Y8-15.jpg

驱动大的LED屏幕的Pmod

https://cdn.china-scratch.com/timg/181225/1RI06300-16.gif

https://cdn.china-scratch.com/Public/Home/images/grey.gif

下面的表格是国外一些成型的开源FPGA平台的简单对比,从这个表格中可以看出,所有的FPGA器件都是来自Lattice的iCE40系列。

https://cdn.china-scratch.com/timg/181225/1RI5MH-18.jpg

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com