简单16位CPU的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单CPU的设计
设计步骤:
1)确定CPU功能
2)拟定指令系统(采用MIPS)
3)分析指令系统,为数据通路选择合适的组件,并给出组件
所需的控制信号,连接组件建立数据通路
4)详细分析指令在多周期通路中的执行过程,给出指令执行
的流程图
5)依据指令执行的流程图,分析控制信号的取值,生成相应
的状态转换图
一、确定CPU功能
M[2]←M[0]+M[1]
二、拟定指令系统
J类型
4位12位
指令格式中的op(opcode)是指令操作码。rs(register source)是源操作数的寄存
器号。rd(register destination)是目的寄存器号。rt(register target)即可作为源寄
存器号,又可作为目的寄存器号,有具体的指令决定。func(function)可被认为
是扩展的操作码,Target表示一下个地址开始
注:操作码4位,寄存器字段rs,rt,rd各三位,Fun功能字段3位,Imm立即值字段6位;一共8个寄存器,R0只读不可写,恒为0。
R类型的指令
ADD Rd,Rs,Rt
SUB Rd,Rs,Rt
AND Rd,Rs,Rt
OR Rd,Rs,Rt
XOR Rd,Rs,Rt
I类型的指令
LW Rt, Rs,imm6
SW Rt, Rs,imm6
存放在ROM中的汇编指令,完成M[2]←M[0]+ M[1]
LW R1,0(R0);R1←M[R[0]+0],由于R(0)内容为0,即R1←M[0] LW R2,1(R0);R1←M[R[0]+1],由于R(0)内容为0,即R1←M[1] ADD R3,R1,R2 ; R3←R1+R2
SW R3,2(R0) ; M[R[0]+2]←R3
下面地址对应着rom模块里面
LW表示读取数据,SW表示存储数据,BEQ表示相等就跳转,J表示直接跳转到某个地址
三、根据指令的需求,连接组件,形成多周期的数据通路
irwr,pcwr,regwr,aluoutregwr,memwr,lmdwr:相应组件的写使能控制信号,为1时,有效
Regdst: 为1时选择RD;为0时选择RT.
Signex:为1时扩展器进行符号扩展;为0时扩展器进行零扩展。Aluselb:为1时选择暂存器B;为0时选择扩展器的输出端。
Alufunc:0000与运算;0001或运算;0010异或;0011取反;0100加;0101减
Memtoreg:为1时选择LMD;为0时选择aluoutput
关键组件
1)寄存器及寄存器组
●设计带复位(清零)、写使能控制功能的16位寄存器(PC),
当复位信号为1时,寄存器输出0,否则,在时钟下降沿且写
使能信号有效时将输入数据传送至输出端。
●设计带写使能控制功能的16位寄存器(ALUO、LMD),在
时钟下降沿且写使能信号有效时将输入数据传送至输出端。
●设计暂存器(暂存器A、B),在时钟下降沿将输入数据传送至
输出端。
●设计指令寄存器(IR), 在时钟下降沿且写使能信号有效时将
输入指令传送至输出端,并且分解出指令的op、rs、rt、rd 、func、imm字段。
●设计由8个寄存器构成的16位通用寄存器组。通用寄存器组
有两个读口,ReadOne 和ReadTwo分别读出由RegOne和
regTwo指定编号的寄存器中的信息,读操作属于组合逻辑操
作,不需时钟控制;有一个写口,WriteData上的信息写入由
WriteReg指定编号的寄存器中,写操作属于时序逻辑操作,需
要clk时钟信号的控制,在WriteEnable为1的情况下,clk
下降沿完成信息的写入。
图1PC元件图符
图 2 寄存器元件图符
图3暂存器元件图符
图4 IR 元件图符图5 寄存器组的元件图符
2)RAM 及ROM
●设计存储容量为64×16的RAM
写操作为时序逻辑操作,当时钟clock下降沿到来且wren=1的情况下,data开始写入由address指定的存储单元中;读操作为组合逻辑操作,address有效后,q输出address指定的存储单元的内容.
定制初始化数据文件,建立Memory Initialization File(.mif)文件,选择File→New命令,并在New窗口选择Other file
选项,再选择Memory Initialization File选项。出现如图1
所示的窗口,指定存储容量,字的个数输入64,字长输入
16。之后,出现如图2所示的窗口,向存储单元中输入初
始化数据,选择地址及存储内容采用16进制。输入数据后
保存文件,文件名ram1.mif。初始化0单元数据为90H,1
单元数据为60H。
图1 指定存储容量窗口图2 初始化数据窗口
设计存储容量为64×16的ROM
ROM为只读存储器,读操作为组合逻辑操作,Q输出由ADDRESS指定的存储单元的内容。
3)ALU
设计具有下列功能的16位ALU
ALU的元件图符4)指令执行流程图
5)状态转换图