一、 实验目的
通过设计并实现支持一条指令的CPU,理解和掌握CPU设计的基本原理和过程。
二、 实验内容
设计和实现一个支持加法指令的单周期CPU。要求该加法指令(表示为add r1,r2,r3)格式约定如下:
采用寄存器寻址,r1,r2,r3为寄存器编号,r1和r2存放两个源操作数,r3为目标寄存器,其功能为[r1] + [r2] -> r3;
指令字长16位,操作码和地址码字段分配如下所示:
三、 实验原理
单周期CPU是指所有指令均在一个时钟周期内完成的CPU。CPU由数据通路及其控制部件两部分构成,因而要完成一个支持若干条指令CPU的设计,需要依次完成以下两件事:
1) 根据指令功能和格式设计CPU的数据通路;
2) 根据指令功能和数据通路设计控制部件。
3.1 根据功能和格式完成CPU的数据通路设计
本实验需要设计的CPU只需要支持一条加法指令,而该指令的功能是在一个时钟周期内从寄存器组中r1和r2中取出两个操作数,然后送到ALU进行加法运算,最后把计算结果保存到r1寄存器中。下图给出了改加法指令的数据通路图。
此外,还需要确定各个部件的位数,为了简单起见,我们假设目标CPU的机器字长、存储字长和指令字长相等均为16位,存储单元个数假设为256,按字寻址,并取PC位数为8。
3.2 根据指令功能、数据通路完成控制单元的设计
控制单元的功能是为当前要执行的指令产生微操作命令从而完成该指令的执行。为了能够完成加法指令的执行,结合图1,控制单元需要在取出指令后根据指令操作码(本例中是加法指令),控制ALU(参考实验二)做加法(通过给alu_op信号线相应赋值),并把结果写回寄存器组(参考实验三)中(通过给wr_en赋值为true)。图2给出了整合控制单元后目标CPU的原理图,系统时钟信号也已标注。
自己生成的原理图:
图片清晰度可能不够
可见附件CPU-1.pdf