简单模型机实验报告.docx
《简单模型机实验报告.docx》由会员分享,可在线阅读,更多相关《简单模型机实验报告.docx(10页珍藏版)》请在冰点文库上搜索。
简单模型机实验报告
简单模型机实验报告
篇一:
模型机实验报告
HUNANUNIVERSITY
课程实习报告
题目:
模型机
学生姓名
学生学号XX0801328
专业班级计算机科学与技术(3)班指导老师方恺晴
完成日期XX.5.28
思考题:
1.给定一个复合运算式子以及指令码IR[7..5]与八位BUS总线对应情况。
要求写出七条指令新的指令码并写出复合运算执行mif文件。
修改模型机电路调试程序以实现复合运算。
例:
已知A=55H,B=8AH,C=F0H;IR[7..5]对应BUS8,BUS1,BUS3;写出(Aplus/B)^(/(/CplusB))的mif文件,并在模拟机上实现。
答:
模拟机电路修改如下:
存储器预设指令重设:
计算结果:
(A+/B)^(/(/C+B))=42H
2.Microcomputer.vhd代码中进程ct1,ct2,ct3,ct4功能划分依据是什么?
ct1:
微序列控制器下址跳转。
ct2:
实现各种指令,主要集中在实现从存储器或者寄存器释放数据到总线上。
ct3:
完成各种指令,从总线上装载数据到相应的存储器或者寄存器中。
ct4:
生成下址,判断下址生成方式,根据不太那个的方式生成下址。
3.Microcomputer.vhd代码中如何定义并初始化RAM?
typeramisarray(0to37)ofstd_logic_vector(7downto0);--38*8ram
signalram8:
ram:
=
(x”20”,x”1e”,x”80”,x”40”,x”20”,x”20”,x”1d”,x”c0”,x”20”,x”40”,x”21”,x”20”,x”1f”,x”80”,x”40”,x”22”,x”20”,x”1e”,x”c0”,x”22”,x”80”,x”e0”,x”21”,x”40”,x”23”,x”60”,x”23”,x”a0”,x”00”,x”55”,x”8a”,x”f0”,others=>x”00”)–initializeram4
4.Microcomputer.vhd代码中bus_reg_t2 将ram8存储器中对应于ar中地址单元的数据取出来放到bus_reg_t2寄存器中。
将r5寄存器中的数据装载到ram8存储器对应于ar中地址单元中。
5.Microcomputer.vhdram8(conv_integer(ar)) 代
码
中
bus_reg_t2 r5
;
可否修改成bus_reg_t2 ram8(conv_integer(ar)) 可以这样修改,但是不修改更能体现CPU设计的方式。
6.Microcomputer.vhd代码中bus_reg,bus_reg_t2,bus_reg_t3属于bus_reg同类的Signal,用途是什么?
Bus_reg:
一个时序周期后总线上的数据。
Bus_reg_t2:
记录t2时刻总线上的中间数据。
Bus_reg_t3:
记录t3时刻总线上的中间数据。
7.Microcomputer.vhd代码中mpc,mpc_t2,,mpc_t3,mpc_t4属于mpc同类的Signal,用途是什么?
Mpc:
一个时序周期后微序列控制器的下址。
Mpc_t2:
记录绝对地址寻址方式的下址。
Mpc_t3:
记录t3时刻的下址,和Mpc_t2相同。
Mpc_t4:
记录t4时刻的下址,和mpc_t3相同,同时如果是映射寻址,则修改下址。
篇二:
CPU与简单模型机设计实验
评语:
课中检查完成的题号及题数:
成绩:
自评成绩:
85
课后完成的题号与题数:
实验报告
实验名称:
CPU与简单模型机设计实验
日期:
姓名:
XX.11.17周小多
班级:
10011302学号:
XX02513
一、实验目的:
1.掌握一个简单CPU的组成原理。
2.在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。
3.为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
二、实验内容:
1.
要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。
CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图2-1-1所示。
这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:
IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高4位为操作码):
助记符机器指令码说明IN00100000IN→R0
ADD00000000R0+R0→R0OUT00110000R0→OUTJMPaddr11000000addr→PCHLT01010000停机
2.
设计一段机器程序,要求从IN单元读入一个数据,存于R0,将R0和自身相加,结
3.
果存于R0,再将R0的值送OUT单元显示。
根据要求可以得到如下程序,地址和内容均为二进制数。
地址内容助记符说明
000000000000000100000010000000110000010000000101
001000000000000000110000111000000000000001010000
;START:
INR0;ADDR0,R0;OUTR0
从IN单元读入数据送R0R0和自身相加,结果送R0R0的值送OUT单元显示跳转至00H地址停机
;JMPSTART;HLT
三、项目要求及分析:
1.试修改现有的指令系统,将加法指令的功能修改为R0的内容和某个存储单元的内容相加;增加存数、取数和减法三条机器指令,指令助记符分别为STA、LAD和SUB,指令操作码分别为十六进制的60、70和80。
R0和某个存储器相加,R0是可以直接读进来的,R0和另一个存储单元内容相加,如果两个值都是读入的话,就要将一个放在R0中,可以直接读入,另一个放存在储单元。
可以先将值读入到R0中,在将R0保存到其他的存储单元中,进行加法时从存储单元中取出放在临时寄存器中,这样是两个寄存器相加减就可以。
具体步骤:
1)将R0中的数据送ALU中的A;2)给出另一个数在内存中的地址;3)从内存中取出相应的数据并送ALU中的B;4)进行加法运算并将结果送R0。
对于增加存数、取数和减法三条机器指令,存数指令STA具体操作过程如下:
1)从IN读入数据要存储的地址;
2)将地址送至AR;
3)从IN读入要存储的数据;4)将数据送入内存中的相应存储单元。
对于取数指令LAD具体操作过程如下:
1)从IN读入数据的存储地址;
2)将存储地址送至AR;3)将取出的数据送至R0
减法指令的具体操作过程如下:
1)将被减数送至ALU的A;2)将减数送至ALU的B;3)ALU进行减法操作,结果送R0;
2.利用修改后的指令系统编写一段程序,完成十六位二进制数的加减法运算。
。
答:
十六进制比八进制多了一半,该内容利用的指令系统,编写相应的程序。
可以先将两个十六位的二进制数的高八位和低八位分别存入不同的地址,然后先取出两个数低八位进行相加,送至OUT单元显示,进位进行存储;再进行两个数低八位相加,结果在数据总线出显示。
四、具体实现:
微程序设计流程图:
微代码
$M00000001;NOP
$M01006D42;PC->AR,PC加1$M02107073;MEM->IR,P
$M11006412;pc->ar,PC++$M12183013;mem->ar$M13XX01;mem->b
$M15006416;alu->r0加法
$M16103001;pc->ar,PC++$M17183018;mem->ar$M18006419;mem->b
$M1910XX;alu->r0减法
$M1D105141;mem->ar
$M2C18302D;R0->MEMSTA
$M2D00642E;m->ar(本文来自:
wwW.xIAocAofaNwE小草范文网:
简单模型机实验报告)
$M2E10202F;m->r0LAD
$M2F05B201;m->pcJMPPC++
$M30001417;R0->A加法$M32183001;R0->A减法
$M33280401;pc->ar,PC++置ro[AR]->R0LAD$M35000035;STA:
PC->AR,PC++,mem->ar,R0->MEM(AR)$M36183011;IN->R0输入IN$M37183015;R0->OUT输出OUT$M3800142C;pc
$M3C006D5D;pc->arJMP
利用修改后的指令系统编写一段程序,完成十六位二进制数的加减法运算。
以下的一段程序用于实现两个16位二进制数的加法,其思想为高位和低位分别对
应相加,将低位的进位给高位,减法同理。
结果的低八位在OUT单元显示,高八位数据在数据总线显示,最高位的进位忽略。
$P0060STA存加数的低八位$P0160STA存被加数的低八位
$P0260STA存加数的高八位$P0360STA存被加数的高八位
$P0470LDA取出加数的低八位存入R0中$P0500ADD两个数低八位相加
$P0630OUT两个数低八位相加的结果在OUT单$P0770LDA取出加数的高八位存入R0中$P0800ADD两个数的高八位相加$P0950HLT停机
五、调试运行结果:
加法:
输入的两个数据分别为:
01010010,11111111(52FF)00110010,00000001
(3201)输出的结果为:
00000001,00000000(8500)
减法:
输入的两个数据分别为:
01010110,11111111(56FF)00110010,00000001(3201)输出的结果为:
001111111,11111110(3FFE)
六、所遇问题及解决方法:
1.在上实验课时,因为自己的实验器材的问题,一直都不能完成一个数与自身相加,之后也尝试了很多次才调整过来,感觉连线的过程千万不能将线接错,否则结果很难出来,做实验一定要很细心。
七、实验总结:
1.
经过这次实验,我体会到自己所学的东西太少了,很多都不知道。
虽然这次设
计的只是一个小程序,但是这其间我还是学到了不少东西。
在这次实验设计的过程,有些很基本的知识出现记混淆的现象,通过查书及询问同学,最终明白了。
做简单模型机实验,能使我对计算机能有一个整机的概念。
在此次的设计中,感谢老师对我们的帮助和指导。
篇三:
CPU与简单模型机设计实验报告
计算机科学与技术系
实验报告
专业名称计算机科学与技术课程名称计算机组成与结构项目名称CPU与简单模型机设计实验班级
学号姓名同组人员无
实验日期XX-11-15
一、实验目的
1.掌握一个简单CPU的组成原理;
2.在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机;3.为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
二、实验逻辑原理图与分析
2.1实验逻辑原理图及分析
本实验要实现一个简单的CPU,并且在此CPU的基础上,继续构建一个简单的模型计算机。
CPU由运算器(ALU)、微程序控制器(MC)、通用寄存器(RO)、指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图下图所示。
这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和贮存挂接后,才有实际的意义,所以还需要在该CPU的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。
基本CPU构成原理图
系统的程序计数器(PC)和地址寄存器(AR)集成在一片CPLD芯片中。
CLR连接至CON单元的纵情断CLR,按下CLR按钮,将是PC清零,LDPC和T3相与后作为计数器的计数时钟,当LOAD为低时,计数时钟到来后将CPU内总线的数据打入PC。
程序计数器(PC)原理图
2.2逻辑原理图分析
本模型机;和前面微程序控制器实验相比,新增加一条跳转指令JMP,供有五条指令:
IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移)、HLT(停机)、其指令格式瑞霞(高4为为操作码):
其中JMP为双字节指令,其余均为单字节指令,********为addr对应的二进制地址码。
微程序控制器实验的指令是通过手动给出的,现在要求CPU自动从存储器读取指令并执行。
系统涉及到的微程序流程如下图所示,当拟定“取指”微指令时,该微指令的判别测试字段为P测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P的测试结果出现多分支。
本机用指令寄存器的高6位(IR7—IR2)作为测试条件,出现5路分支,占用5个固定为地址单元,剩下的其他地方就可以一条微指令占用控制一个微地址单元随意填写,微程序流程图上的但愿地址为16进制。
当全部为程序设计完毕后,应将每条微指令代码化,下表即为将下图的微程序流程图按微指令格式转化而成的“二进制微代码表”。
简单模型机微程序流程图
二进制微代码表
三、数据通路图及分析(画出数据通路图并作出分析)
数据通路图
四、实验数据和结果分析
4.1实验结果数据和结果数据分析如图所示
联机写入的程序如下:
;//*************************************//;////;//微控器实验指令文件//;////;//ByTangDuCO.,LTD//
;////
;//*************************************//
;//**EndOfMainMemoryData**//
$P0020;START:
INRO从IN单元读入数据送RO$P0100;ADDRO,RORO和自身相加,结果送RO$P0230;OUTRORO的值送OUT单元显示$P03E0;JMPSTART跳转至00H地址$P0400
$P0550;HLT停机
;//*****EndOfMainMemoryData*****//
;//*****StartOfMicroControllerData*****//
$M00000001;NOP
$M01007070;CON(INS)->IR,P
$M04002405;R0->B
$M0504B201;A加B->R0
$M30001404;R0->A
$M32183001;IN->R0
$M33280401;R0->OUT
$M35000035;NOP
;//**EndOfMicroControllerData**//
联机写入和校验后,得如下结果:
(1)从IN单元读入数据送至AR。
首先,AR地址为00,计数器PC加1,机器指令代码送至MEM单元,MEM=20。
(2)MEM中的机器指令代码送至IR单元,再到控制器,进行译码操作。