模拟机的实现.docx
- 文档编号:16660839
- 上传时间:2023-04-23
- 格式:DOCX
- 页数:27
- 大小:628.54KB
模拟机的实现.docx
《模拟机的实现.docx》由会员分享,可在线阅读,更多相关《模拟机的实现.docx(27页珍藏版)》请在冰豆网上搜索。
模拟机的实现
《计算机组成与结构课程设计》任务书
一、设计题目
模型计算机系统的设计与实现
二、设计目的
计算机组成与结构课程设计是“计算机组成与结构”课程的后续设计性课程,通过设计一台模型计算机,使学生更好地理解计算机组成与结构课程的基本内容,掌握计算机设计与实现的基本方法,培养学生实验动手能力和创新意识,为以后进行计算机应用系统的设计与开发奠定基础。
三、设计任务
设计一个8位模型计算机系统,包括运算器,微程序控制器,存储器,简单输入/输出接口和设备,时序和启停控制等电路。
要求学生自己定义一套简单的指令系统,制定系统的设计方案和实现方法,画出所设计的模型机系统的电路原理图。
在计算机组成原理与系统结构实验系统上搭建模型计算机系统,完成微程序控制器的实验调试过程,并用所设计的指令系统编写一个实现简单功能的程序,在搭建的模型机系统上输入、调试和运行程序。
最后总结实验结果,完善所设计的模型机系统方案和电路图,写出完整的设计报告。
四、实验设备和环境
实验设备:
1.计算机组成原理与系统结构实验系统1台
2.PC机1台
3.EPROM编程器1台(公用)
4.示波器1台(公用)
5.连接电缆和排线若干。
软件环境:
1.操作系统:
Windows2000/WindowsXP
2.电路设计软件Protel
五、设计内容和要求
根据设计任务的要求,结合时间进度安排和考核方面的因素,将本次设计内容分为四个部分,各部分的具体设计内容和要求如下:
第一部分模型计算机设计方案的制定
设计内容:
1.设计一个8位模型计算机系统,包括运算器,微程序控制器,存储器、简单输入/输出设备、时序和启停等电路;
2.画出系统组成框图,指出各个部分的功能和实现途径;
3.针对所设计的模型机系统,每组学生自己定义一套简单的指令系统,给出助记符指令格式,分配指令的机器代码,指出指令的功能;
4.写出设计方案。
设计要求:
1.所设计的模型计算机系统为8位模型机,运算器为8位运算器,数据总线和地址总线都为8位,输入设备为8位开关,输出设备为8位发光二级管指示灯;
2.每组定义的指令系统为4至8条指令,必须包含本组运算器特有运算功能的指令,每组必须有两条以上指令与其他组不同,经老师审核后确定;
3.每组制定一份设计方案。
第二部分模型计算机的搭建和微程序控制器的设计
设计内容:
1.在北京清大数电科教仪器中心的“计算机组成原理与系统结构实验系统”上搭建自己的模型机系统;
2.编写出实现自定义指令系统的微程序;
3.在控制存储器中用EPROM编程器固化所编写的微程序;
4.在“计算机组成原理与系统结构实验系统”上调试和完成微程序控制器的设计工作;
5.用自己设计的指令系统编写一个实现简单功能的程序,在自己搭建的模型机系统上输入、调试和运行程序。
设计要求:
1.认真阅读实验教材,了解实验所用仪器和设备的使用方法及注意事项;
2.会用EPROM编程器固化微程序的过程;
3.在EPROM2764芯片上固化微程序后,用单步执行微指令方式执行微程序并观测所发出的控制信号;
4.每组编写的程序必须有助记符表示的汇编语言源程序,并把源程序翻译成机器指令代码,并纪录相关实验结果;
5.实现微程序功能后经指导老师审核验收。
第三部分模型计算机的电路原理图设计
设计内容:
1.全面深刻地分析北京清大数电科教仪器中心的“计算机组成原理与系统结构实验系统”的组成与结构,为设计模型计算机系统作准备;
2.用Protel电路设计软件画出所设计的模型机系统的电路原理图,包括运算器,微程序控制器,存储器、简单输入/输出设备、时序和启停等电路。
设计要求:
1.为了搭建模型机实验平台进行调试和实验做准备,所设计的模型计算机系统应借鉴计算机组成原理与系统结构实验系统的结构;
2.学会Protel电路设计软件的安装和绘制电路原理图的过程;
3.所画的电路原理图必须全面、规范,符合每组所设计的模型机的设计方案。
第四部分设计报告的撰写和答辩验收
设计内容:
1.在完成以上模型计算机系统的实验测试内容后,修改和完善设计方案和所画的电路原理图;
2.准备好自己搭建的模型机系统平台和相关的实验测试数据,接受指导教师的答辩验收工作;
3.每个学生写出一份完整的设计报告。
设计要求:
1.对所设计的模型机系统进行全面总结,完善设计内容;
2.在接受指导教师的答辩验收前,做好充分准备工作,包括平台准备,程序的输入,相关的测试数据整理等;
3.每个学生自己独立写出一份设计报告,设计报告必须计算机打印,要求设计方案和指导思想正确,格式规范,内容全面,叙述清楚,分析和总结合理。
六、时间安排:
设计内容
时间
第一部分模型计算机设计方案的制定
0.5周
第二部分模型计算机的搭建和微程序控制器的设计
0.5周
第三部分模型计算机的电路原理图设计
0.5周
第四部分设计报告的撰写和答辩验收
0.5周
七、考核方式
考查,最终成绩包括设计报告(30%)、平时成绩(20%)、答辩验收(50%),课程最终成绩按照优、良、中、及格和不及格五分制评分。
八、参考资料
1.王爱英主编.计算机组成与结构(第三版).北京:
清华大学出版社,2000
2.计算机组成与系统结构实验指导书:
自编
3.计算机组成原理与体系结构使用与实验指导,北京清大数电科教仪器中心陈捷编著
摘要
本次课程设计课题是基本模型机的设计与实现,该设计要求根据计算机组成原理课程所学知识,设计、开发一套简单的模型计算机。
通过对一个简单计算机的设计,以达到对计算机的基本组成、部件的功能与设计、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。
通过模型机的设计和调试,连贯运用计算机组成原理课程学到的知识,建立计算机整机概念,加深计算机时间和空间概念的理解。
部件实验过程中,本课程设计将能在微程序控制下自动产生各部件单元的控制信号,实现特定指令的功能,通过设计流程图,编写机器指令,微指令和控制信号程序。
首先向存储器中装入数据和程序,然后检查写入是否正确,启动程序执行,并将实验结果显示输出。
关键词:
模型机;运算器;存储系统;指令系统;微程序指令
第一章设计任务与要求
1.1设计任务
设计一个8位模型计算机系统,包括运算器,微程序控制器,存储器,简单输入/输出接口和设备,时序和启停控制等电路。
要求学生自己定义一套简单的指令系统,制定系统的设计方案和实现方法,画出所设计的模型机系统的电路原理图。
在计算机组成原理与系统结构实验系统上搭建模型计算机系统,完成微程序控制器的实验调试过程,并用所设计的指令系统编写一个实现简单功能的程序,在搭建的模型机系统上输入、调试和运行程序。
最后总结实验结果,完善所设计的模型机系统方案和电路图。
1.2设计内容与要求
1.2.1模型计算机设计方案的制定
1.所设计的模型计算机系统为8位模型机,运算器为8位运算器,数据总线和地址总线都为8位,输入设备为8位开关,输出设备为8位发光二级管指示灯;
2.每组定义的指令系统为4至8条指令,必须包含本组运算器特有运算功能的指令。
1.2.2模型计算机的搭建和微程序控制器的设计
1.认真阅读实验教材,了解实验所用仪器和设备的使用方法及注意事项;
2.会用EPROM编程器固化微程序的过程;
3.在EPROM2764芯片上固化微程序后,用单步执行微指令方式执行微程序并观测所发出的控制信号;
4.每组编写的程序必须有助记符表示的汇编语言源程序,并把源程序翻译成机器指令代码,并纪录相关实验结果;
1.2.3模型计算机的电路原理图设计
1.为了搭建模型机实验平台进行调试和实验做准备,所设计的模型计算机系统应借鉴计算机组成原理与系统结构实验系统的结构;
2.学会Protel电路设计软件的安装和绘制电路原理图的过程;
3.所画的电路原理图必须全面、规范,符合所设计的模型机的设计方案。
1.2.4设计报告的撰写和答辩验收
1.对所设计的模型机系统进行全面总结,完善设计内容;
2.在接受指导教师的答辩验收前,做好充分准备工作,包括平台准备,程序的输入,相关的测试数据整理等;
3.每个学生自己独立写出一份设计报告,设计报告必须计算机打印,要求设计方案和指导思想正确,格式规范,内容全面,叙述清楚,分析和总结合理。
第二章设计方案
2.1设计功能
1.指令系统:
指令助记符
机器指令代码
指令功能说明
INR0,DATA
00100000
SW7-SW0上的数据DATA输入到R0寄存器
NOT R0
01000000
对R0寄存器的数取反,结果送R0
ADDR0,(add)
01100000
R0寄存器的内容与内存中以add为地址单元的数相加,结果送R0
LOAR0,(add1),(add2)
10000000
内存中以add1和add2为地址单元的数相与,结果送R0
COMR0,(add)
10100000
对内存中以add为地址单元的数取反再加1,结果送R0
2.起始地址从00开始
地址
指令码
注释
00
20
IN
01
40
NOT
02
60
ADD
03
add<-09
04
08
LOA
05
add<-09
06
add<-0A
07
A0
COM
08
add<-0B
09
0A
0A
08
0B
0F
2.2设计思路
选择两组算数算指令进行8位模型机的设计与制作。
其中使用74LS74与74LS175组成的时序控制电路、和一片74LS181运算控制器、一片RAM6116存储器、三片2764控制存储器、两片8D触发器74LS273、一片4D触发器74LS175、三片正沿触发的双D触发器74LS74等芯片组成这套完整的模型机系统。
由铅笔开关将数据传送到寄存器中,由微程序控制器发出控制指令,并由ALU进行算数与逻辑运算,将结果通过总线写入到存储器RAM中,并且将数据地址送入地址总线即可。
2.3设计所需芯片及作用
图1收发器74LS245
图2D型触发器74LS273
图3算术逻辑单元功能发生器74LS181
图4CMOS静态随机存贮器RAM6116
图5D型触发器74LS374
图6累加器74LS163
第三章硬件设计
3.1整体逻辑框图
整体逻辑框图
3.2总线连接线路说明
1.运算器部分电路图
图1运算器部分电路图
2.存储器原理图
图2存储器实验原理图
3.八位数据通道原理图
图3八位数据通道原理图
4.微控制器实验原理图
图4微控制器实验原理图
第四章软件设计
4.1整体流程图
4.2微指令二进制代码:
4.3芯片程序
2764-1
:
20000000400080FF1A808000402980800080801D4080801A00000080FF00000000000080
:
00000001FF
2764-2
:
20000000206010FF8240080420824008604004822040088204826001FF0208606060600000
:
00000001FF
2764-3
:
2000000083421CFF8060E0917B80D030B270F0806B48C828A980EA6BFF8321A2528AFA7800
:
00000001FF
第五章调试过程
5.1硬件连线:
连接UBIN与UPCOUT,MF与MF-OUT
5.2实验步骤:
实验时,(在完成一个实验后,应将所有的信号状态置成“1”高电平状态)
将J1设置成左侧连接。
将UP信号置成低电平“0”。
在做模型机实验时应将“UPC-OUT”和“UBIN”用26芯电缆连接起来。
1、对31个开关设置应按下面方式设置:
单板方式位置:
(开关位置处于单板方式的位置有如下几个:
)
S3、S2、S1、S0、M、/CN、LDAR、CE、WE、LDDR1、LDDR2、SW-BUS、ALU-BUS、LDPC、LOAD、、PC-BUS、R0-BUS、LDIR、LDR0、LDR1、LDR2、、IR7、IR6、IR5、R1-BUS、R2-BUS、P
(1);
系统方式位置:
(开关位置处于系统方式的位置有如下几个:
)
、、UP、KSW7、KSW6、KSW5、KSW4、KSW3、KSW2、KSW1、KSW0、、DP、TJ、、、SWE、SRD;
1、J1跳线位置应在左侧连接。
2、实验在系统机上进行时,应将“UP”信号设置成低电平。
通过逻辑开关AN30(即SWE)将SWE从“1”-“0”-“1”,使微程序控制器的微指令地址为10000,强迫机器处于RAM写,重复执行微指令地址为10000,10110,10111微指令,把所写的程序写入RAM。
再通过逻辑开关AN31(即SRD),将SRD从“1”-“0”-“1”,使微程序控制器的指令地址为01000,强迫机器处于RAM读,执行微指令地址01000,11110,11111的微指令。
读出所写的程序,以校对写入的程序和数据是否正确,然后再运行程序。
UA4-UA0为微地址寄存器。
控制存贮器由3片2764组成,从而微指令长度为24位。
微命令寄存器为20位,由2片8D触发器74LS273和1片4D触发器74LS175组成。
微地址寄存器5位,由3片正沿触发的双D触发器74LS74组成,它们带有清零端和预置端。
在不判别测试的情况下,T2时刻打入的微地址寄存器内容为下一条指令地址。
在需要判别测试的情况下,T2时刻给出判别信号P
(1)=1及下一条微指令地址11000。
在T4上升沿到来时,根据P
(1)IR7,IR6,IR5的状态条件对微地址11000进行修改,然而按修改的微地址读出下一条微指令,并在下一个T2时刻将读出的微指令打入到微指令寄存器和微地址寄存器。
CLR(即P2)为清零信号。
当CLR为低电平时,微指令寄存器清零,微指令信号均无效。
微指令格式表3。
一条指令由若干条微指令组成,而每一条微指令由若干个微指令及下一微地址信号组成。
不同的微指令由不同的微命令和下一微指令地址组成。
它们存放在控制存贮器2764中,因此,用不同的微指令地址读出不同的微命令,输出不同的控制信号。
微程序控制器在清零后,总是先给出微地址为00000的微指令(启动程序)。
读出微地址为00000的微指令时,便给出下一条微指令地址00001。
微指令地址00001及00010的两条微指令是公用微指令。
微指令地址00001的微指令执行的是PC的内容送地址寄存器AR及PC加1微指令。
同时给出下一条微指令地址00010。
微指令地址00010的微指令在T2时序信号是,执行的是把RAM的指令送到指令寄存器,同时给出判别信号P
(1)及下一条微指令地址11000,在T4时序信号时,根据P
(1)IR7,IR6,IR5,修改微地址11000,产生下一条微指令地址,不同的指令(IR7,IR6,IR5也就不同)产生不同的下一条微指令地址。
在IR7,IR6,IR5为000(即无指令输入时),仍执行11000的微指令。
从而可对RAM进行连续读操作。
当执行完一条指令的全部微指令,即一个微程序的最后一条微指令时,均给出下一微指令地址00001,接着执行微指令地址00001,00010的公共微指令,读下条指令的内容,再由微程序控制器判别产生下一条微指令地址,以后的下一条微指令地址全部由微指令给出,直到执行完一条指令的若干条微指令,给出下一条微指令地址00001。
本实验仪输入输出信号引线及说明:
1.UA4-UA0微程序控制器的微地址输出信号,UA4为高位,UA0为低位。
此信号已接有指示灯,可监视地址变化。
2.IR7-IR5指示寄存器的IR7,IR6,IR5输出信号,输入至微程序控制器修改地址信号。
3.F0-F3时钟源输出信号端,F0输出频率为250KHZ,F1输出频率为500KHZ,F2输出频率为1MHZ,F3输出频率为2MHZ。
4.T1-T4时序信号发生器提供的4个标准时序输出信号,可以采用单拍或连续两种方式输出。
5.S3,S2,S1,S0有微程序控制器输出的ALU操作选择信号,以控制执行16种算术操作或16种逻辑操作中的一种操作。
6.M微程序控制器输出的ALU操作方式选择信号端,M=0执行算术操作;M=1执行逻辑操作。
7./CN微程序控制器输出的进位标志信号。
/CN=0表示ALU运算时最低位加进位1;/CN=1则表示无进位。
8.SWE微程序控制器的微地址修改信号。
SWE已接逻辑开关,先按下CLR清零键,使微地址为全0时,将逻辑开关从“1”-“0”-“1”(相当于负脉冲),微地址修改为10000使机器处于写RAM的微程序。
9.SRD微程序控制器的微地址修改信号。
SRD已接逻辑开关,先按下CLR清零键,使微地址为全0时,将逻辑开关从“1”-“0”-“1”(相当于负脉冲),微地址修改为01000使机器处于读RAM的微程序。
10.CLR清零信号输入端,已连接单次脉冲P2按键中任一个。
11.LDAR微程序控制器的输入信号,将程序计数器的内容打入到地址寄存器AR中,产生RAM的地址。
12.CE微地址控制器输出的RAM片选信号,CE=0时RAM6116被选中。
13.WE微程序控制器输出的RAM读写控制信号。
当CE=0时,如果WE=0为存储器读;如果WE=1为存储器写。
14.LDPC微程序控制器输出的PC加1信号。
15.LOAD微程序控制器的输出信号。
LOAD=0时,PC程序计数器处于并行置数状态;LOAD=1时,PC处于计数状态。
16.ALU-BUS微程序控制器的输出信号,控制运算器的运算结果是否送到总线BUS,低电平有效。
17.PC-BUS微程序控制器的输出信号,控制程序计数器的内容是否送到总线BUS,低电平有效。
18.R0-BUS微程序控制器的输出信号,控制寄存器R0的内容是否送到总线BUS,低电平有效。
19.SW-BUS微程序控制器的输出信号,控制8位数据开关SW7-SW0的开关量是否送到总线,低电平有效。
20.LDR0微程序控制器的输出信号,控制把总线上的数据打入寄存器R0。
21.LDDR1微程序控制器的输出信号,控制把总线上的数据打入运算暂存器DR1。
22.LDDR2微程序控制器的输出信号,控制把总线上的数据打入运算暂存器DR2。
23.LDIR微程序控制器的输出信号,控制把总线上的数据(指令)输入到指令寄存器IR中。
24.P
(1)微程序控制器的输出的修改地址P
(1)标志信号。
用于机器指令的微程序分支测试。
25.UP微程序控制器的微地址寄存器输出控制信号,UP=0微地址信号输出。
26.MF时序发生器的时钟输入端,从F0,F1,F2,F3中选一个。
27.P0,P0时序发生器启动控制信号,按一次P0时,时序发生器可输出一拍(单拍)或连续时序信号T1,T2,T3,T4。
28.TJ,DP时序发生器的停机单步控制信号端。
当DP为低电平时,按一次P0按键,产生连续时序信号T1,T2,T3,T4。
当DP为高电平时,时序发生器处于单拍状态,按一次P0,产生一拍(单拍)时序信号T1,T2,T3,T4。
TJ信号端已连接到微程序控制器产生的“自动停机”控制信号端。
29.P0,/P0,P1,/P1,P2,/P2单次脉冲(按键)输出端。
P为正脉冲,/P为负脉冲。
30.D7-D0八位数据通路的8条总线,D7为高位,D0为低位。
31.CN+4ALU的进位输出端,CN+4=0表示运算后进位输出。
32.A7-A0存贮器RAM的地址输入信号,A7为高位,A0为低位。
33.SW7-SW0八位数据输入端,在SW-BUS有效时,将八位数据输入到总线。
34.R0-BUS控制发送数据信号,将寄存器R0的数据发送到总线上,低电平有效。
35.R1-BUS控制发送数据信号,将寄存器R1的数据发送到总线上,低电平有效。
36.LDR1控制接收数据信号,将总线上的数据打入到寄存器R1。
37.R2-BUS控制发送数据信号,将寄存器R2的数据发送到总线上,低电平有效。
38.LDR2控制接收数据信号,将总线上的数据打入到寄存器R2。
39.PC7-PC0程序计数器PC输出信号端,PC7为高电平,PC0为低电平。
此信号已连接到逻辑电平指示灯上,以监视PC值变化。
40.LDPC程序计数器PC计数控制信号,LDPC=1时,在时序信号上升沿到来时,程序计数器PC地址加1。
5.3出现的问题
1.当执行完NOT指令时,运行结果出现错误,直接进行强制读,并且一直在循环11110与11111微指令,清零后结果也出现错误。
2.把数据都写到内存单元后,进行执行的时候,不出现所要的结果,一直在不停的执行COM指令。
3.当把实验箱接到计算机上用系统方式做时,加脉冲不出现结果,按P2也不清零。
5.4解决的方法
1.经执行发现在进行NOT指令时,R0->DR2这条指令不从内存取数,就无需PC->AR,PC+1这条指令,删除后运行结果正常。
2.经研究发现,原来把J1跳线放在了右边,当把J1跳线放在左边时,运行结果正常。
3.经检查发现,原来是线内部接触不良,当改为单板方式执行时,结果正常。
5.5实验数据
5.5.1测试数据:
地址
指令码
注释
00
20
IN
01
40
NOT
02
60
ADD
03
add<-09
04
08
LOA
05
add<-09
06
add<-0A
07
A0
COM
08
add<-0B
09
0A
0A
08
0B
0F
5.5.2存贮器写操作:
AN26,AN23,AN24,AN30,AN31设置为01111,即UP=0。
DP,TJ=11为单步状态,SWE=1,SRD=1。
SW7-SW0设置00000000。
按清零键P2,AN30从“1”-“0”-“1”即,这时,UA4-UA0显示为10000
存贮器写操作过程及显示结果表
P0
SW7~SW0
A7~A0
D7~D0
UA4~UA0
PC7~PC0
00H
10000
↑
00H
10110
00H
↑
20H
00H
01H
10111
01H
↑
00H
20H
10110
01H
↑
40H
01H
02H
10111
02H
↑
01H
40H
10110
02H
↑
60H
02H
03H
10111
03H
↑
02H
60H
10110
03H
↑
09H
03H
04H
10111
04H
↑
03H
09H
10110
04H
↑
80H
04H
05H
10111
05H
↑
04H
80H
10110
05H
↑
09H
05H
06H
10111
06H
↑
05H
09H
10110
06H
↑
0AH
06H
07H
10111
07H
↑
06H
0AH
10110
07H
↑
A0H
07H
08H
10111
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 实现