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

下载本文档

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

文档简介

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

2、决定。func(function)可被认为是扩展的操作码,Target表示一下个地址开始注:操作码4位,寄存器字段rs,rt,rd各三位,Fun功能字段3位,Imm立即值字段6位;一共8个寄存器,R0只读不可写,恒为0。R类型的指令ADDRd,Rs,RtSUBRd,Rs,RtANDRd,Rs,RtORRd,Rs,RtXORRd,Rs,RtI类型的指令LWRt,Rs,imm6SWRt,Rs,imm6指令操作码OP所属的指令格式Fun备注ADD0000R001Rrd-Rrs+Rrt无符号加法SUB0000R010Rrd-Rrs-Rrt无符号减法AND0000R011Rrd-Rrs&Rrt逻辑与OR

3、0000R100Rrd-Rrs|Rrt逻辑或XOR0000R101RrdRrsRrt逻辑异或LW0001IRrtMRrs+Imm主存中内容写入寄存器SW0010IMRrs+Imm-Rrt寄存器中内容回写到主存存放在ROM中的汇编指令,完成M2-M0+M1LWR1,0(R0);R1-MR0+0,由于区(0)内容为0,即R1-M0LWR2,1(R0);R1-MR0+1,由于区(0)内容为0,即R1-M1ADDR3,R1,R2;R3-R1+R2SWR3,2(R0);MR0+2-R3下面地址对应着rom模块里面ROM地址汇编指令机器指令0LWR1,0(R0)00010000010000001LWR2,

4、1(R0)00010000100000012ADDR3,R1,R200000010100110013SWR3,2(R0)00100000110000104INCR4,R300000110101001115SWR4,3(R0)00100001000000116ANDR5,R1,R200000010101010117ORR6,R1,R200000010101101008XORR7,R3,R400000111001111019SWR5,4(R0)001000010100010010SWR6,5(R0)001000011000010111SWR7,6(R0)001000011100011012NOTR

5、3,R1000000100101111013SUBR4,R1,R2000000101010001014BEQR1R2011000101000000115SWR3,7(R0)001000001100011116SWR4,8(R0)001000010000100017LWR1,2(R0)000100000100001018LWR2,3(R0)000100001000001119J(2)0011000000000001LW表示读取数据,SW表示存储数据,BEQ表示相等就跳转,J表示直接跳转到某个地址三、根据指令的需求,连接组件,形成多周期的数据通路访图存w器写回指令存曲器访图存w器写回指令存曲器数据

6、存储阴Imdwrnicmtoregirwr,pcwr,regwr,aluoutregwr,memwr,lmdwr相应组件的写使能控制信号,为1时,有效Regdst:为1时选择RD;为0时选择RT.Signex:为1时扩展器进行符号扩展;为0时扩展器进行零扩展。Aluselb:为1时选择暂存器B;为0时选择扩展器的输出端。Alufunc:0000与运算;0001或运算;0010异或;00n取反;0100加;0101减Memtoreg:为1时选择LMD;为0时选择aluoutput关键组件寄存器及寄存器组设计带复位(清零)、写使能控制功能的16位寄存器(PC),当复位信号为1时,寄存器输出0,否则

7、,在时钟下降沿且写使能信号有效时将输入数据传送至输出端。设计带写使能控制功能的16位寄存器(ALUO、LMD),在时钟下降沿且写使能信号有效时将输入数据传送至输出端。设计暂存器(暂存器A、B),在时钟下降沿将输入数据传送至输出端。设计指令寄存器(IR),在时钟下降沿且写使能信号有效时将输入指令传送至输出端,并且分解出指令的op、rs、rt、rd、func、imm字段。设计由8个寄存器构成的16位通用寄存器组。通用寄存器组有两个读口,ReadOne和ReadTwo分别读出由RegOne和regTwo指定编号的寄存器中的信息,读操作属于组合逻辑操作,不需时钟控制;有一个写口,WriteData上的

8、信息写入由WriteReg指定编号的寄存器中,写操作属于时序逻辑操作,需要clk时钟信号的控制,在WriteEnable为1的情况下,clk下降沿完成信息的写入。图1图2图3PC元件图符寄存器元件图符暂存器元件图符.;图1图2图3PC元件图符寄存器元件图符暂存器元件图符.;regF三IR0M2.aBR&gT2.OWriteR.egp.OWrrteData15.0RdOb&15.ajFLeadT15.D图4IR元件图符图5WrteEnablsDlk寄存器组的元件图符RAM及ROM设计存储容量为64X16的RAMmcKq1.Qwrenaaddlr&5.0data15.0.;inst写操作为时序逻辑

9、操作,当时钟clock下降沿到来且wren=1的情况下,data开始写入由address指定的存储单元中;读操作为组合逻辑操作,address有效后,q输出address指定的存储单元的内容.定制初始化数据文件,建立MemoryInitialization)文件,选择命令,并在New窗口选择Otherfile选项,再选择MemoryInitializationFile选项。出现如图1所示的窗口,指定存储容量,字的个数输入64,字长输入16。之后,出现如图2所示的窗口,向存储单元中输入初始化数据,选择地址及存储内容采用16进制。输入数据后保存文件,文件名raml.mif。初始化0单元数据为90H

10、,1单元数据为60H。图1图1指定存储容量窗口图2初始化数据窗口设计存储容量为64X16的ROM:ram1.0q1b.Dins-tROM为只读存储器,读操作为组合逻辑操作,Q输出由ADDRESS指定的存储单元的内容。3)ALU设计具有下列功能的16位ALU功能选择输入func3.0操作0000c-Aandb0001c-Aorb0010c-Axorb0011c-Nota0100cA+b0101c-a-b0110Ifabthenc-1elsec-0其它c-aalu16a15.0c15.0b15.0func3.0instALU的元件图符4)指令执行流程图27;iwlinidhftifijEijhhidKfiJfi1MrfiiiishM

温馨提示

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

评论

0/150

提交评论