1、主要内容n一 OpenMIPS项目简介n二 OpenMIPS基本情况n三 OpenMIPS教学版主要特点n四 OpenMIPS教学版的文件组织n五 OpenMIPS最小SOPCn六 OpenMIPS测试环境n七 测试举例n八 下一步计划主要内容n一 OpenMIPS项目简介n二 OpenMIPS基本情况n三 OpenMIPS教学版主要特点n四 OpenMIPS教学版的文件组织n五 OpenMIPS最小SOPCn六 OpenMIPS测试环境n七 测试举例n八 下一步计划一 OpenMIPS项目简介nOpenMIPS开始于2013年8月,目的是开发一款32位、兼容MIPS32指令集的开源软核处理器
2、,便于老师教学、学生体会理解计算机体系结构课程的相关知识,同时也可以做实际用途。nOpenMIPS将坚持自由软件的理念,保持开源的形式,同时采用商业友好的LGPL授权。n并且分为两个版本:教学版、实践版,每个版本都使用VHDL、Verilog HDL两种语言编写,这样实际是有四个版本一 OpenMIPS项目简介nOpenMIPS_VHDL_study_v1.0 教学版(VHDL)1.0nOpenMIPS_Verilog_study_v1.0 教学版(Verilog)1.0nOpenMIPS_VHDL_practice_v1.0 实践版(VDHL)1.0nOpenMIPS_Verilog_pra
3、ctice_v1.0 实践版(Verilog)1.0一 OpenMIPS项目简介n教学版的主要设想是尽量简单,符合教科书n实践版的主要设想是使OpenMIPS成为一个实际可用的处理器,能够下载到FPGA上,运行实际有用的程序 一 OpenMIPS项目简介一 OpenMIPS项目简介OpenMIPS是采用具有哈佛结构的32位标量处理器,兼容MIPS32体系结构,这样可以使用现有的MIPS编译环境。具有以下特点:n五级整数流水线,分别是:取指、译码、执行、访存、回写n哈佛结构,分开的指令、数据接口n32个32位整数寄存器n大端模式n向量化异常处理,支持精确异常处理n8个外部中断一 OpenMIPS
4、项目简介n32bit数据、地址总线宽度n单周期乘法n支持延迟转移n兼容MIPS32体系结构,支持MIPS32指令集中的所有整数指令n大多数指令可以在一个时钟周期内完成n可综合n兼容wishbone b2的指令、数据总线接口(只有实践版提供)nLGPL开源nVHDL、Verilog HDL两种语言版本主要内容n一 OpenMIPS项目简介n二 OpenMIPS基本情况n三 OpenMIPS教学版主要特点n四 OpenMIPS教学版的文件组织n五 OpenMIPS最小SOPCn六 OpenMIPS测试环境n七 测试举例n八 下一步计划二 OpenMIPS基本情况n支持的指令情况n流水线情况n具有的
5、寄存器情况 二 OpenMIPS基本情况n支持的指令情况n流水线情况n具有的寄存器情况 二 OpenMIPS基本情况OpenMIPS支持MIPS32的所有整数指令n逻辑操作指令AND、ANDI、LUI、NOR、OR、ORI、XOR、XORIn移位操作指令SLL、SLLV、SRA、SRAV、SRL、SRLVn算术操作指令ADD、ADDI、ADDIU、ADDU、CLO、CLZ、SLT、SLTI、SLTIU、SLTU、SUB、SUBU、MADD、MADDU、MSUB、MSUBU、MUL、MULT、MULTU、DIV、DIVUn移动操作指令MFHI、MFLO、MOVN、MOVZ、MTHI、MTLO二
6、OpenMIPS基本情况n控制指令NOP、SSNOPn跳转指令J、JAL、JALR、JRn分支指令B、BAL、BEQ、BGEZ、BGEZAL、BGTZ、BLEZ、BLTZ、BLTZAL、BNEn加载类指令LB、LBU、LH、LHU、LL、LW、LWL、LWRn存储类指令SB、SC、SH、SW、SWL、SWRn协处理器访问指令MFC0、MTC0n自陷指令SYSCALL、TEQ、TEQI、TGE、TGEI、TGEIU、TGEU、TLT、TLTI、TLTIU、TLTU、TNE、TNEIn异常返回指令ERET二 OpenMIPS基本情况n支持的指令情况n流水线情况n具有的寄存器情况 二 OpenMIP
7、S基本情况OpenMIPS具有五级流水线,在各个阶段完成的工作如下:n取指阶段:从指令存储器取得指令,修改pc的值n译码阶段:指令译码,根据译码结果取得指令执行需要的寄存器的值、立即数的值,并判断是否是多周期指令n执行阶段:判断并解决数据相关问题,执行指令操作,判断是否转移n访存阶段:如果是加载存储指令,那么读写数据存储器n回写阶段:写目的寄存器。判断是否有异常发生二 OpenMIPS基本情况n支持的指令情况n流水线情况n具有的寄存器情况 二 OpenMIPS基本情况nOpenMIPS支持32个32位整数寄存器n还支持协处理器CP0中的如下寄存器:nCOUNTnCOMPAREnSTATUSnC
8、AUSEnEPCnCONFIGnPrIdnBadVAddrnErrorEPC。主要内容n一 OpenMIPS项目简介n二 OpenMIPS基本情况n三 OpenMIPS教学版主要特点n四 OpenMIPS教学版的文件组织n五 OpenMIPS最小SOPCn六 OpenMIPS测试环境n七 测试举例n八 下一步计划三 OpenMIPS教学版主要特点三 OpenMIPS教学版主要特点主要内容n一 OpenMIPS项目简介n二 OpenMIPS基本情况n三 OpenMIPS教学版主要特点n四 OpenMIPS教学版的文件组织n五 OpenMIPS最小SOPCn六 OpenMIPS测试环境n七 测试举
9、例n八 下一步计划四 OpenMIPS教学版的文件组织nrtln所有OpenMIPS的源代码文件在该文件夹下,包括n流水线文件iu.vhdn除法模块div.vhdn寄存器文件Regfile.vhdn顶层文件OpenMIPS.vhdn宏定义文件stdlib.vhd四 OpenMIPS教学版的文件组织nmin_sopcn包括如下文件:n指令存储器imem.vhdn数据存储器dmem.vhdn以及一个用来测试OpenMIPS的最小SOPC的顶层文件OpenMIPS_min_sopc.vhd四 OpenMIPS教学版的文件组织ntestbenchn包括testbench测试文件OpenMIPS_min
10、_sopc_tb.vhd四 OpenMIPS教学版的文件组织ntooln包括一个小工具Bin2Mem.exe,该工具用来将GCC编译得到的二进制文件进行格式变化得到inst_rom.data文件,使用后者初始化OpenMIPS_min_sopc中的指令存储器imem,以便进行测试四 OpenMIPS教学版的文件组织n10_Days_make_OpenMIPSn在之前发布过一些文档介绍如何使用10天时间实现处理器OpenMIPS,本文件夹下的内容是相关资料的整理,包含一个文档10天实现处理器OpenMIPS成长记,以及与之对应的每一天的OpenMIPS代码四 OpenMIPS教学版的文件组织nd
11、ocn包含一些文档,具体有:nMIPS32指令集nMIPS Architecture for Programmers Volume IIInOpenMIPS快速入门手册四 OpenMIPS教学版的文件组织nasm_testn包括所有的测试例程,其组织方式是参照10天实现处理器OpenMIPS成长记一文,按照“天”来组织,比如Day2文件夹中存放的是10天实现处理器OpenMIPS成长记一文中第二天对应的测试例程,当然所有的测试例程都可以在最终的OpenMIPS中进行测试主要内容n一 OpenMIPS项目简介n二 OpenMIPS基本情况n三 OpenMIPS教学版主要特点n四 OpenMIPS
12、教学版的文件组织n五 OpenMIPS最小SOPCn六 OpenMIPS测试环境n七 测试举例n八 下一步计划五 OpenMIPS最小SOPC主要内容n一 OpenMIPS项目简介n二 OpenMIPS基本情况n三 OpenMIPS教学版主要特点n四 OpenMIPS教学版的文件组织n五 OpenMIPS最小SOPCn六 OpenMIPS测试环境n七 测试举例n八 下一步计划六 OpenMIPS测试环境l GCCl Ubuntu虚拟机l ModelSim 主要内容n一 OpenMIPS项目简介n二 OpenMIPS基本情况n三 OpenMIPS教学版主要特点n四 OpenMIPS教学版的文件组
13、织n五 OpenMIPS最小SOPCn六 OpenMIPS测试环境n七 测试举例n八 下一步计划七 测试举例第一步:建立ModelSim工程 第二步:编译测试程序得到inst_rom.data(以Day3_1、Day7_1、Day10_3为例)第三步:仿真 主要内容n一 OpenMIPS项目简介n二 OpenMIPS基本情况n三 OpenMIPS教学版主要特点n四 OpenMIPS教学版的文件组织n五 OpenMIPS最小SOPCn六 OpenMIPS测试环境n七 测试举例n八 下一步计划八 下一步的计划 按照计划,将在2013年12月31日左右发布OpenMIPS实践版OpenMIPS_VHDL_practice_v1.0,敬请关注。步步惊芯软核处理器内部设计分析介绍了开源软核处理器OR1200的内部设计,分析了其代码,目前在各大网上书店均有销售,请各位朋友多多支持自己动手写CPU使用Verilog HDL设计实现了一款兼容MIPS32指令集架构的处理器OpenMIPS。OpenMIPS处理器具有两个版本,分别是教学版和实践版。教学版的主要设计思想是尽量简单,处理器的运行情况比较理想化,与教科书相似,便于使用其进行教学、学术研究和讨论,也有助于学生理解课堂上讲授的知识。实践版的设计目标是能完成特定功能,发挥实际作用。谢谢