FPGA开发板这样做?(一)-像 Arduino 一样玩 FPGA

这也是一个系列文章,来源之前和粉丝们在评论区讨论的国外对于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的成功。

国外的工程师在研究开发板方面思路一直很“狂野”,一直致力于对开发方式的创新,但是本文的创新只在于顶层的创新,还没触到底层,所以今天只是开胃菜,后续还有更加底层的开发方式,尽情期待~

关于今天介绍的开发方式大家有什么想法或者意见,可以在评论区留言讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/77834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++游戏引擎开发】第21篇:基于物理渲染(PBR)——统计学解构材质与光影

引言 宏观现象:人眼观察到的材质表面特性(如金属的高光锐利、石膏的漫反射柔和),本质上是微观结构对光线的统计平均结果。 微观真相:任何看似平整的表面在放大后都呈现崎岖的微观几何。每个微表面(Microfacet)均为完美镜面,但大量微表面以不同朝向分布时,宏观上会表…

深入理解linux操作系统---第11讲 bshell编程

11.1 正则表达式 11.1.1 字符集 正则表达式的字符集包含三类核心要素: 普通字符:直接匹配单个字符,如a匹配字母a范围字符集:[a-z]匹配所有小写字母,[0-9A-F]匹配十六进制数字预定义字符集:\d等价于[0-9]…

C++中的引用:深入理解与实用示例

文章目录 C中的引用:深入理解与实用示例一、引用的基本概念二、引用作为别名的应用三、引用作为函数参数四、指针与引用的区别五、常量引用六、引用与返回值七、总结 C中的引用:深入理解与实用示例 在C编程中,“引用”是一个强大而重要的概念…

C#委托介绍

委托可以将方法作为参数传递,同时委托也可以自己作为参数传递 委托可分为自定义委托delegate 无返回值的Action 与有返回值的Func委托 也有匿名委托与Lamada 委托支持多播是事件的基础 用处如在分线程调用主线程的UI invoke public delegate string Say(stri…

Node.js 模块导入的基本流程

Node.js 模块导入的基本流程,主要是 CommonJS 模块加载机制(即使用 require())的内部执行步骤。下面我用清晰的结构给你梳理一下这个过程: ✅ Node.js 模块导入的基本流程(使用 require()) const someModu…

n8n 中文系列教程_02. 自动化平台深度解析:核心优势与场景适配指南

在低代码与AI技术深度融合的今天,n8n作为开源自动化平台正成为开发者提效的新利器。本文深度剖析其四大核心技术优势——极简部署、服务集成、AI工作流与混合开发模式,并基于真实场景测试数据,厘清其在C端高并发、多媒体处理等场景的边界。 一…

【C++ Qt】信号和槽(内配思维导图 图文并茂 通俗易懂)

每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论​: 本章是Qt中的第三章,也是我们理解Qt中必备的点 信号槽,它本质由信号和槽两个来实现,其中将细致的讲述如何自定义信号…

【项目】基于MCP+Tabelstore架构实现知识库答疑系统

基于MCPTabelstore架构实现知识库答疑系统 整体流程设计(一)Agent 架构(二)知识库存储(1)向量数据库Tablestore(2)MCP Server (三)知识库构建(1&a…

免费将静态网站部署到服务器方法(仅支持HTML,CSS,JS)

原视频链接:把HTML免费部署到网站上,实现别人也能访问的教程来啦QAQ_哔哩哔哩_bilibili 注意:仅支持HTML、CSS、JS。不支持Vue等框架。 1.打开网站www.wordpress.org 点击红框按钮 点击红框按钮下载wordpress模板文件并解压。 将自己编写的…

游戏引擎学习第235天:在 Windows 上初始化 OpenGL

奇怪有问题 之前没注意到 这个问题是Count 0 GlobalConstants_Renderer_UsedDebugCamer 打开的话会有Bug Count是零的话就不让排序了 game.h: 查阅 TODO 列表 大家好,欢迎来到 game Hero,这是一档我们在直播中一起编写完整游戏的节目。不幸的是&a…

使用eCharts绘制中国地图

eCharts官网&#xff1a;https://echarts.apache.org/zh/index.html 1. 首先新建一个html页面&#xff0c;并引入echarts <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-…

Linux与Anaconda环境部署与管理(运维交接)

文章目录 一、前言二、Linux基础命令三、进程管理与监控四、后台任务与服务管理五、Anaconda环境管理六、JAR包的运行与管理七、网络与端口映射八、安全与权限管理九、故障排查与日志分析十、附录 一、前言 本文将详细介绍Linux系统下的常用命令以及Anaconda环境管理&#xff…

php:实现压缩文件上传、解压、文件更名、删除上传临时文件、存入数据库等操作

一、效果图 1.上传文件 2.压缩包文件 3.itemno1文件 二层结构 或 三层结构 4.上传到系统路径\ItemNo 5.更名后的itemno1文件(命名:当天日期+六位随机数) 二、普通实现 1、内容介绍 含有两种结构 二层结构:zip->料号文件夹->料号文件三层结构:zip->总文件夹-&g…

基于大语言模型的减肥健身计划系统设计与实现

基于大语言模型的减肥健身计划系统设计与实现 【包含内容】 【一】项目提供完整源代码及详细注释 【二】系统设计思路与实现说明 【三】功能演示与部署指南 【技术栈】 ①&#xff1a;系统环境&#xff1a;Python 3.x Django 4.2 ②&#xff1a;开发环境&#xff1a;Web服务…

c#开发大冲锋游戏登录器

1 前言 本文主要分享登录器的简要开发过程&#xff0c;只适合小白选手&#xff0c;高手请自动避让。 此项目是复刻大冲锋计划中的子集。 &#xff08;注&#xff1a;大冲锋是迅雷代理的一款次时代多职业第一人称FPS射击游戏&#xff0c;目前已经关服嗝屁。&#xff09; 2 …

Linux[基础指令][2]

Linux[基础指令][2] cp(复制) 格式:cp [-rf] 源文件 {普通文件,目录} 拷贝 cp -r 递归拷贝目录 蓝色为目录,白色为具体文件 拷贝后面加一个不存在的文件会新建文件再拷贝 cp -ir -i是覆盖的时候询问 如果目标文件存在就会覆盖原有文件 mv(重命名/剪切) 格式:mv 源文件…

React18+ 项目搭建-从初始化、技术选型到开发部署的全流程规划

搭建一个 React 项目需要从项目初始化、技术选型到开发部署的全流程规划。以下是详细步骤和推荐的技术栈&#xff1a; 一、项目初始化 1. 选择脚手架工具 推荐工具&#xff1a; Vite&#xff08;现代轻量级工具&#xff0c;支持 React 模板&#xff0c;速度快&#xff09;&am…

人工智能学习框架完全指南(2025年更新版)

一、核心框架分类与适用场景 人工智能框架根据功能可分为深度学习框架、机器学习框架、强化学习框架和传统工具库,以下是主流工具及选型建议: 1. 深度学习框架 (1)PyTorch 核心优势:动态计算图、灵活性强,适合科研与快速原型开发,支持多模态任务(如NLP、CV) 。技术生…

MySQL 详解之事务管理

MySQL 详解之事务管理 在数据库领域,事务是一个核心概念,它确保了数据操作的可靠性和一致性。尤其是在处理涉及多个步骤且必须全部成功或全部失败的业务场景时,事务更是不可或缺。本篇文章将深入探讨 MySQL 中的事务管理,帮助您全面理解事务的工作原理及其在实际应用中的重…

SpringAI+DeepSeek大模型应用开发——5 ChatPDF

ChatPDF 知识库 RAG检索增强 由于训练大模型非常耗时&#xff0c;再加上训练语料本身比较滞后&#xff0c;所以大模型存在知识限制问题&#xff1a; 知识数据比较落后&#xff0c;往往是几个月之前的&#xff1b;不包含太过专业领域或者企业私有的数据&#xff1b; 为了解决…