江苏大学:RISC-V CPU设计实验(讲义)

RISC-VCPU设计实验实验目的1.熟悉RISC-V指令系统,掌握汇编指令翻译成机器指令:2.理解单周期RISC-VCPU数据通路,能够用HDL设计实现:3.掌握单周期CPU控制器的设计方法。参考设计实验材料中(RISCVSCO.zip)给出了图1电路的HDL代码,它仅支持addird,rsl.imm指令。RegwrieWoWERD1WA寄存器堆RAT指令存储器RA2RD立即数生成ImmType图1仅支持addird.rs1.imm指令的数据通路示例阅读实验材料中给出示例电路的HDL代码,编译后在实验系统上运行。注意,要使用Project文件夹内的工程文件,不能用以前实验的工程文件。关于参考设计代码的更详细介绍,请看辅导视频。任务要求及主要步骤1.预习阅读、理解参考设计。在实验平台上运行参考设计,熟悉CPU实验界面的使用。完成测试题。2.支持I型运算指令(1)增加ALU模块实验材料给出的参考代码只能进行加法运算,代码如下。assign aluOut = regReadDatal + alu yi用自已设计ALU模块替换上面这行代码,使得CPU除了addi指令外,还可以执行andi、ori和xori指令。slti和sltiu指令可以暂不支持,留待以后扩展
RISC-V CPU 设计实验 实验目的 1. 熟悉 RISC-V 指令系统,掌握汇编指令翻译成机器指令; 2. 理解单周期 RISC-V CPU 数据通路,能够用 HDL 设计实现; 3. 掌握单周期 CPU 控制器的设计方法。 参考设计 实验材料中(RISCV_SC0.zip)给出了图 1 电路的 HDL 代码,它仅支持 addi rd,rs1,imm 指令。 图 1 仅支持 addi rd,rs1,imm 指令的数据通路示例 阅读实验材料中给出示例电路的 HDL 代码,编译后在实验系统上运行。注意,要使用 Project 文件夹内的工程文件,不能用以前实验的工程文件。 关于参考设计代码的更详细介绍,请看辅导视频。 任务要求及主要步骤 1. 预习 阅读、理解参考设计。 在实验平台上运行参考设计,熟悉 CPU 实验界面的使用。 完成测试题。 2. 支持Ⅰ型运算指令 (1)增加 ALU 模块 实验材料给出的参考代码只能进行加法运算,代码如下。 assign aluOut = regReadData1 + alu_y; 用自己设计 ALU 模块替换上面这行代码,使得 CPU 除了 addi 指令外,还可以执行 andi、 ori 和 xori 指令。slti 和 sltiu 指令可以暂不支持,留待以后扩展

单周期RISC-VCPU(2)修改MainDecoder模块增加I型运算指令译码。(3)增加AluDecoder模块产生ALUctrl控制信号。(4)修改CPU模块在数据通路中,实例化ALU模块、AluDecoder,并将ALUctrl与ALU模块连接。RegWrteWD WE RD15舒存器堆指令存储器立即数生成ALUctrlImmType(5)修改虚拟面板用实验材料中提供的数据通路图替换虚拟面板背景图,并增加ALUctrl的显示。调试成功后,在实验平台提交电路文件和虚拟面板文件。(6)在实验平台验证设计,提交验证成功的电路文件和虚拟面板文件。3.添加数据存储器并实现store指令(1)修改MainDecoder模块,增加sw指令译码及MemWrite控制信号。(2)修改AluDecoder模块,增加ALUop=00时的译码。(3)修改ImmGen模块,增加S型立即数的生成。(4)修改CPU模块添加数据存储器:连接增加的控制信号:增加调试观察信号。RegwiteWD WERD1NADO寄存器地BA指令存储器RA2RD2DC数据存储器WE立即数生成ALUctrtMemWriteImmType(5)修改虚拟面板用实验材料中提供的数据通路图替换虚拟面板背景图,并增加调试观察信号的显示。(6)在实验平台验证设计,提交验证成功的电路文件和虚拟面板文件。实现load指令4.(1)修改MainDecoder模块,增加lw指令译码及MemToReg控制信号。2江苏大学计算机学院
单周期 RISC-V CPU 2 江苏大学计算机学院 (2)修改 MainDecoder 模块 增加 I 型运算指令译码。 (3)增加 AluDecoder 模块 产生 ALUctrl 控制信号。 (4)修改 CPU 模块 在数据通路中,实例化 ALU 模块、AluDecoder,并将 ALUctrl 与 ALU 模块连接。 (5)修改虚拟面板 用实验材料中提供的数据通路图替换虚拟面板背景图,并增加 ALUctrl 的显示。 调试成功后,在实验平台提交电路文件和虚拟面板文件。 (6)在实验平台验证设计,提交验证成功的电路文件和虚拟面板文件。 3. 添加数据存储器并实现 store 指令 (1)修改 MainDecoder 模块,增加 sw 指令译码及 MemWrite 控制信号。 (2)修改 AluDecoder 模块,增加 ALUop=00 时的译码。 (3)修改 ImmGen 模块,增加 S 型立即数的生成。 (4)修改 CPU 模块 添加数据存储器;连接增加的控制信号;增加调试观察信号。 (5)修改虚拟面板 用实验材料中提供的数据通路图替换虚拟面板背景图,并增加调试观察信号的显示。 (6)在实验平台验证设计,提交验证成功的电路文件和虚拟面板文件。 4. 实现 load 指令 (1)修改 MainDecoder 模块,增加 lw 指令译码及 MemToReg 控制信号

实验指导书(2)修改CPU模块添加多路器:连接增加的控制信号:增加调试观察信号。RegWiteWDWE RD1NADO寄存器堆RAT指令存储器RA2RD2D数据存储器WEMemToReg立即数生成ALUctrlMemWriteImmType(3)修改虚拟面板用实验材料中提供的数据通路图替换虚拟面板背景图,并增加调试观察信号的显示。(4)在实验平台验证设计,提交验证成功的电路文件和虚拟面板文件。实现R型运算指令5.(1)修改MainDecoder模块,增加R型运算指令译码及ImmToALU控制信号。可以暂不支持移位指令,留待以后扩充。(2)修改AluDecoder模块,增加ALUop=10时的译码。(3)修改CPU模块添加多路器;连接增加的控制信号;增加调试观察信号。RegWtiteWDWERD1ero2WADC寄存器堆RAT指令存储器RA2RDDIDC数据存储器ImmToALUMemToRegWE立即数生成ALUctrfMemWriteImmType(4)修改虚拟面板用实验材料中提供的数据通路图替换虚拟面板背景图,并增加调试观察信号的显示。(5)在实验平台验证设计,提交验证成功的电路文件和虚拟面板文件。实现分支指令6.(1)修改MainDecoder模块,增加分支指令译码及相关控制信号。可以仅支持beq指令,其他分支指令留待以后扩充。(2)修改AluDecoder模块,增加ALUop=01时的译码。(3)修改ImmGen模块,增加B型立即数的生成。(4)修改CPU模块添加多路器:连接增加的控制信号:增加调试观察信号。3江苏大学计算机学院
实验指导书 江苏大学计算机学院 3 (2)修改 CPU 模块 添加多路器;连接增加的控制信号;增加调试观察信号。 (3)修改虚拟面板 用实验材料中提供的数据通路图替换虚拟面板背景图,并增加调试观察信号的显示。 (4)在实验平台验证设计,提交验证成功的电路文件和虚拟面板文件。 5. 实现 R 型运算指令 (1)修改 MainDecoder 模块,增加 R 型运算指令译码及 ImmToALU 控制信号。可以暂 不支持移位指令,留待以后扩充。 (2)修改 AluDecoder 模块,增加 ALUop=10 时的译码。 (3)修改 CPU 模块 添加多路器;连接增加的控制信号;增加调试观察信号。 (4)修改虚拟面板 用实验材料中提供的数据通路图替换虚拟面板背景图,并增加调试观察信号的显示。 (5)在实验平台验证设计,提交验证成功的电路文件和虚拟面板文件。 6. 实现分支指令 (1)修改 MainDecoder 模块,增加分支指令译码及相关控制信号。可以仅支持 beq 指 令,其他分支指令留待以后扩充。 (2)修改 AluDecoder 模块,增加 ALUop=01 时的译码。 (3)修改 ImmGen 模块,增加 B 型立即数的生成。 (4)修改 CPU 模块 添加多路器;连接增加的控制信号;增加调试观察信号

单周期RISC-VCPU修改以下模块以支持beg运算指令。可以仅支持beg指令,其他分支指令留待以后扩充。RegWriteWERDWDWADC寄存器堆RA指令存储器RAOrRDDC数据PCjump存储器mmToALUWEMemToReg立即数生成ALUctrlMemWiteImmType(5)用实验材料提供的虚拟面板证设计,提交验证成功的电路文件。7.支持更多指令在完成前面设计任务的基础上,选择完成以下内容的一部分,以实现更多的指令。可在两个方面扩展。(1)完整实现上面的5类指令在前面的设计中,为了尽快地掌握设计思路和方法,只是选择了其中一部分指令。现在可以继续实现尚未实现的指令,例如:R类/I类:移位运算指令:比较指令;B类:bne,blt,bge等分支指令。(2)扩展支持新的指令如luiauipc等U类指令,jal等J类指令。【提示】增加这些指令,需要修改数据通路。在实验平台验证设计,提交实验过程记录,以及验证成功的电路文件和虚拟面板文件。实现流水线RISC-V8.实现支持5条指令的五级流水线RISC-V。取指含 (IF)译码/读数据(ID)ALU运算(EX)存链(MEM)导商存器(WB)ZeroRAIRDWA星寄存器推高精(读满口)MRA2RD三我价食立即数生成含4江苏大学计算机学院
单周期 RISC-V CPU 4 江苏大学计算机学院 修改以下模块以支持 beq 运算指令。可以仅支持 beq 指令,其他分支指令留待以后扩充。 (5)用实验材料提供的虚拟面板证设计,提交验证成功的电路文件。 7. 支持更多指令 在完成前面设计任务的基础上,选择完成以下内容的一部分,以实现更多的指令。可在 两个方面扩展。 (1)完整实现上面的 5 类指令 在前面的设计中,为了尽快地掌握设计思路和方法,只是选择了其中一部分指令。现在 可以继续实现尚未实现的指令,例如: R 类/I 类:移位运算指令;比较指令; B 类:bne, blt, bge 等分支指令。 (2)扩展支持新的指令 如 lui, auipc 等 U 类指令,jal 等 J 类指令。 【提示】增加这些指令,需要修改数据通路。 在实验平台验证设计,提交实验过程记录,以及验证成功的电路文件和虚拟面板文件。 8. 实现流水线 RISC-V 实现支持 5 条指令的五级流水线 RISC-V

实验指导书9.流水线RISC-V数据冲突的旁路设计实现流水线数据相关的检测,修改控制器的设计产生旁路控制信号,修改数据路通增加旁路通道解决数据冲突。修改虚拟面板,在实验平台验证设计,提交实验过程记录,以及验证成功的电路文件和虚拟面板文件。10.总结提交设计报告。5江苏大学计算机学院
实验指导书 江苏大学计算机学院 5 9. 流水线 RISC-V 数据冲突的旁路设计 实现流水线数据相关的检测,修改控制器的设计产生旁路控制信号,修改数据路通增加 旁路通道解决数据冲突。 修改虚拟面板,在实验平台验证设计,提交实验过程记录,以及验证成功的电路文件和 虚拟面板文件。 10. 总结 提交设计报告
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 黄河水利职业技术大学:《电商网站建设与优化》课程思政教案(教学设计)PHP动态网站开发.pdf
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第09章 SPI与I2C串行总线.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第08章 USART串行通信.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第07章 模数转换器(ADC).ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第06章 定时器.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第05章 通用输入输出接口GPIO.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第04章 中断系统.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第03章 STM32微控制器的开发平台.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第03章 嵌入式开发环境的搭建.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第02章 STM32微控制器.pptx
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第01章 绪论.ppt
- 沈阳师范大学:《单片机原理与接口技术应用》课程教学资源(PPT课件)第10章 DMA控制器.ppt
- 《单片机原理与接口技术应用》课程教学资源(文献资料)普中F103-Z400开发板原理图.pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)从ARM9到A15手机处理器架构进化历程.doc
- 《单片机原理与接口技术应用》课程教学资源(文献资料)AN2606 应用笔记(STM32微控制器系统存储器自举模式).pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)STM32F10xxx Cortex-M3编程手册(PM0056 Programming manual STM32F10xxx/20xxx/21xxx/L1xxxx Cortex®-M3 programming manual).pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)Cortex-M3权威指南中文.pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)Cortex-M3技术参考手册(共十七章,含附录).pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)STM32F103xCDE数据手册(英文,第5版).pdf
- 《单片机原理与接口技术应用》课程教学资源(文献资料)STM32F103xCDE数据手册(中文,第5版).pdf
- 《计算机导论》课程教学资源(授课教案,教材讲义,共六章).pdf
- 长春大学:旅游学院:《Visual FoxPro程序设计》课程教学资源(授课教案,共七章).pdf
- 《程序设计》课程教学资源(书籍文献)Google开源项目风格指南(中文版).pdf
- 《程序设计》课程教学资源(实验指导)C++语言习题集(南京航空航天大学:陈哲).pdf
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)01 计算机和程序.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)02 常量和变量.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)03 运算符和表达式.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)04 控制流.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)05 函数.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)06 数组.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)07 记录类型.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)08 文件.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,一)09 编译预处理和多文件项目.pptx
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 1-C++程序设计基础.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 2-文件操作.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 3-类的基础部分.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 4-类的高级部分.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 5-继承多态和虚函数.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 6-异常处理.ppt
- 南京航空航天大学:《程序设计》课程教学课件(PPT讲稿,二)Chapter 7-模板.ppt
