网站大量收购独家精品文档,联系QQ:2885784924

从零开始写RISC-V处理器.pdfVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从零开始写RISC-V 处理器 从零开始写 RISC-V 处理器 前⾔ 第⼀次听到RISC-V这个词⼤概是两年前,当时觉得它也就是和MIPS这些CPU架构没什么区别,因此也就不以为然了。直到去年,RISC-V 这个词开始频繁地出现在微信和其他⽹站上,此时我再也不能⽆动于衷了,于是开始在⽹上搜索有关它的资料,开始知道有SiFive这个⽹ 站,知道SiFive出了好⼏款RISC-V的开发板。可是最便宜的那⼀块开发板都要700多RMB,最后还是忍痛出⼿了⼀块。由于平时上班⽐较 忙,所以玩这块板⼦的时间并不多,也就是晚上下班后和周末玩玩,⾃⼰照着芯⽚⼿册写了⼏个例程在板⼦上跑跑⽽已。 再后来发现⽹上已经有如何设计RISC-V处理器的书籍卖了,并且这个处理器是开源的,于是果断买了⼀本来阅读并浏览了它的开源代码 最后表⽰看不懂。从那之后⼀个“从零开始写RISC-V处理器”的想法开始不断地出现在我的脑海⾥。我⼼⾥是很想学习、深⼊研究RISC-V 的,但是⼀直以来都没有verilog和FPGA的基础,可以说是CPU设计领域⾥的门外汉,再加上很少业余时间,为此⼀度犹豫不决。但是直 觉告诉我已近不能再等了,我决定开始⾃学verilog和FPGA,⽤简单易懂的⽅式写⼀个RISC-V处理器并且把它开源出来,在提⾼⾃⾝的同 时希望能帮助到那些想⼊门RISC-V的同学,于是tinyriscv终于在2019年12⽉诞⽣了。 tinyriscv是⼀个采⽤三级流⽔线设计,顺序、单发射、单核的32位RISC-V处理器,全部代码都是采⽤verilog HDL语⾔编写,核⼼设计思 想是简单、易懂。 绪论 2.1 RISC-V是什么 RISC,即精简指令集处理器,是相对于X86这种CISC(复杂指令集处理器)来说的。RISC-V中的V是罗马数字,也即阿拉伯数字中的5 就是指第5代RISC。 RISC-V是⼀种指令集架构,和ARM、MIPS这些是属于同⼀类东西。RISC-V诞⽣于2010年,最⼤的特点是开源,任何⼈都可以设计 RISC-V架构的处理器并且不会有任何版权问题。 2.2 既⽣ARM,何⽣RISC-V ARM是⼀种很优秀的处理器,这⼀点是⽆可否认的,在RISC处理器中是处于绝对⽼⼤的地位。但是ARM是闭源的,要设计基于ARM的处 理器是要交版权费的,或者说要购买ARM的授权,⽽且这授权费⽤是昂贵的。 RISC-V的诞⽣并不是偶然的,⽽是必然的,为什么?且由我从以下两⼤领域进⾏说明。 先看开源软件领域(或者说是操作系统领域),Windows是闭源的,Linux是开源的,Linux有多成功、对开源软件有多重要的意义,这个 不⽤多说了吧。再看⼿机操作系统领域,iOS是闭源的,Android是开源的,Android有多成功,这个也不⽤多说了吧。对于RISC处理器领 域,由于有了ARM的闭源,必然就会有另外⼀种开源的RISC处理器。RISC-V之于CPU的意义,就好⽐Linux之于开源软件的意义。 或者你会说现在也有好多开源的处理器架构啊,⽐如MIPS等等,为什么偏偏是RISC-V?这个在这⾥我就不细说了,我只想说⼀句:⼤部分 ⼈能看到的机遇不会是⼀个好的机遇,你懂的。 可以说未来⼗年乃⾄更长时间内不会有⽐RISC-V更优秀的开源处理器架构出现。错过RISC-V,你注定要错过⼀个时代。 软件篇:浅谈Verilog verilog,确切来说应该是verilog HDL(Hardware Description Language ),从它的名字就可以知道这是⼀种硬件描述语⾔。⾸先它是⼀ 种语⾔,和C语⾔、C++语⾔⼀样是⼀种编程语⾔,那么verilog描述的是什么硬件呢?描述电阻?描述电容?描述运算放⼤器?都不是,它 描述的是数字电路⾥的硬件,⽐如与、⾮门、触发器、锁存器等等。 既然是编程语⾔,那⼀定会有它的语法,学过C语⾔的同学再来看verilog得代码,会发现有很多地⽅是相似的。 verilog的语法并不难,难的是什么时候该⽤wire类型,什么时候该⽤reg类型,什么时候该⽤assign来描述电路,什么时候该⽤always来 描述电路。assign能描述组合逻辑电路,always也能描述组合逻辑电路,两者有什么区别呢? 3.1 ⽤always描述组合逻辑电路 我们知道数字电路⾥有两⼤类型的电路,⼀种是组合逻辑电路,另外⼀种是时序逻辑电路。组合逻辑:输出只是当前输⼊逻辑电平的函数 (有延时),与电路的原始状态⽆关。当前电路输⼊信号任何⼀个发⽣改变,输出都将发⽣改变。时序

您可能关注的文档

文档评论(0)

134****3224 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档