马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 leishangwen 于 2013-11-3 13:18 编辑
为了感谢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
今天是第一天,请大家下载附件查看。
10天实现处理器-Day1.zip
(476.86 KB, 下载次数: 1439 )
|