读书·基于RISC-V和FPGA的嵌入式系统设计

引言:第八届集成电路创新创业大赛龙芯杯是有关嵌入式SoC设计的

        由于我本身是做纯硬件设计,此前没怎么接触软硬协同

        玩过Zynq,但是到SDK部分就去吃灰了

        现在后悔了,所以,做人一定要有始有终啊~TAT

-------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------

概述

背景阐述

吹吹水,讲讲FPGA优势

有几个名词需要注意:

嵌入式操作系统

        FreeRTOS\Embedded Linux\Zephyr

编译器和工具链

        GNU的编译器和工具链

COTS

        作者提出的概念,指的是用一大堆通用芯片组成的嵌入式系统产品

Make

        一种将代码变为可执行文件的格式命令,一般有Makefile 来配置

FARM

        作者提出的一种概念,意思是:FPGA + Arduino + RISC-V + Makefile

FARM分工

        FPGA: 外围设备 + 总线 + 复杂外围设备控制器 + 代码载入器(给CPU)

        RISC-V: 提供软核CPU,写在FPGA上

        RISC-V的配置有两种方式:

                1.裸金属系统采用Arduino IDE开发,利用Arduino提供的软件库,编译结果可以在集成环境下直接写入FPGA上的软核。

                2.大规模代码的话可通过Make,并通过和RV软核配套的代码载入工具,写进去

                裸金属系统可以不经过操作系统干预的情况下,直接在逻辑硬件上执行指令

涉及的名词:

        原型版 prototype

                硬件工程师参考相关评估版,为新的系统设计出最初的原型版

        试验工程 Dummy project

                主要是看各个引脚是否可配置

        软件工程师为外设编写驱动程序

                这需要硬件工程师给软件提供 FPGA设计参考手册,各个部分地址分配,寄存器定义和操作方式

        分工之后软件工程师即可开始主体算法的设计

        

FPGA

第二章开始设计,假设你已经会 Verilog / SystemVerilog

RISC-V

吹牛逼环节

        软核处理器 PulseRain Reindeer:https://riscv.org/2018/10/risc-v-contest

小脚丫FPGA开发平台

第9章开始说

C/C++,Make和工具链

第6章开始

嵌入式操作系统

第7章说如何将开源操作系统Zephyr移植到RISC-V处理器上

Arduino集成开发环境

Arduino在处理裸金属系统的时候很占优势,但是需要处理器软核提供代码载入的支持

也要向集成开发环境提供相应的第三方开发包

第8章开始喷

模块授权方式

第10章开始说

PulseRain RTL库

第5章说,对常用外围设备进行讨论,并说明其具体实现方式

有关于RTL库的IP使用的深入问题,10章讨论

资料来源

参考文献

代码来源

封面自己扫

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

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

相关文章

python 蓝桥杯之常用的库

文章目录 heapqCounter导入模块创建一个 Counter 对象获取元素的出现次数访问特定元素的计数更新计数获取计数值最高的元素其他常用方法 defaultdict导入模块创建一个 defaultdict(set)向字典中添加元素访问字典中的元素访问不存在的键注意事项 heapq heapq 是 Python 中的一个…

基于决策树实现葡萄酒分类

基于决策树实现葡萄酒分类 将葡萄酒数据集拆分成训练集和测试集,搭建tree_1和tree_2两个决策树模型,tree_1使用信息增益作为特征选择指标,B树使用基尼指数作为特征选择指标,各自对训练集进行训练,然后分别对训练集和测…

图论练习6

[NOIP2013]车站分级 Here 解题思路 由于起始点之间所选的站号,相互之间一定满足那么对于起始点间未选择的站号,一定满足选择的站号考虑用边来维护信息,表示的级别大于按题意,则车站会被分为几个联通块,且保证块内无环…

So you think you understand IP fragmentation?

文章目录 前言一、Why care?二、Prevention三、Well-understood?四、Introducing fragquiz五、A novel (?) algorithm六、Reader challenge七、traceroute八、ICMP参考资料 前言 本文来自:https://lwn.net/Articles/960913/ February 7, 2024This article was …

【Python】成功解决ModuleNotFoundError: No module named ‘seaborn’

【Python】成功解决ModuleNotFoundError: No module named ‘seaborn’ 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 …

高分辨率全球海洋温度和盐度再分析数据Global Ocean Physics Reanalysis(0.083°),并利用matlab读取绘图

1.引言 在研究全球海平面变化的问题中,卫星测高获得总的海平面变化,而海平面变化包含质量变化和比容变化。因此测高数据和海洋物理分析数据对于海平面研究至关重要。 测高数据下载网址: Global Ocean Gridded L 4 Sea Surface Heights And …

动态规划课堂4-----子数组系列

目录 引入: 例题1:最大子数组和 例题2:环形子数组的最大和 例题3:乘积最大子数组 例题4:乘积为正数的最长子数组 总结: 结语: 引入: 在动态规划(DP)子…

农场管理小程序|基于微信小程序的农场管理系统设计与实现(源码+数据库+文档)

农场管理小程序目录 目录 基于微信小程序的农场管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、用户信息管理 2、农场信息管理 3、公告信息管理 4、论坛信息管理 四、数据库设计 五、核心代码 七、最新计算机毕设选题推荐 八、源码获取&#x…

mysql和redis的区别

一.额外知识 1.为什么内存读取比硬盘读取快 在了解mysql和redis的区别之前,先来讨论一下额外的知识:为什么内存读取比硬盘读取快? 先看一个结论:内存读取至少比硬盘读取快10万倍 首先机械硬盘基本上的速度都在100MB-200MB 之间,SSD硬盘快一点,但是也是在500MB左右…

【工具使用-VScode】VScode如何设置空格和tab键显示

一,简介 在提交代码的时候,行末尾的tab和空格不符合规范,但是如果在vscode中不显示tab和空格的话,不能及时的查看到并改正,导致提交代码之后还需要再次进行修改,效率比较低。 代码编辑界面如图所示&#…

【大厂AI课学习笔记NO.68】开源和开源发展情况

开源即源代码公开,任何人能获取源代码,查看、修改、分发他们认为合适的代码。 依托同行评审和社区生成,旨在以分散、协作的方式开发。 我们曾经很详细的讨论过开源协议的问题,详细可以参考我的文章: https://giszz.…

CaricatureFace 学习笔记

目录 3d人脸重建开源项目汇总 CaricatureFace 依赖项: 有的电脑安装失败: 3d人脸重建开源项目汇总 3D人脸重建开源项目整理_reconstruction 项目-CSDN博客 2020 CVPR 漫画三维人脸重建) CaricatureFace 依赖项: openmesh 有的电脑安…

高频设计模式

文章目录 高频设计模式单例模式饿汉式(Eager Initialization)懒汉式(Lazy Initialization)双重校验锁(Double-Checked Locking)静态内部类(Static Inner Class)枚举(Enum…

LeetCode-1004. 最大连续1的个数 III

每日一题系列(day 20) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50…

软考高级:耦合分类(内容耦合、公共耦合、外部耦合等)概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

docker部署在线聊天室平台Fiora

Fiora 是一款开源免费的在线聊天系统 https://github.com/yinxin630/fiora 部署 创建docker网络 docker network create fiora-networkdocker-compose部署 vim docker-compose.yml version: 3 services:fiora_redis:image: rediscontainer_name: fiora_redisrestart: alway…

Vue3 子/父组件相互调用

1&#xff1a;子组件调用父组件 父组件&#xff1a; <template><div><button style"margin: 50px">父按钮</button> <!--已clk为名称的事件传递给子组件&#xff0c;传递的是父组件的a函数/事件 --><Child clk"a" />…

huggingface实现Bark模型

目录 引言 使用半精度 使用CPU卸载 使用Better Transformer 使用Flash Attention 2 安装 使用 组合优化技术 使用技巧 BarkConfig 实例化 BarkConfig 参数说明 BarkProcessor 参数 __call__ 方法 from_pretrained 方法 save_pretrained 方法 BarkModel 生成…

电脑解锁后黑屏有鼠标--亲测!!不需要重装系统!!

问题&#xff1a;上周电脑黑屏&#xff0c;只有鼠标&#xff0c;鼠标还不能右键&#xff01;&#xff01; 中招&#xff1a;win10系统最新版火绒安全 &#xff0c;那你有概率获得开机黑屏套餐一份。 原因是&#xff1a;火绒把我们的explorer删除了导致黑屏&#xff0c;这个文…

【OpenGL手册11】材质的模型

目录 一、说明二、材质表面和光照三、设置材质四、光的属性五、不同的光源颜色练习 一、说明 在现实世界里&#xff0c;每个物体会对光产生不同的反应。比如&#xff0c;钢制物体看起来通常会比陶土花瓶更闪闪发光&#xff0c;一个木头箱子也不会与一个钢制箱子反射同样程度的…