RSIC-V“一芯”学习笔记(一)——概述

考研的文章和资料之后想写的时候再写怕趴

文章目录

  • 一、阶段设计
  • 二、环境、开发语言和工具
  • 三、最重要的两个观念
  • 四、处理器芯片设计
  • 五、处理器芯片设计包含很多软件问题
  • 六、处理器芯片的评价指标
  • 七、复杂系统的构建和维护
  • 八、专业世界观
  • 九,提问的艺术(提问模板)
  • 十、考核情况

一、阶段设计

  1. B阶段:以RVE为主、将RT-Thread移植到AM、在给定的面积预算内优化处理器设计
  2. A阶段:从RVE转到RV64IMAC、最终运行Linux发行版
  3. 开源EDA
    在这里插入图片描述

二、环境、开发语言和工具

Linux环境:我准备直接用虚拟机了
软件:C语言、C++(少量)、gcc编译器。
(幸好之前苏嵌学过gcc、makefile等基础知识,底子打的好)
硬件开发:verilog 开源verilator仿真器+开源gtkwave波形查看器
(对于verilog,看了看之前学fpga的时候,倒是了解过一点,但是学的不是很深入)

硬件配置:笔记本电脑就行,无需FPGA
(当然自己设计的处理器放在上面跑也是可以的)
这里比较推荐的是ASIC

三、最重要的两个观念

1.硬件需要软件的支持才能发挥作用
狭义的处理器芯片设计: RTL开发
广义的处理器芯片设计:计算机系统软硬件协同设计

2.复杂系统是迭代演进的(多周期->流水线->超标量->乱序执行)
做事规律-从易到难,逐步推进
推荐阅读:《 系统设计黄金法则:简单之美》,包云岗
KISS法则- Keep It Simple, Stupid

四、处理器芯片设计

本质:实例化和连续
可以用面包板开发,但是逐渐转成RTL开发(效率高、更方便)

补充:RTL级和Verilog语言
RTL:寄存器传输级
Verilog可以从五个层次对电路(系统)进行描述,包括:系统级、算法级、寄存器传输级(即RTL级)、门级、开关级。我们平时用的最多的为RTL级,故Verilog代码也经常被称为RTL代码。
入门verilog文章–想学verilog的,可以看看这篇文章

五、处理器芯片设计包含很多软件问题

两个本质原因

  1. 处理器芯片和其他芯片不同,离开软件就无法工作.
  2. 代码即软件- RTL代码也是,即使它描述的是硬件
    需要使用合适的软件技术管理/维护/测试/评估/优化代码

软件怎么在处理器上运行?等等

六、处理器芯片的评价指标

  1. 正确性-最基本。运行100000000次后,是否也能正常运行?
  2. 软件支持–你设计的芯片只能运行排序程序,还是能启动Linux
  3. 微结构复杂度 - 单周期 复杂度 cache 分支预测
  4. PPA(性能(IPC主频)、功耗、面积)
  5. 可配置性
  6. 代码可读性、可维护性

七、复杂系统的构建和维护

  1. 了解全系统的每一处细节,为调bug有大方向
  2. 先完成后完美,体会每一项技术对系统带来的性能提升
  3. 构建正确的工具,提升开发速率
  4. 经验总结

八、专业世界观

  1. 代码要独立完成

在这里插入图片描述

九,提问的艺术(提问模板)

模板:
请回答以下问题:

  1. 你认为本问题是否属于能力训练的范畴?
  • 是, 我应该尽最大努力解决这个问题来得到训练
  • 否, 我要汇报讲义或框架代码中的问题, 或提供改进的建议
  • 其他, 请补充说明
  1. 这个问题是否可以通过自己动手试一试来了解答案? (例如类似"执行ls会发生什么"/“C语言中除0会发生什么”/“Cache是直接相联更好还是组相联更好”)
  • 是, 我试一试就可以知道答案
  • 否, 这个问题不属于此类别
  1. 是否已经阅读并理解相关的报错信息
  • 不适用, 这个问题没有报错信息
  1. 是否已经仔细阅读了讲义, 并确认讲义中没有提到相关信息
  • 不适用, 这个问题属于调试的训练, 需要我独立解决
  1. 是否可以通过重新编译解决问题?
  • 不适用, 这个问题和代码无关
  1. 是否已经尝试STFW?
  • 不适用, 这个问题和我的代码强相关, 无法在网上直接搜索到相关信息
  1. 是否已经尝试RTFM?

  • 不适用, 这个问题和手册无关
  1. 是否已经尝试RTFSC(包括Makefile等脚本和相关配置文件)?
  • 不适用, 这个问题和代码无关
  1. 这个问题是否可以稳定复现?
  1. 请列出你认为对解决问题有帮助的版本信息, 可以是系统/工具/代码等版本.

  2. 请详细描述复现这个问题的具体步骤(需要的时候附上截图).

  3. 请描述你期望看到的结果.

  4. 请阐述你尝试的过程和得到的结果, 并针对这些尝试结果进行分析, 给出自己的思考(需要的时候附上截图).

十、考核情况

在所提交的项目里面随机注入三个bug,
覆盖软件、硬件、环境
约45分钟找出bug

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PHP信息分类网源码带手机端和文档

PHP信息分类网源码带手机端和文档 安装简易说明: 上传 → 安装 → 进入后台 → 恢复数据 → 修改cookie记录值(第3点有说明) 1.上传程序到网站根目录,访问http://域名/install/index.php 进行安装,不要直接打开网址,先直接安装&am…

MySQL启动

启动与停止 法一 winR 然后输入services.msc 会进入Windows系统 法二 如果在安装过程中勾选,则mysql默认是开机自动启动的 启动:net start mysql80 停止:net stop mysql80 cmd以管理员身份运行 客户端连接 方式一:MySQL提…

博途PLC和HMI协同设计工作(PLC设备数据代理)

我们在做S7-1200/1500PLC项目时,往往由于项目比较大,工作量比较多。此时我们的PLC程序和HMI程序由不同的工程师分别完成。这时候往往我们的PLC工程和HMI工程都不在同一个工程下,我们的HMI工程师如何和我们的PLC工程协同工作完成数据通信和工程设计呢,这里我们介绍PLC的&quo…

【面试突击】生产部署面试实战

🌈🌈🌈🌈🌈🌈🌈🌈 欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

Markdown编辑器

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

电子学会2023年12月青少年软件编程(图形化)等级考试试卷(三级)真题,含答案解析

青少年软件编程(图形化)等级考试试卷(三级) 分数:100 题数:31 一、单选题(共18题,共50分) 1. 运行左图程序,想得到右图中的效果,红色框应填写的数值是?( ) A.

【python】matplotlib画图常用功能汇总

目录: 一、matplotlib画图风格二、matplotlib图像尺寸和保存分辨率三、matplotlib子图相关功能创建子图:绘制子图:设置子图属性:调整布局:示例代码: 四、matplotlib字体设置字体族和字体的区别字体选择和设置1. Matplo…

Django教程第2章| Web开发实战 |用户管理模块

前言 从第2章开始,我们正式以实战为核心开发用户管理系统,计划实现效果图所有模块功能。 本章我们将开始实现我们第一个功能模块:用户管理。 技术栈 Boostrap、jQuery、​​​Django 功能模块 模块进度功能点部门管理完成增删改查&…

C# 图解教程 第5版 —— 第23章 异常

文章目录 23.1 什么是异常23.2 try 语句23.3 异常类23.4 catch 子句23.5 异常过滤器23.6 catch 子句段23.7 finally 块23.8 为异常寻找处理程序23.9 进一步搜索23.9.1 一般法则23.9.2 搜索调用栈的示例(*) 23.10 抛出异常23.11 不带异常对象的抛出23.12 …

用sql计算两个日期的间隔天数 ,去除周末

快递行业,经常需要计算2个节点的时效,有的计算自然日,有时候需要计算去掉周末的时效,计算自然日很简单,用函数datediff 就可以了,计算工作日时效,我的实现方法如下,借助了一个日期维…

2024随身WiFi还能买吗?随身WiFi哪个品牌最靠谱,高性价比高口碑随身wifi推荐

一、你为什么选择随身Wifi? 宿舍的网,速度太慢了! 出差路上,热点连不上? 电话会议,突然就断了? 网络稳定 因为经常出差流量不够用,去的地方经常信号不稳定,经过朋友…

SQL Server 配置远程连接

Windows 安装好 SQL Server 的 SSMS,打开SSMS配置远程连接 找到 配置管理器 启用 TCP/IP 打开防火墙设置 新建入站规则 端口TCP - 特定本地端口 (1433)允许连接下一步名称完成 重启 SQL Server 服务

OpenAI推出GPT商店,以充分利用ChatGPT在消费者市场上的成功

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

回归预测 | MATLAB实现SSA-CNN-GRU-Attention多变量回归预测(SE注意力机制)

回归预测 | MATLAB实现SSA-CNN-GRU-Attention多变量回归预测(SE注意力机制) 目录 回归预测 | MATLAB实现SSA-CNN-GRU-Attention多变量回归预测(SE注意力机制)预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SSA…

获取 Dll 模块的加载字符串资源

概要 获取 Dll 模块中加载的字符串资源,可以通过 LoadString 实现。这个函数可以用于在不同版本索引系统字符串,对于一些根据名称操作系统菜单的功能,可以使用这种方法动态获取系统模块当前的加载字符串。 LoadStringW 从与指定模块关联的可…

OpenHarmony自定义Launcher

前言 OpenHarmony源码版本:4.0release 开发板:DAYU / rk3568 DevEco Studio版本:4.0.0.600 自定义效果: 一、Launcher源码下载 Launcher源码地址:https://gitee.com/openharmony/applications_launcher 切换分支为OpenHarmony-4.0-Release,并下载源码 二、Launcher源…

不同activity项目创建时的区别

在 Android Studio 中创建项目时,可以选择创建不同类型的 Activity 作为应用程序的入口点。其中,包括 Empty Activity、Basic Activity、Empty Compose Activity 和 Basic Compose Activity 四种类型。 Empty Activity:这是最简单的 Activity…

Java多线程并发篇----第十一篇

系列文章目录 文章目录 系列文章目录前言一、什么是悲观锁二、什么是自旋锁三、Synchronized 同步锁前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、什么是悲观…

嵌入式必备的WEB知识

写在前面 嵌入式要学习Wed前端吗?答案是要的,不需要深入学习,只需要简单了解即可。为什么要学习? 原因如下: 可以远程控制和管理设备:通过简单的Web知识,嵌入式系统可以建立Web界面&#xff0c…

【前后端的那些事】快速上手富文本+富文本图片上传

文章目录 fullText富文本1. 后端接口1.1 定义常量1.2 定义返回实体类1.3 上传图片接口1.4 下载图片接口 2. 前端代码编写2.1 安装2.2 快速使用 3. 配置富文本图片上传地址3.1 配置图片上传配置 4. 全部代码展示 前言:最近写项目,发现了一些很有意思的功能…
最新文章