CPU与简单模型机设计实验.docx

上传人:b****1 文档编号:1185068 上传时间:2022-10-18 格式:DOCX 页数:12 大小:370.58KB
下载 相关 举报
CPU与简单模型机设计实验.docx_第1页
第1页 / 共12页
CPU与简单模型机设计实验.docx_第2页
第2页 / 共12页
CPU与简单模型机设计实验.docx_第3页
第3页 / 共12页
CPU与简单模型机设计实验.docx_第4页
第4页 / 共12页
CPU与简单模型机设计实验.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

CPU与简单模型机设计实验.docx

《CPU与简单模型机设计实验.docx》由会员分享,可在线阅读,更多相关《CPU与简单模型机设计实验.docx(12页珍藏版)》请在冰豆网上搜索。

CPU与简单模型机设计实验.docx

CPU与简单模型机设计实验

实验项目

CPU与简单模型机设计实验

实验时间

2015年11月7日

实验目的

<1>掌握一个简单CPU的组成原理.

<2>在掌握部件单元电路的根底上,进一步将其构造一台根本模型计算机.

<3>为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念.

实验设备

PC机一台,TD-CMA实验系统一套

实验原理

本实验要实现一个简单的CPU,并且在此CPU的根底上,继续构建一个简单的模型计算机.CPU由运算器〔ALU〕、微程序控制器〔MC〕、通用存放器〔R0〕,指令存放器〔IR〕、程序计数器〔PC〕和地址存放器〔AR〕组成,如图5-1-1所示.这个CPU在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU必须和主存挂接后,才有实际的意义,所以还需要在该CPU的根底上增加一个主存和根本的输入输出部件,以构成一个简单的模型计算机.

图5-1-1根本CPU构成原理图

除了程序计数器〔PC〕,其余部件在前面的实验中都已用到,在此不再讨论.系统的程序计数器〔PC〕和地址存放器〔AR〕集成在一片CPLD芯片中.CLR连接至CON单元的总清端CLR,按下CLR按钮,将使PC清零,LDPC和T3相与后作为计数器的计数时钟,当LOAD为低时,计数时钟到来后将CPU内总线上的数据打入PC.如图5-1-2所示.

图5-1-2程序计数器原理图

本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:

IN〔输入〕、ADD〔二进制加法〕、OUT〔输出〕、JMP〔无条件转移〕,HLT〔停机〕,其指令格式如下〔高4位为操作码〕:

其中JMP为双字节指令,其余均为单字节指令,********为addr对应的二进制地址码.微程序控制器实验的指令是通过手动给出的,现在要求CPU自动从存储器读取指令并执行.根据以上要求,设计数据通路图,如图5-1-3所示.本实验在前一个实验的根底上增加了三个部件,一是PC〔程序计数器〕,另一个是AR〔地址存放器〕,还有就是MEM〔主存〕.因而在微指令中应增加相应的控制位,其微指令格式如表5-1-1所示.

图5-1-3数据通路图

表5-1-1微指令格式

系统涉与到的微程序流程见图5-1-4所示,当拟定"取指〞微指令时,该微指令的判别测试

字段为P<1>测试.指令译码原理见图3-2-3所示,由于"取指〞微指令是所有微程序都使用的

公用微指令,因此P<1>的测试结果出现多路分支.本机用指令存放器的高6位〔IR7—IR2〕

作为测试条件,出现5路分支,占用5个固定微地址单元,剩下的其它地方就可以一条微指令

占用控存一个微地址单元随意填写,微程序流程图上的单元地址为16进制.

图5-1-4简单模型机微程序流程图

当全部微程序设计完毕后,应将每条微指令代码化,表5-1-2即为将图5-1-4的微程序流程图按微指令格式转化而成的"二进制微代码表〞.

表5-1-2二进制微代码表

设计一段机器程序,要求从IN单元读入一个数据,存于R0,将R0和自身相加,结果存于

R0,再将R0的值送OUT单元显示.

根据要求可以得到如下程序,地址和内容均为二进制数.

实验步骤

1.按图5-1-5连接实验线路.

2.写入实验程序,并进展校验,分两种方式,手动写入和联机写入.

1>手动写入和校验

<1>手动写入微程序

①将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘编程’档,KK4置为‘控

存’档,KK5置为‘置数’档.

②使用CON单元的SD05——SD00给出微地址,IN单元给出低8位应写入的数据,连续

两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的低8位.

③将时序与操作台单元的开关KK5置为‘加1’档.

④IN单元给出中8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的

数据写到该单元的中8位.IN单元给出高8位应写入的数据,连续两次按动时序与操作台的开

关ST,将IN单元的数据写到该单元的高8位.

⑤重复①、②、③、④四步,将表5-1-2的微代码写入2816芯片中.

<2>手动校验微程序

①将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘校验’档,KK4置为‘控

存’档,KK5置为‘置数’档.

②使用CON单元的SD05——SD00给出微地址,连续两次按动时序与操作台的开关ST,

MC单元的指数据指示灯M7——M0显示该单元的低8位.

③将时序与操作台单元的开关KK5置为‘加1’档.

④连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯M15——M8显示该单

元的中8位,MC单元的指数据指示灯M23——M16显示该单元的高8位.

⑤重复①、②、③、④四步,完成对微代码的校验.如果校验出微代码写入错误,重新写

入、校验,直至确认微指令的输入无误为止.

<3>手动写入机器程序

①将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘编程’档,KK4置为‘主

存’档,KK5置为‘置数’档.

②使用CON单元的SD07——SD00给出地址,IN单元给出该单元应写入的数据,连续两

次按动时序与操作台的开关ST,将IN单元的数据写到该存储器单元.

③将时序与操作台单元的开关KK5置为‘加1’档.

④IN单元给出下一地址〔地址自动加1〕应写入的数据,连续两次按动时序与操作台的开

关ST,将IN单元的数据写到该单元中.然后地址会又自加1,只需在IN单元输入后续地址的

数据,连续两次按动时序与操作台的开关ST,即可完成对该单元的写入.

⑤亦可重复①、②两步,将所有机器指令写入主存芯片中.

<4>手动校验机器程序

①将时序与操作台单元的开关KK1置为‘停止’档,KK3置为‘校验’档,KK4置为‘主

存’档,KK5置为‘置数’档.

②使用CON单元的SD07——SD00给出地址,连续两次按动时序与操作台的开关ST,CPU

内总线的指数据指示灯D7——D0显示该单元的数据.

③将时序与操作台单元的开关KK5置为‘加1’档.

④连续两次按动时序与操作台的开关ST,地址自动加1,CPU内总线的指数据指示灯D7

——D0显示该单元的数据.此后每两次按动时序与操作台的开关ST,地址自动加1,CPU内

总线的指数据指示灯D7——D0显示该单元的数据,继续进展该操作,直至完成校验,如发现

错误,如此返回写入,然后校验,直至确认输入的所有指令准确无误.

⑤亦可重复①、②两步,完成对指令码的校验.如果校验出指令码写入错误,重新写入、

校验,直至确认指令码的输入无误为止.

2>联机写入和校验

联机软件提供了微程序和机器程序下载功能,以代替手动读写微程序和机器程序,但是微

程序和机器程序得以指定的格式写入到以TXT为后缀的文件中,微程序和机器程序的格式如下:

本次实验程序如下,程序中分号‘;’为注释符,分号后面的内容在下载时将被忽略掉:

选择联机软件的"[转储]—[装载]〞功能,在打开文件对话框中选择上面所保存的文件,

软件自动将机器程序和微程序写入指定单元.

选择联机软件的"[转储]—[刷新指令区]〞可以读出下位机所有的机器指令和微指令,

并在指令区显示,对照文件检查微程序和机器程序是否正确,如果不正确,如此说明写入操作失

败,应重新写入,可以通过联机软件单独修改某个单元的指令,以修改微指令为例,先用鼠标

左键单击指令区的‘微存’TAB按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,

输入6位数据并回车,编辑框消失,并以红色显示写入的数据.

3.运行程序

方法一:

本机运行

将时序与操作台单元的开关KK1、KK3置为‘运行’档,按动CON单元的总清按钮CLR,

将使程序计数器PC、地址存放器AR和微程序地址为00H,程序可以从头开始运行,暂存器A、

B,指令存放器IR和OUT单元也会被清零.

将时序与操作台单元的开关KK2置为‘单步’档,每按动一次ST按钮,即可单步运行一

条微指令,对照微程序流程图,观察微地址显示灯是否和流程一致.每运行完一条微指令,观

测一次CPU内总线和地址总线,对照数据通路图,分析总线上的数据是否正确.当模型机执行完JMP指令后,检查OUT单元显示的数是否为IN单元值的2倍,按下CON单元的总清按钮CLR,改变IN单元的值,再次执行机器程序,从OUT单元显示的数判别程序执行是否正确.

方法二:

联机运行

将时序与操作台单元的开关KK1和KK3置为‘运行’档,进入软件界面,选择菜单命令

"[实验]—[简单模型机]〞,打开简单模型机数据通路图.按动CON单元的总清按钮CLR,然后通过软件运行程序,选择相应的功能命令,即可联机运行、监控、调试程序,当模型机执行完JMP指令后,检查OUT单元显示的数是否为IN单元值的2倍.在数据通路图和微程序流中观测指令的执行过程,并观测软件中地址总线、数据总线以与微指令显示和下位机是否一致.

图5-1-5实验接线图

 

实验结果

输入数据

助记符

机器指令代码

结果

备注

00010001

IN

00100000

R0=11

从IN单元读入数据到R0中

ADD

00000000

R0=22

R0和自身相加结果送到R0中

OUT

00110000

OUT=22

把R0的数据传送到OUT单元显示

JMP

11100000

跳转到00H地址

HLT

01010000

停机操作

实验结果如以下图:

 

结果分析

在IN单元中输入数据00010001,使用CON单元的SD27——SD20给出指令IN、ADD、OUT、TMP、HLT的数据00100000、00000000、00110000、11100000、01010000,连续按动时序与操作台的开关ST,观察电脑中的数据通路图记录数据.

〔1〕当CON单元输入指令代码00100000时,数据通路图中IN中的数据传送到R0中,R0中显示R0=11,实现了从IN单元读入数据传送到R0中过程.

〔2〕当CON单元输入指令代码00000000时,数据通路图中A=11、B=11通过ALU运算器实现自加后把结果传送给R0,R0中显示R0=22,实现了R0和自身相加结果送到R0中的过程.

〔3〕当CON单元输入指令代码00110000时,数据通路图中把R0的数据传送到OUT中,OUT显示OUT=22,实现了把R0的数据传送到OUT单元显示.

〔4〕当CON单元输入指令代码11100000时,数据通路图强制跳转地址到00H.

〔5〕当CON单元输入指令代码01010000时,实现停机操作.

实验心得

本次试验和上次实验相比拟仅仅多了一条转移地址指令,其他指令均和上次一样.虽然这次试验有上一次的根底做的比拟顺手,但在最终调试过程中依然遇到了问题,浪费了很长时间,导致自己的成绩并不太好.下次一定会再接再厉.

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

当前位置:首页 > 人文社科 > 教育学心理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1