实验四 取指令并完成译码操作的实验
4.1实验目的
(1)掌握单周期CPU执行指令的过程。
(2)掌握指令译码和各个控制信号的作用和生成过程。
4.2实验设备
PC机一台,Digilent Nexys 4TM开发板,Xilinx Vivado开发套件。
4.3实验原理
计算机CPU执行指令的过程主要分为7个步骤:
(1)取指:根据程序计数器(PC)从内存中取指令,PC的值为该指令在内(2)计算PC的值:能自动计算PC的值以确定下一条指令的地址; (3) 译码:对指令操作码进行译码,以产生控制信号来控制指令进行相应(4)取操作数:根据指令字段的内容,选择从存储器读取数据或直接从寄存器取数;
(5)算术/逻辑运算:根据译码结果,进行算术/逻辑运算或者计算操作数的(6)结果写回:根据指令的要求对运算(处理)后的数据进行写回操作,(7)时钟控制:通过时钟信号控制指令操作的周期。
本次实验主要模拟CPU取指令和译码阶段。实验的原理图如图4.1所示: 地址;
如写存储器或写寄存器;
存中存放的地址;
的操作;
ALUSrcled[0]RegWriteLed[1]ALUOpLed[3:2]Led[4]I_formatBranchsw[7:0]addra[7:0]Ins_Rom[31:27]douta[31:0][5:0]Opcode[5:0]Led[5]控制器led[15:0]nBranchLed[6]SftmdLed[7]clkclkaFunction_opcode[5:0]JalLed[8]JmpLed[9]SftmLed[12:10]ALU_ctlLed[15:13]
图4.1取指令译码原理图
由外部输入的7位地址到ROM模块,ROM模块根据输入地址读取相应的32位数据,得到32位指令数据后由控制器进行译码生成相应的控制信号输出。
4.4实验步骤
1.添加ROM的IP核,并设计相应的输入输出端口和加载的指令文件。如图4.2所示:
图4.2ROM的IP核设计图
2.添加控制器模块的IP核。
3.编写主模块,主模块有8位地址输入位,1位时钟输入信号和16位输出信号,编写完成后,综合项目源文件,然后实施活动的设计合成的网表,对这9位输入和16位输出进行管脚绑定,开关的低8位对应8位输入地址,16位输出对应LED灯的16位,绑定完成后保存生成的约束文件,最后生成相应的编码文件。
4. 连接开发板,并打开开发板开关,将程序下载到开发板上,观察输入不同地址对应的LED灯的明暗情况。