这也是一个系列文章,来源之前和粉丝们在评论区讨论的国外对于FPGA的开发或者入门所做的努力。
基本一篇文章会介绍一个FPGA开发板,重点在于为开发板准备的开发方式(和国内大不相同)。
今天的主角-PulseRain M10:像 Arduino 一样玩 FPGA。核心愿景-像开发Arduino一样开发FPGA。
硬件介绍
在过去的十年里,FPGA 器件已逐渐成为主流。如今,创客们不再需要使用硬核 MCU,而是可以定制所有外设,将软核 MCU 嵌入 FPGA 中。PulseRain M10 正是为此而生,它采用深入硅片层的开源设计!
M10 开发板采用独特的技术方案,将开源软 MCU 内核(96MHz) 嵌入英特尔 MAX10 FPGA,同时提供与 Arduino 兼容的软件接口和丰富的尺寸规格。此外,它还配备了语音编解码器、microSD 卡插槽、SRAM、片上 ADC 和双 IO 电压等板载资源。


M10 开发板的架构如下图所示。选择的 FPGA 是 Altera 10M08SAE144C8G,它具有 8K LE、378KB Block RAM、172KB 闪存以及一个带温度传感二极管的 8 通道 A/D 转换器。开箱即用,已将运行频率为 96MHz 的FP51-1T MCU预装到这款 FPGA 中(开源地址:https://www.pulserain.com/)。


软件
人们常说硬件是肌肉,软件是大脑。为此,我们提出了以下几点:

选择 Arduino IDE 作为基于 GUI 的开发环境。从 V1.5 开始,Arduino IDE 支持第三方硬件集成。只需在“文件/首选项/附加板管理器 URL”中将“附加板管理器 URL”指向M10 GitHub 仓库即可。然后在“工具/板/板管理器”中安装板级支持包。
https://github.com/PulseRain/Arduino_M10_IDE
由于SDCC(http://sdcc.sourceforge.net/)是一款开源编译器,因此将它集成到了 BSP 中。此外,还提供了基于 SDCC 的增强功能以及核心库。 BSP 将所有繁琐的细节都一一对应,开发人员可以轻松使用Arduino 语言进行编码。这种新方法简化了开发流程,使开发人员免于面对传统方法中可能遇到的那些难题。
与使用软件引导程序进行设备编程的 Arduino 不同,我们在 MCU 核心中内置了 OCD(片上调试器)。这种方法不仅节省了宝贵的片上 RAM,还使设备编程更加可靠和稳定。
使用带有软 MCU 内核的 FPGA 的最大优势在于灵活性。硬件可以根据特定应用进行定制。 FPGA 外设库支持各种设备,例如串行 SRAM、语音编解码器、MicroSD 卡等。与其他 Arduino 开发板一样,我们也通过 GitHub 提供软件库,并提供易于使用的界面。
详细使用教程可以看下面的视频:
更多资源请查看:
https://www.pulserain.com/m10

总结
首先该开发板软硬件全开源,思路来源应该是想复刻Arduino的成功。
国外的工程师在研究开发板方面思路一直很“狂野”,一直致力于对开发方式的创新,但是本文的创新只在于顶层的创新,还没触到底层,所以今天只是开胃菜,后续还有更加底层的开发方式,尽情期待~
关于今天介绍的开发方式大家有什么想法或者意见,可以在评论区留言讨论。