从零开始设计RISC |
您所在的位置:网站首页 › 处理器i711700h3070怎样 › 从零开始设计RISC |
系列文章目录
(一)从零开始设计RISC-V处理器——指令系统 (二)从零开始设计RISC-V处理器——单周期处理器的设计 (三)从零开始设计RISC-V处理器——单周期处理器的仿真 (四)从零开始设计RISC-V处理器——ALU的优化 (五)从零开始设计RISC-V处理器——五级流水线之数据通路的设计 (六)从零开始设计RISC-V处理器——五级流水线之控制器的设计 (七)从零开始设计RISC-V处理器——五级流水线之数据冒险 (八)从零开始设计RISC-V处理器——五级流水线之控制冒险 (九)从零开始设计RISC-V处理器——五级流水线之分支计算前移 (十)从零开始设计RISC-V处理器——五级流水线之静态预测 文章目录 系列文章目录前言一、U-type测试二、跳转指令测试三、访存指令测试四、算数运算指令测试五、逻辑运算指令测试六、移位运算指令测试七、小于置一指令测试总结 前言上一篇文章介绍了单周期CPU的实现,本篇文章进行功能仿真 (目前单周期处理器代码已经更新完成,点击链接直达:基于RISC-V指令集的单周期处理器的设计) 一、U-type测试包含lui,auipc两条指令。 测试代码如下: lui x1,0xfffff addi x2,x0,0xff slli x3,x2,4 addi x3,x3,0xf add x4,x3,x1 auipc x5,0xfff汇编器执行结果如下: 包含jal,jalr,beq,bne,blt,bge,bltu,bgeu共8条指令。 测试代码如下: addi x1,x0,1 addi x2,x0,2 jal x31,label1 addi x3,x0,3 label1: addi x4,x0,4 add x5,x2,x2 beq x4,x5,label2 addi x6,x0,6 label2: bne x4,x5,label3 addi x7,x0,7 label3: bne x7,x6,label4 addi x8,x0,8 label4: addi x9,x0,0x30 jalr x10,x9,12 addi x11,x0,11 addi x12,x0,-12 addi x13,x0,-13 blt x13,x12,label5 addi x14,x0,-14 label5: bltu x13,x12,label6 addi x15,x0,-15 label6: bltu x12,x13,label7 addi x16,x0,-16 label7: bge x12,x13,label8 addi x17,x0,-17 label8: bge x1,x2,label9 addi x18,x0,-18 label9: bgeu x12,x13,label10 addi x19,x0,-19 label10: bgeu x13,x12,label11 addi x20,x0,-20 label11: addi x21,x0,-20 addi x22,x0,-20 bge x21,x22,label12 addi x23,x0,-23 label12: addi x24,x0,-24以上代码在编写的过程中,在跳转指令与跳转目标地址的指令之间都至少插入了一条指令,目的是为了体现跳转与否。 汇编器执行结果如下: CPU的仿真波形如下: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |