简单16位CPU的设计方案.doc

上传人:小飞机 文档编号:4088895 上传时间:2023-04-03 格式:DOC 页数:9 大小:290.50KB
返回 下载 相关 举报
简单16位CPU的设计方案.doc_第1页
第1页 / 共9页
简单16位CPU的设计方案.doc_第2页
第2页 / 共9页
简单16位CPU的设计方案.doc_第3页
第3页 / 共9页
简单16位CPU的设计方案.doc_第4页
第4页 / 共9页
简单16位CPU的设计方案.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《简单16位CPU的设计方案.doc》由会员分享,可在线阅读,更多相关《简单16位CPU的设计方案.doc(9页珍藏版)》请在三一办公上搜索。

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下面地址对应着rom模块

4、里面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 111

5、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 R2,

6、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异或;0011取反

7、;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 、func、 i

8、mm字段。l 设计由8个寄存器构成的16位通用寄存器组。通用寄存器组有两个读口,ReadOne 和ReadTwo分别读出由RegOne和regTwo指定编号的寄存器中的信息,读操作属于组合逻辑操作,不需时钟控制;有一个写口, WriteData上的信息写入由 WriteReg指定编号的寄存器中,写操作属于时序逻辑操作,需要clk时钟信号的控制,在 WriteEnable为1的情况下, clk下降沿完成信息的写入。图PC元件图符 图2 寄存器元件图符 图3暂存器元件图符图4 IR 元件图符 图5 寄存器组的元件图符2) RAM 及ROMl 设计存储容量为6416的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 初始化数据窗口设计存储容量为6416的ROMl ROM为只读存储器,读操作为组合逻辑操作,Q输出由ADDRESS指定的存储单元的内容。3)ALU设计具有下列功能的16位ALU功能选择输入func3.0操作0000cA and b 0001cA or b0010cA xor b0011cNot a0100cA+b0101ca-b0110If ab then c1 else c0其它caALU的元件图符4)指令执行流程图5)状态转换图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号