首页 > 其他分享 >手写RISC-V处理器--1

手写RISC-V处理器--1

时间:2023-08-26 21:11:41浏览次数:43  
标签:需要 FPGA -- RISC 芯片 处理器 手写

由来

由于去年工作变动,有幸进入了芯片行业,但主要工作内容为基于RISC-V的嵌入式应用软件开发,几乎接触不到芯片设计的相关知识,然而随着工作的深入,越来越想探究一下运行在软件之下的CPU的世界,于是便产生了自己手写一个RISC-V处理器的想法,同时在博客里记录和分享一下自己学习和探索的过程。作为芯片设计领域的小白,深感道阻且长,幸运的是,有无数前辈们留下的足迹作为指引,再者说,事在认为,那就抖胆试一试吧。

思路

在尝试一个新的领域的时候,我会希望先从宏观上理一下思路,分解一下可能需要的做的1234,然后再按照这个思路一步一步向目标靠近。那么手写一个RISC-V处理器,需要哪些基础和步骤呢?

1. 计算机理论基础

这方面最经典的书籍应该是《深入理解计算机系统》,相信从事软件行业的人大部分都读过,在自己实现一个处理器的同时,再回过头来温习一下这本书,一定有不一样的收获。

2. 数字电子技术基础

这个在大学阶段相关专业都学过,我们需要理解和掌握组合逻辑电路和时序逻辑电路的设计,以及一些基本概念。

3. Verilog语言

编程语言最终还是选择了Verilog,是目前比较主流的语言,语法比较容易上手,入门教程有很多,比如这里

4. RISC-V指令集

我们需要非常熟悉RISC-V指令集,它的指令分类,构成、用法等,最直接的就是在处理器的译码执行阶段一定会用到。

5. FPGA开发平台

选择一个FPGA开发平台,目前主流的三大FPGA厂商是Xilinx、Altera、Lattice,可以根据自己的需要,选择购买一款对应的开发板,熟悉和掌握它的开发环境。

6. 芯片的bring up

这里需要熟悉汇编语言,熟悉和理解C运行环境前的准备工作。我们不仅要手写一个处理器,还要通过bring up让它真正运行起来。

小结

以上列举的是一些需要掌握的基础,可以针对性的进行学习和掌握,边做边学,我基本都是在上班通勤的路上学习这些理论基础,这里推荐大家读一下刘未鹏的暗时间,充分利用起暗时间,是我们业余时间学习的关键。

标签:需要,FPGA,--,RISC,芯片,处理器,手写
From: https://www.cnblogs.com/tomyoung/p/17659349.html

相关文章

  • 【LeetCode动态规划#17】知道秘密的人,维护多个dp数组
    知道秘密的人数在第1天,有一个人发现了一个秘密。给你一个整数delay,表示每个人会在发现秘密后的delay天之后,每天给一个新的人分享秘密。同时给你一个整数forget,表示每个人在发现秘密forget天之后会忘记这个秘密。一个人不能在忘记秘密那一天及之后的日子里分享......
  • Linux网卡配置信息释义
    [root@www~]#cat/etc/sysconfig/network-scripts/ifcfg-eth0TYPE=Ethernet#<==上网类型,目前基本都是以太网。PROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=none#<==启动协议,获取配置方式,有none|bootp|dhcp三个选项。DEFROUTE=yes#<==使用默......
  • 报错test_features2d.cpp:51:10: fatal error: features2d/test/test_detectors_regre
    问题描述:ubuntu18.04安装opencv4.5.1+contrib报错test_features2d.cpp:51:10:fatalerror:features2d/test/test_detectors_regression.impl.hpp:没有那个文件或目录解决方法如题,报错如下:解决方法:按照报错提示,将opencv-4.5.1/modules中的features2d文件夹一整个复制到ope......
  • 安装opencv_contrib-3.4.9, fatal error: opencv2/xfeatures2d.hpp: 没有那个文件或目
    1.在Opencv的CmakeLists.txt中加入以下include语句:INCLUDE_DIRECTORIES("/home/yourusername/Dependencies/opencv-3.4.9/opencv_contrib-3.4.9/modules/xfeatures2d/include")2.ippicv_2019_lnx_intel64_general_20180723.tgz下载地址:链接:https://pan.baidu.com/s/1mu......
  • 自我介绍
    尊敬的老师,亲爱的同学们:你们好啊!我叫周玟妍,是来自吉林省的计算机小白。(笑)(1)形容自己的三个词语谦逊俚语有沉默是金之说法。唯持沉默之金石,才能于山巅一鸣惊人。对我来说,恰到好处的谦逊,既能提高人际交往的舒适度,又能时刻提醒自己,前行不息,历练不止,方可从小白蜕变成真正的技术宅......
  • 1300亿参数,国内首个数学大模型MathGPT上线!多项基准赶超GPT-4
    前言 数学的命运齿轮从此开始转动。国内首个专为数学打造的千亿级大模型MathGPT正式上线,在多项基准测试中碾压GPT-4,刷新SOTA。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。......
  • opencv_contrib编译:fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or dir
    在Ubuntu上编译opencv3.4.2源码时,遇到下面的错误,错误1:/home/src/software/opencv-3.4.2/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:42:fatalerror:opencv2/xfeatures2d/cuda.hpp:Nosuchfileordirectory # include"opencv2/xfeatures2d/cud......
  • 【OpenCV】features2d_converters.cpp:2:10: fatal error: common.h: 没有那个文件或
    Linux环境下使用opencv的dnn模块调用yolov4遇到的坑(纯CPU)一、问题描述Ubuntu安装opencv4.4,第一次编译完成安装成功,发现编译时少加了几个选项,于是重新编译,结果报如下错误:opencv_contrib-4.4.0/modules/xfeatures2d/test/features2d/misc/java/src/cpp/\features2d_converters.cpp:......
  • ubuntu opencv安装与卸载
    安装opencv1.在下面网站上下载所需版本的源文件Releases-OpenCVhttps://opencv.org/releases/       2.解压并进入该文件夹3.命令行执行如下指令   mkdirbuild   cdbuild   cmake..   sudomake-j8#-j表示要多线程编......
  • Java实现数据导出到excel文件
    使用的依赖:Apache提供的poi包首先导入依赖<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.2</version></dependency> 核心实现//创建一个工作簿,也就是Excel文件HSSFWorkbookwb=n......