MIPS架构开放了,10天设计一款完全免费的MIPS处理器(附源码)

来源:EETOP BBS    作者:leishangwen (社区版主)

近日,Wave正式宣布将MIPS指令集(ISA)向全球客户免费授权。为全球的半导体企业、开发人员及高校提供免费的MIPS架构,供其开发下一代SOC。MIPS架构开放计划将为所有参与者免费提供最新的32位和64位 MIPS架构,且不产生架构授权费和版权费,同时也为所有MIPS架构的使用者提供其在全球范围内几百项现有专利的保护。

虽然此举对于羽翼丰满的X86和ARM来说,短时间内无法造成多少影响,但对于目前依靠开源作为旗帜吸引玩家加盟的RISC-V来说,无益于当头一棒。RISC-V之所以被很多厂商热捧,在于全球任何一家IC设计单位都可以基于RISC-V设计CPU,不存在任何知识产权问题。这使得IC设计公司对于RISC-V很感兴趣。

然而,在MIPS也宣布免费授权之后,导致原本RISC-V才具备的优势,MIPS也拥有了,大家都可基于MIPS设计CPU。可以说,MIPS指令集授权免费后,由于生态更完善,性能也更好,将会对RISC-V造成很大冲击。

当然Mips的内核没有开源,内核授权业务仍旧保留。这是一个非常理智的商业安排,通过开源指令集来扩大整个指令集的生态系统,再由扩大的生态来反哺内核授权业务,完成了一个完整的商业闭环。

在几年前EETOP就建立了OpenMips社区,版主为大家分享了一款较为先进MIPS设计及代码,只不过当时Mips没有开放,所以只能冠之以学习版、教学版。

社区截图

版主在社区中为大家分享了10天设计Mips CPU的开发笔记及实现代码,现在介绍给大家,可以学习一下。

开发笔记

为了感谢EETOP上各位同学以及版主tyxuanyuanlx 对《步步惊芯——软核处理器内部设计分析》一书的支持,本人将贡献一个开源处理器OpenMIPS。

OpenMIPS,是一款具有哈佛结构的32位标量处理器,兼容MIPS32体系结构,这样可以使用现有的MIPS编译环境。OpenMIPS具有以下特点:

(1)五级整数流水线,分别是:取指、译码、执行、访存、回写
    (2)哈佛结构,分开的指令、数据接口
    (3)32个32位整数寄存器
    (4)大端模式
    (5)向量化异常处理,支持精确异常处理
    (6)8个外部中断
    (7)32bit数据、地址总线宽度
    (8)单周期乘法
    (9)支持延迟转移
    (10)兼容MIPS32体系结构,支持MIPS32指令集中的所有整数指令
    (11)大多数指令可以在一个时钟周期内完成
    (12)可综合

打算用十天时间依次发布,所以标题叫“10天实现处理器——OpenMIPS开发笔记”,还望各位同学多多使用,并提出改进建议,大致计划如下:

第1天 

(1)OpenMIPS介绍

(2)实验环境搭建

(3)实现通用寄存器Regfile

(4)实现指令存储器imem

(5)实现数据存储器dmem

第2天 

(1)实现五级流水线框架

(2)实现第一条指令——ORI

第3天 

(1)解决流水线数据相关的问题

(2)实现其余的逻辑操作指令——AND、ANDI、LUI、NOR、OR、XOR、XORI

第4天 

(1)实现移位操作指令——SLL、SLLV、SRA、SRAV、SRL、SRLV

(2)实现乘法、除法之外的所有算术操作指令——ADD、ADDI、ADDIU、ADDU、CLO、CLZ、SLT、SLTI、SLTIU、SLTU、SUB、SUBU

第5天 

(1)实现乘法指令——MADD、MADDU、MSUB、MSUBU、MUL、MULT、MULTU

(2)实现除法指令——DIV、DIVU

第6天 

(1)实现移动操作指令——MFHI、MFLO、MOVN、MOVZ、MTHI、MTLO

(2)实现控制指令——NOP、SSNOP

第7天 

(1)实现跳转指令——J、JAL、JALR、JR

(2)实现分支指令——B、BAL、BEQ、BGEZ、BGEZAL、BGTZ、BLEZ、BLTZ、BLTZAL、BNE

第8天 

(1)实现加载类指令——LB、LBU、LH、LHU、LL、LW、LWL、LWR

(2)实现存储类指令——SB、SC、SH、SW、SWL、SWR

第9天 

(1)实现协处理器CP0的部分寄存器

(2)实现协处理器访问指令——MFC0、MTC0

第10天 

(1)实现自陷指令——SYSCALL、TEQ、TEQI、TGE、TGEI、TGEIU、TGEU、TLT、TLTI、TLTIU、TLTU、TNE、TNEI

(2)实现中断处理

(3)实现异常返回指令——ERET

这里我们只给出了每一天要做的概要,所有这些详细设计版主都已经作为附件上传到论坛中所对应的帖子里面了,大家可以点击文末阅读原文下载。

代码实现说明

相对OpenMIPS教学版而言,OpenMIPS实践版最大的特点是引入了Wishbone总线接口,组建了SOPC,包括SDRAM控制器、GPIO控制器、flash控制器、UART控制器,并且下载到了DE2上进行了实际测试,SOPC的结构如下:

文件目录如下:(代码包含verilog 和 vhdl,这里以vhdl为例)

各文件夹说明如下:
rtl
所有OpenMIPS实践版的源代码文件在该文件夹下,包括流水线文件iu.vhd、除法模块       div.vhd、寄存器文件Regfile.vhd、顶层文件OpenMIPS.vhd、宏定义文件stdlib.vhd

min_sopc
包括多种IP核:GPIO、UART、SDRAM控制器、flash控制器、Wishbone总线互联矩阵等,以及一个用来测试OpenMIPS的最小SOPC的顶层文件OpenMIPS_min_sopc.vhd,在其中例化上述IP核,通过Wishbone总线互联矩阵与OpenMIPS连接在一起,形成一个SOPC。关于该SOPC的结构在第8小节会有介绍。此处的各种IP核都是从OpenCores下载的,均符合Wishbone总线接口规范。

tools
包含与具体评估板有关的一些工具,笔者主要是使用Altera的DE2作为评估板,所以tools下有一个Altera/DE2的目录,其中包含DE2的DE2_control_panel这个工具软件,可以通过该软件读写DE2上的flash芯片。
该目录下还包括一个BinMerge.exe软件,该软件在BootLoader、SimpleOS的实验中会有作用,用来将BootLoader、SimpleOS产生的二进制文件合并在一起。

doc
包含一些说明文档,具体有:《MIPS32指令集》、《MIPS Architecture for Programmers Volume III》、《OpenMIPS快速入门手册(实践版)》、《10天实现处理器——OpenMIPS成长记》,以及min_sopc文件夹下各种IP核的说明手册。
asm_test
包含几个测试程序,均使用汇编编写,分别用来测试GPIO、UART、SDRAM,以及一个综合程序。该综合程序由BootLoader、SimpleOS组成,用来模拟一个操作系统的启动。

OpenMips CPU模块连接图

(0)

相关推荐

  • 每秒出货842个芯片,Arm超过其它四大架构总和

    作为最受欢迎的微处理器体系结构,Arm为每年销售的数百亿设备提供动力.该公司称,仅在2020年第四季度,Arm生态系统使用了创纪录的67亿个基于Arm的芯片,其生产速度达到每秒842个芯片.这意味着A ...

  • 避开 CPU 漏洞事件的龙芯究竟是何方神圣?

    2018 年爆发的英特尔处理器漏洞事件可以说是近年芯片领域爆发的最严重的安全事故.除了英特尔,AMD.高通.三星.苹果等多家公司都受到不同程度的影响. 不过,在这次的 CPU 漏洞事件中,却有一家国产 ...

  • 被苹果抛弃的GPU公司要卖掉MIPS处理器,龙芯会接手吗?

    做苹果的供应商也存在很大风险,苹果需要你的时候你是个宝,一旦苹果抛弃你,公司营收.股价都会一股脑暴跌.最近享受这个"待遇"的就是Imagination Technologies(以 ...

  • ARM和MIPS架构

    ARM体系 1.历史 1978年12月5日,物理学家赫尔曼·豪泽(Hermann Hauser)和工程师Chris Curry,在英国剑桥创办了CPU公司(Cambridge Processing U ...

  • (4条消息) 10分钟学会使用YOLO及Opencv实现目标检测(上)|附源码

    计算机视觉领域中,目标检测一直是工业应用上比较热门且成熟的应用领域,比如人脸识别.行人检测等,国内的旷视科技.商汤科技等公司在该领域占据行业领先地位.相对于图像分类任务而言,目标检测会更加复杂一些,不 ...

  • 架构师必须掌握的 10 条设计原则

    整理于网络 1.遵循单一职责原则 函数是程序员的工具中最重要的抽象形式.它们能更多地被重复使用,你需要编写的代码就越少,代码也因此变得更可靠.较小的函数遵循单一职责原则更有可能被重复使用. 2.尽量减 ...

  • 英伟达染指CPU:采用ARM架构,相比于x86架构性能提升10倍之多!|arm|芯片|x86|英伟达...

    众所周知,全球芯片出现了"短缺"的现象,这也导致众多电子产品的价格有所上涨,从这儿也可以看出芯片的重要性,所以很多公司也都希望能够在芯片方面有所发展,但是毕竟这块的技术门槛还是比较 ...

  • 时尚买手必知10大设计院校

    一.英国: 1.中央圣马丁 时尚学院中最高产的要数位于伦敦市中心的中央圣马丁艺术与设计学院.作为伦敦艺术大学的六所学院之一,中央圣马丁的名誉远超过了伦敦艺术大学.毕业于这里的时装设计师多不胜数:Ale ...

  • 家里小又乱不怪你,都怪装修时没做好这10处设计!

    要问小户型设计最让人佩服的地方,不得不投空间利用一票!收纳做得好,小家显大几倍不是问题,居住完全没烦恼. 今天小维就给大家安利值得做的10种嵌入式设计,整体性强,简洁大方,所有户型都通用哦!赶紧来学几 ...

  • 装修「显高级」的10个设计技巧,大小户型都适用

    原创齐家网2021-04-15 11:21:59 有些人认为"高级感"是房子面积要大,结果大房子却装出了土老板的品味.有些人认为"高级感"是贵,于是搬进各种高档 ...

  • 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素

    本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助你写出能让人收藏点赞的设计文档. 技术架构评审一百问 架构评审或技术方案评审的价值在于集众人的 ...

  • 25年经验关卡设计师:开放世界游戏如何设计?

    ​随着手游进入精品化时代,开放世界游戏成为越来越多开发商和玩家的"心头所好".比如去年年底,米哈游的<原神>发布之后迅速在多个平台爆红,手游收入半年就突破10亿美元,创 ...

  • 10个设计原则,让小卫生间装出豪宅的大气感!

    我们都梦想有一个宽敞的卫浴间,最好是独立的浴缸和淋浴,两个水槽,甚至还有一个舒适的躺椅可以在浸泡的时候休息...... 那么,为了我们共同的梦想,给你10个设计原则,可以部分或全部使用这些技巧让你的卫 ...