没有合适的资源?快使用搜索试试~ 我知道了~
计算机组成原理实验报告,35条RISC-V指令

温馨提示


试读
56页
计算机组成原理综合实验,计算机组成原理期末大作业,设计完成了35条RISC-V指令,完成了单周期CPU的设计,开发工具采用Vivado、语言采用Verilog HDL、FPGA采用PYNQ访问PYNQ云平台使用。
资源详情
资源评论
资源推荐

1
《 计 算 机 组 成 与 系 统 结 构 》
单 周 期 CPU 设 计
实 验 报 告
二〇二零年十二

2
目录
一、题目要求 ......................................................3
实验说明: ....................................................3
考核内容: ....................................................3
二、实验原理 ......................................................4
2.1 指令执行步骤 ..............................................4
三、实验成果概述 ..................................................6
四、实验环境及工具 ................................................7
五、Vivado 开发设计 ...............................................7
5.1 实现指令 ..................................................7
5.2 模块设计 ..................................................8
5.2.1 地址取址.............................................8
5.2.2 指令译码.............................................8
5.2.3 寄存器组.............................................9
5.2.4 ALU.................................................10
5.2.5 存储器..............................................19
5.2.6 CPU.................................................20
5.3.1 激励文件的编写......................................20
5.3.2 代码仿真波形分析(部分)............................21
六、在 PYNQ-z1 开发板上的验证 .....................................39
6.3 结果分析(部分) .........................................43

3
七、基于 RISC-V 基本整指令集的简单算法设计 ........................44
7.1 冒泡排序算法 .............................................44
7.1.1 算法描述............................................44
7.1.2 C++描述.............................................44
7.1.3 RTL 描述及解释 ......................................45
7.1.4 RISC-V 指令 .........................................48
7.2 二分查找法 ...............................................49
7.2.1 算法描述............................................49
7.2.2 C++算法描述.........................................49
7.2.3 RTL 描述及解释 ......................................50
7.2.4 RISC-V 指令 .........................................52
八、实验体会 .....................................................52

4
一、题目要求
实验说明:实验指导书介绍了平台使用、交互程序编写等实验所需内容。附
件 1 提供了 10 条指令的 CPU 示例程序,仅供参考。附件 2 提供了时序逻辑及其
Python 交互程序的编写示例。
考核内容:
1. 在教材第五章“处理器”介绍的单周期非流水线的相关理论内容指导
下,完成 N 条指令的单周期处理器实现。
2. 开发工具采用 Vivado、语言采用 Verilog HDL 或 VHDL、FPGA 采用
PYNQ,具体可访问 PYNQ 云平台使用。
3. 提交材料:
a) 相关源代码:实现 CPU 的 Verilog/VHDL、测试所用的 Python
程序
b) 实验报告(包含:实验说明、设计方案、运行结果及分析,实
验心得)
二、实验原理
单周期 CPU 指的是一条指令的执行在一个时钟周期内完成,然后开始下
一条指令的执行,即一条指令用一个时钟周期完成。电平从低到高变化的瞬
间称为时钟上升沿,两个相邻时钟上升沿之间的时间间隔称为一个时钟周
期。
2.1 指令执行步骤
CPU 在处理指令时,一般需要经过以下几个步骤:
(1) 取指令(IF):根据程序计数器 PC 中的指令地址,从存储器中取出一条指
令,同时,

5
PC 根据指令字长度自动递增产生下一条指令所需要的指令地址,但遇到“地
址转移”指令时,则控制器把“转移地址”送入 PC,当然得到的“地址”需要做
些变换才送入 PC。
(2) 指令译码(ID):对取指令操作中得到的指令进行分析并译码,确定这条指
令需要完成的操作,从而产生相应的操作控制信号,用于驱动执行状态中的各种
操作。
(3) 指令执行(EXE):根据指令译码得到的操作控制信号,具体地执行指令动
作,然后转移到结果写回状态。
(4) 存储器访问(MEM):所有需要访问存储器的操作都将在这个步骤中执行,
该步骤给出存储器的数据地址,把数据写入到存储器中数据地址所指定的存储单
元或者从存储器中得到数据地址单元中的数据。
(5) 结果写回(WB):指令执行的结果或者访问存储器中得到的数据写回相应的
目的寄存器中。
单周期 CPU,是在一个时钟周期内完成这五个阶段的处理。
取指令
译码
执行
存储器访问
结果写回
图
1
单周期
CPU
指令处理过程
剩余55页未读,继续阅读











啊噗呲咔
- 粉丝: 127
- 资源: 27
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制

评论1