开源FPGA怎么玩?能不能支持Risc V!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源FPGA怎么玩?能不能支持Risc V!相关的知识,希望对你有一定的参考价值。
参考技术A 开源硬件领域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专用模块。
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.
各种Pmod模块
开源的工具链
iCEBreaker FPGA原型板支持一下的开源设计工具:
Yosys: 用于Verilog RTL综合的框架;
Arachne-pnr: 针对iCE40 FPGA的布局布线工具
nextpnr: 时序驱动的FPGA布局布线工具;
IceStorm: 针对iCE40 FPGA进行分析和创建bitstreams的工具;
icestudio: 基于IceStorm的可视化编辑器
Migen: 基于Python的FPGA硬件设计工具包
ICEStudio的界面
Nextpnr的界面
iCEBreaker板子的框图:
下面几张图是这个FPGA的制作者去年参加我们母公司SupplyFrame在Pasadena举办的Hackaday SuperCon的状况;
数码管显示Pmod和8位开关Pmod
HDMI输出Pmod
这个板子上用到的iCE40UP5k FPGA速度足够快,能够输出720p的视频!通过上图中的HDMI Pmod模块(支持12 bits/pixel)可以输出800 x 600分辨率的测试图案以及一个720p的图案。
LED屏幕驱动Pmod
大的视频广告板,采用很多小型的RGB LED灯组成,可以驱动产生动画效果和视频。
驱动大的LED屏幕的Pmod
下面的表格是国外一些成型的开源FPGA平台的简单对比,从这个表格中可以看出,所有的FPGA器件都是来自Lattice的iCE40系列。
RISC-V 从这里开始
参考技术A RISC-V:读作risk-five,是一个开源的CPU指令集架构zephyr:开源操作系统
linux:没什么好说的。
risc-pk:The RISC-V Proxy Kernel。解释如下:is a lightweight application execution environment that can host statically-linked RISC-V ELF binaries. It is designed to support tethered RISC-V implementations with limited I/O capability and and thus handles I/O-related system calls by proxying them to a host computer.
BBL :the Berkeley Boot Loader。
linux相关开源基础库对RISC-V的支持
binutils: upstreamed (2.28 is the first release with RISC-V support)
gcc: upstreamed (7.1 is the first release with RISC-V support)
glibc: upstreamed (2.27 is the first release with RISC-V support)
linux kernel: upstreamed (the architecture core code went into
kernel 4.15; kernel 4.19 contains all drivers necessary for booting a
simulated system to userland)
gdb: upstreamed in master (in the release process)
qemu: upstreamed (2.12 is the first release with RISC-V support)
以上是关于开源FPGA怎么玩?能不能支持Risc V!的主要内容,如果未能解决你的问题,请参考以下文章
Linux 内核加速支持 Rust 开发;中科院计划每半年升级一次 RISC-V 芯片;Python 3.10.1 发布 | 开源日报