CS代考 RV32I中的部分指令

PowerPoint Presentation

融会贯通计算机组成与设计课程所教授的知识,通过对知识的综合应用,加深对CPU系统各模块的工作原理及相互联系的认识。

Copyright By PowCoder代写 加微信 powcoder

学习采用EDA(Electronic Design Automation)技术设计单周期RISC-V CPU的技术与方法。

培养科学研究的独立工作能力,获得CPU设计和仿真的实践和经验。

用硬件描述语言(Verilog)设计单周期RISC-V CPU,支持RV32I中的部分指令
用仿真软件Modelsim对有数据冒险和控制冒险的汇编程序进行仿真

Tools/Verilog教程
计算机原理与设计:Verilog HDL版
是MIPS32 CPU的实现,类似且为大量Verilog代码

RV32I:32位地址空间整数指令
RV64I:64位地址空间整数指令
RV32E:RV32I的子集,更少的整数寄存器,用以支持微小控制器
RV128I:128位地址空间整数指令
还有很多extensions
Standard, reserved, and custom
E.g. the standard integer multiplication and division extension is named “M”
The standard atomic instruction extension, denoted by “A”
The standard single-precision floating-point extension, denoted by “F”
The standard double-precision floating-point extension, denoted by “D”
The standard “C” compressed instruction extension provides narrower 16-bit forms of common instructions

Although 64-bit address spaces are a requirement for larger systems, we believe 32-bit address spaces will remain adequate for many embedded and client devices for decades to come and will be desirable to lower memory traffic and energy consumption. In addition, 32-bit address spaces are sufficient for educational purposes.
标准的,保留的,自定义的

I1={LUI, AUIPC}
I2={ADDI, XORI, ANDI, SLLI, SLTI, SLTIU}
I3={ADD, XOR, AND, SLL, SLT, SLTU}
I4={JAL, JALR, BEQ, BLT, BLTU}
I5={LW, SW}

See to The RISC-V Instruction Set Manual: Volume I: Unprivileged ISA “Chapter 24 RV32/64G Instruction Set Listings”
RISC-V手册(英文、中文)中附录A也有说明

功能 代码测试内容 分值
ModelSim仿真测试通过 S1={LUI, AUIPC, ADDI} 15
S2={XORI, ANDI, SLLI} 10
S3={ADD, XOR, AND, SLL} 15
S4={SLT, SLTU, SLTI, SLTIU} 15
S5={JAL, JALR} 15
S6={BEQ, BLT, BLTU} 15
S7={LW, SW} 15

考试后一个月完成实验报告

工具使用:RISC-V编译器
汇编代码RISC-V机器代码,参考执行结果

工具使用:ModelSim
ModelSim教程
modelsim详细使用教程.pdf
modelsim_tutorial_v10.1c.pdf
ModelSim使用的是绝对路径,而不是相对路径。如果想直接使用提供的源文件,需要点击File->Change Directory,更改路径到你的目录位置,再打开工程文件
推荐重新创建工程文件,减少不必要的麻烦

为保证在希冀平台上能正确评测,要保证regfile.v和testbench文件中的一些格式不变(见后两页说明)
需记录下实验中遇到的问题是怎么解决的,并体现在实验报告中

如果要修改regfile.v无比保持模块接口不变
文件内如下语句务必保持不变!

testbench文件
testbench文件中的打印语句可以用于调试,但是正式提交评测时会使用服务器上的tb文件,其中是没有这些打印语句的
务必保持tb文件中CPU模块的模块名和引脚名不变
xgriscv:RISC-V CPU模块;clk:时钟;rstn:reset;pc:指令的pc
其他文件中的模块和引脚名可自定义

指令内存的存放指令的模块名也不能变

testbench文件中下述语句是用来让仿真在执行完后停止,需要根据每个测试程序的大小进行调整,设置为最后一条指令的地址即可

/docProps/thumbnail.jpeg

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com