计算机组成原理cpu模型机,计算机组成原理课程设计报告16位模型机的设计

《计算机组成原理课程设计报告16位模型机的设计》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告16位模型机的设计(44页珍藏版)》请在人人文库网上搜索。

1、石家庄经济学院华信学院计算机组成原理课程设计报告计算数据块中所有数据的累加和并存储到内存单元中题 目 16位模型机的设计 姓 名 学 号 4114170801 班 号 一 班 指导老师 成 绩 2014年1月目 录一、引言31.1设计目的31.2设计任务3二、 详细设计及实现42.1 拟定指令系统42.2指令格式52.3寻址方式5三、16位CPU的模型73.1 各功能部件的VHDL设计93.2 16位模型机的设计与实现22四、总结27五、参考文献:27六、 代码28一、引言1.1设计目的为掌握并巩固本学期所学习的计算机组成原理知识,设计本次试验。运用整合所学的相关知识,一步步设计构造一台基本的。

2、模型计算机,明确计算机的控制原理与控制过程,巩固和灵活应用所学的理论知识,掌握计算机组成的一般设计方法,提高学生设计能力和实践操作技能,为从事计算机研制与设计打下基础。1.2设计任务本机功能:计算数据块中所有数据的累加和并存储到内存单元中。汇编代码如下: START: MOV SI, OFFSET SRC1 ;源操作数地址送SIMOV DI,OFFSET DXT ;目的操作数地址送DIMOV BX,OFFSET SRC2 ;结束地址送BXMOV BL 0 ;设置BL中初值为0NEXT:MOV AL,SI ;取数ADD BL , AL ; 数据相加MOV DI,AL ;存数CMP SI,BX ;。

3、JE START ;如果SI=BX,则转向STARTINCSI ;修改源地址JMP NEXT ;转向NEXT二、 详细设计及实现 2.1 拟定指令系统分析:1) 依据汇编语言程序得出部件间的数据流的方向为l 立即数寄存器l 寄存器内存 内存操作数采用寄存器间址寻址方式l 源与目的寄存器内容比较,如果源等于目的转移,转向地址在指令中提供l 寄存器加1指令l 无条件转移指令,转向地址在指令中提供。2) 指令类型 (指令中的立即数为一个字即16位)l 立即数寄存器需要在指令中指出寄存器及立即数如:LOADI R0,10H,此指令为双字指令l 内存操作数寄存器需要在指令中指出间址寄存器及目的寄存器如:。

4、LOAD R3,R1; 指令为单字指令l 寄存器内存 需要指令中指出源寄存器及间址寄存器如:STORE R2,R7; 指令为单字指令l 寄存器内容比较产生转移的指令需要指令中指出源、目的寄存器以及转向的地址如:BRANCHEQI 0000H; 指令为单字指令l 寄存器加1指令指令中指出寄存器如: INC R1,指令为单字指令l 无条件转移指令指令中提供转向地址如:BRANCHI 0008H; 指令为单字指令2.2指令格式1) 单字指令格式单指令但操作数:INC BRANCHI单指令双操作数:mov load store LOADI2) 双字指令格式双字三操作数: BRANCHEQI BRANC。

5、HGTI操作码指令功能00001LOAD将寄存器间址的存储单元内容装载到寄存器00010STORE将寄存器的数据存入到寄存器间址的存储单元00011MOV将源寄存器内容传送到目的寄存器00100LOADI将立即数装入到寄存器00101BRANCHI无条件转移到由立即数指定的地址00110BRANCHEQI如果源寄存器内容等于目的寄存器的内容,则转移到由立即数指定的地址00111INC寄存器内容加1指令01000ADD数据相加2.3寻址方式寻址方式含义立即数寻址指令格式中源操作数为立即数寄存器间址寻址方式寄存器中操作数的地址直接寻址主存中为操作数依据以上设计的指令系统,将主存中数据累加并存储到内。

6、存单元中的程序如下:地址机器码指令功能说明0000H0001H2001H0010HLOADI R1,0010H源操作数地址送R10002H0003H2002H0030HLOADI R2,0030H目的操作数地址送R20004H0005H2006H0016HLOADI R6,0016H结束地址送R60006H0007H2007H0000HLOAD R7,0R7内放入0初始化最小值0008H080BHLOAD R3,R1取数0009H 401FHADD R7, R3相加000AH103AHSTORE R2,R7存数000BH000CH300EH0000HBRANCHEQI 0000H如果R6内容等。

7、于R1的内容,则转向0000H000DH3031HINC R1修改源地址000EH000FH2800H0008HBRANCHI 0008H无条件转移到由立即数指定的地址存储器初始化文件memdata.mif的内容:三、16位CPU的模型图1是采用单总线结构的16位CPU结构图,包含了基本的功能模块,由寄存器阵列构成的8个16位寄存器Reg0-Reg7;工作寄存器OpReg;算术逻辑运算部件ALU;移位器Shifter;输出寄存器OutReg;比较器Comp;指令寄存器InstrReg;程序计数器ProgCnt;地址寄存器AddrReg。所有功能模块共用16位的三态数据总线进行信息的传送。 控制。

8、器模块由状态机实现,控制器依据指令、数据通路通过控制线向各功能模块发出控制命令。由寄存器阵列构成的8个16位寄存器Reg0-Reg7的优点是节省资源、使用方便。它们共用一个三态开关,由控制器选择与数据总线的连接。工作寄存器OpReg 可为ALU、比较器Comp 提供一个操作数,而ALU、比较器的另一操作数直接来自数据总线。将ALU、移位器Shifter、输出寄存器OutReg 串接起来,由控制器统一控制来共同完成一些复杂的操作,由输出寄存器OutReg存储结果,输出寄存器OutReg 向总线的输出端含有三态开关。比较器Comp 由控制器直接控制,比较的结果进入控制器。地址寄存器AddrReg 。

9、提供要访问的主存单元的地址,本设计中将程序和数据放在同一存储器中。程序计数器ProgCnt,不具备清零和+1的功能, 存放CPU要执行的下一条指令的地址。指令寄存器InstrReg 存放CPU正在执行的指令。工作寄存器OpReg,输出寄存器OutReg,指令寄存器InstrReg,程序计数器ProgCnt,地址寄存器AddrReg,均为最基本的寄存器。为了验证CPU的功能,增加存储器,存储器中存入完成数据块传送所需的程序和数据。系统中所有向数据总线输出数据的模块,其输出口必须使用三态控制器。模型机的实际电路如图2所示:图2 顶层实体模拟图3.1 各功能部件的VHDL设计程序包:说明数据类型、运。

10、算器的功能、移位寄存器的操作、比较器的比较类型和用于CPU控制的状态类型。运算器的设计功能:Sel输入操作说明0000C= A通过PASS0001C= A AND B与0010C= A OR B或0011C= NOT A非0100C= A XOR B异或0101C= A + B加法0110C= A - B减法0111C= A + 1加11000C= A - 1减11001C= 0清零说明:a15.0来自于总线,b15.0来自于工作寄存器OpReg,c15.0输出送至移位器。sel3.0来自于控制器发出的控制信号aluSel3.0,选择ALU的操作。运算器功能仿真波形图如图3所示:图3 运算器功。

11、能仿真波形图仿真结果说明:当sel为0000时,进行直传的操作。通过pass,则c=a,为1000。当sel为0001时,进行与的操作。a=1000,b=1234,与之后c为1000。当sel为0010时,进行或的操作。a=1000,b=1234,c为1234。当sel为0011时,进行非的操作。a=1000,a为EFFF。当sel为0100时,进行异或的操作。a xor b,c为0234。当sel为0101时,进行加法的操作。a=1000,c为2234。当sel为0110时,进行减法的操作。a=1000,c为FDCC。当sel为0111时,进行加1的操作。a=1000,c为1001。当sel。

12、为1000时,进行减1的操作。a=1000,c为0FFF。当sel为1001时,进行清0操作,全部置0.当sel为1010时,为类型其他,全部输出0.比较器的设计功能:t_comp比较类型操作说明000Eq(等于)若a=b,compout=1001Neq(不等于)若ab,compout=1011gte(大于等于)若a=b,compout=1100It(小于)若atemp then q c c c c c c c c c c c if a=b then compout if a/=b then compout if ab then compout if a=b then compout if a。

13、 if a compout aluSel outRegRd progcntrRd rw case instrReg(15 downto 11) iswhen 00000 = next_state next_state next_state next_state next_state next_state next_state next_state next_statenext_state regSel rw regSel regSel regSel outRegRd progcntrRd outregRd rw progcntrRd outregRd rw regSel opRegRd pro。

14、gcntrRd outregRd rw regSel outregRd progcntrRd outregRd regSel regSel outregRd progcntrRd next_state 0);elsif rising_edge(clk) thenif load=1 thenq=a ;end if;end if;end process;end rt1;ram- megafunction wizard: %LPM_RAM_DQ%- GENERATION: STANDARD- VERSION: WM1.0- MODULE: altsyncram - =- File Name: ram。

15、.vhd- Megafunction Name(s):- altsyncram- =- *- THIS IS A WIZARD-GENERATED FILE. DO NOT EDIT THIS FILE!- 5.1 Build 176 10/26/2005 SJ Full Version- *-Copyright (C) 1991-2005 Altera Corporation-Your use of Altera Corporations design tools, logic functions -and other software and tools, and its AMPP partner logic -functions, and any output files any of the foregoing -(including device programming or simulation files), and any -associated documentation or information are expressly subject -to the terms and conditions of the Altera Program License -Subscri。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值