简单16位CPU的设计_第1页
简单16位CPU的设计_第2页
简单16位CPU的设计_第3页
简单16位CPU的设计_第4页
简单16位CPU的设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、简单CPU的设计设计步骤:1) 确定CPU功能2) 拟定指令系统(采用MIPS)3) 分析指令系统,为数据通路选择合适的组件,并给出组件所需的控制信号,连接组件建立数据通路4) 详细分析指令在多周期通路中的执行过程,给出指令执行的流程图5) 依据指令执行的流程图,分析控制信号的取值,生成相应的状态转换图一、 确定CPU功能M2M0+M1二、 拟定指令系统J类型OPTarget4位 12位指令格式中的op(opcode)是指令操作码。rs(register source)是源操作数的寄存器号。rd(register destination)是目的寄存器号。rt(register target)即

2、可作为源寄存器号,又可作为目的寄存器号,有具体的指令决定。func(function)可被认为是扩展的操作码,Target表示一下个地址开始注:操作码4位,寄存器字段rs,rt,rd各三位,Fun功能字段3位,Imm立即值字段6位;一共8个寄存器,R0只读不可写,恒为0。R类型的指令 ADD Rd,Rs,Rt SUB Rd,Rs,RtAND Rd,Rs,RtOR Rd,Rs,RtXOR Rd,Rs,RtI类型的指令 LW Rt, Rs,imm6SW Rt, Rs,imm6指令操作码OP所属的指令格式Fun备注ADD0000R001Rrd Rrs+Rrt无符号加法SUB0000R010Rrd R

3、rs-Rrt无符号减法AND0000R011Rrd Rrs&Rrt逻辑与OR0000R100Rrd Rrs|Rrt逻辑或XOR0000R101Rrd RrsRrt逻辑异或LW0001IRrt MRrs+Imm主存中内容写入寄存器SW0010IMRrs+Imm Rrt寄存器中内容回写到主存存放在ROM中的汇编指令,完成M2M0+ M1LW R1,0(R0);R1 MR0+0,由于R(0)内容为0,即R1 M0LW R2,1(R0);R1 MR0+1,由于R(0)内容为0,即R1 M1ADD R3,R1,R2 ; R3 R1+R2SW R3,2(R0) ; MR0+2 R3下面地址对应着r

4、om模块里面ROM地址汇编指令 机器指令0LW R1,0(R0)0001 000 001 0000001LW R2,1(R0)0001 000 010 0000012ADD R3,R1,R20000 001 010 011 0013SW R3,2(R0)0010 000 011 0000104INC R4,R30000 011 010 100 1115SW R4,3(R0)0010 000 100 0000116AND R5,R1,R20000 001 010 101 0117OR R6, R1,R20000 001 010 110 1008XOR R7, R3,R40000 011 100

5、111 1019SW R5,4(R0)0010 000 101 00010010SW R6,5(R0)0010 000 110 00010111SW R7,6(R0)0010 000 111 00011012NOT R3, R10000 001 001 011 11013SUB R4, R1,R20000 001 010 100 01014BEQ R1 R20110 001 010 000 00115SW R3,7(R0)0010 000 011 00011116SW R4,8(R0)0010 000 100 00100017LW R1,2(R0)0001 000 001 00001018LW

6、 R2,3(R0)0001 000 010 00001119J (2)0011 000 000 000001LW表示读取数据,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异或;00

7、11取反;0100加;0101减Memtoreg:为1时选择LMD;为0时选择aluoutput关键组件1) 寄存器及寄存器组l 设计带复位(清零)、写使能控制功能的16位寄存器(PC),当复位信号为1时,寄存器输出0,否则,在时钟下降沿且写使能信号有效时将输入数据传送至输出端。l 设计带写使能控制功能的16位寄存器(ALUO、 LMD),在时钟下降沿且写使能信号有效时将输入数据传送至输出端。l 设计暂存器(暂存器A、B),在时钟下降沿将输入数据传送至输出端。l 设计指令寄存器(IR), 在时钟下降沿且写使能信号有效时将输入指令传送至输出端,并且分解出指令的op、rs、 rt、 rd 、fun

8、c、 imm字段。l 设计由8个寄存器构成的16位通用寄存器组。通用寄存器组有两个读口,ReadOne 和ReadTwo分别读出由RegOne和regTwo指定编号的寄存器中的信息,读操作属于组合逻辑操作,不需时钟控制;有一个写口, WriteData上的信息写入由 WriteReg指定编号的寄存器中,写操作属于时序逻辑操作,需要clk时钟信号的控制,在 WriteEnable为1的情况下, clk下降沿完成信息的写入。图PC元件图符 图2 寄存器元件图符 图3暂存器元件图符图4 IR 元件图符 图5 寄存器组的元件图符2) RAM 及ROMl 设计存储容量为64×16的RAM写操作

9、为时序逻辑操作,当时钟clock下降沿到来且wren=1的情况下,data开始写入由address指定的存储单元中;读操作为组合逻辑操作,address有效后,q输出address指定的存储单元的内容.Ø 定制初始化数据文件,建立Memory Initialization File(.mif)文件,选择FileNew命令,并在New窗口选择Other file选项,再选择Memory Initialization File选项。出现如图1所示的窗口,指定存储容量 ,字的个数输入64,字长输入16。之后,出现如图2所示的窗口,向存储单元中输入初始化数据,选择地址及存储内容采用16进制。输入数据后保存文件,文件名ram1.mif。初始化0单元数据为90H,1单元数据为60H。图1 指定存储容量窗口 图2 初始化数据窗口设计存储容量为64×16的ROMl ROM为只读存储器,读操作为组合逻辑操作,Q输出由ADDRESS指定的存储单元的内容。3)ALU

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论