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.pswp.cn/pingmian/77834.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/77834.shtml
英文地址,請注明出處:http://en.pswp.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; 為了解決…