计算机组成原理课程设计——CPU与简单模型机设计

一、设计目的

1、掌握一个简单CPU的组成原理。

2、在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。

3、掌握微程序控制器设计。

二、设计任务与要求      

  • 设计任务:

用所学知识,设计并构造一台简单模型机。验证指导书所给出的五条指令的模型机实验。在此基础上,新设计五条机器指令。画出指令流程图,编写相应的微程序和机器语言调试程序,并上机调试通过。掌握整机概念。

  • 设计要求:

1.验证实验测试通过。接线完成。形成调试程序和微程序文本文件。联机写入和校验,并联机执行。为后边设计打下基础。

2.设计LDI指令并测试通过。包括指令格式、代码。指令流程图。微程序。调试程序。主要成果形成TEST1.TXT文件。

3.设计ADD指令并测试通过。要求同上。

4.设计AND指令并测试通过。同上。

5.设计 RL指令并测试通过。同上。

6.设计LAD指令并测试通过。同上。

三、设计方案

1、设计思路

第一步:按照机器指令的功能设计微程序指令流程图

第二步:按照微指令来设计微程序

第三步:将微程序写入后联机运行

2、使用的I/O设备

二进制数码开关,作为输入设备(IN),两位十六进制LED数码管,作为输出设备(OUT)。

3、使用的功能模块

CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计 数器(PC)和地址寄存器(AR)组成。

 4、功能模块的作用

(1)ALU作用:处理各种算术运算和逻辑运算。

(2)微程序控制器作用:基本任务是完成当前指令的翻译和执行。

(3)通用寄存器作用:可用于传送和暂存数据,也可参与算数逻辑运算并保存运算结果。

(4)程序计数器作用:用于存放下一条指令所在单元的地址的地方。

(5)地址寄存器作用:在移位脉冲作用下,存储在集萃器中的数据能逐位向左或向右的功能,可用来寄存数码,实现数据的串行——并行的转换、数值的运算及数据处理等功能。

四、连线图设计 

五、验证实验

1、包括五条指令的验证:IN(输入)、ADD(二进制加法)、OUT(输出)、JUMP(无条件转移)、HLT(停机)。

 

其中JUMP为双字节指令,其余均为单字节指令,其中********为addr所对应的二进制地址码。

2、根据要求设计微程序流程图。

其微指令格式如表5-1-1:

  1. 3.将每条微指令代码化将程序流程图按照指令格式转化成相应的“二进制代码表”
  2. 4.从 IN 单元读入数据送 R0 R0和自身相加,结果送R0 R0的值送OUT单元显示 

根据要求得到以下程序。

地址         内容          助记符              说明

00000000   00100000 ;    START: IN R0     从IN单元读入数据送至R0

00000001   00000000 ;    ADD  R0,R0        RO与自身相加送至R0

00000010   00110000 ;   OUT R0               R0值送至OUT单元显示

00000011   11100000 ;   JMP START            跳转至00H地址

00000100   00000000 ;

00000101   01010000 ;    HLT 停机

  1. 5.具体操作步骤

(1)采用联机写入校验:微程序和机器程序得以指定的格式写入到以 TXT 为后缀的文件中,微程序和机器程序的格式如下:

机器指令格式说明: $P XX XX

   $P :  机器指令代码

    XX : 十六进制地址

    XX : 机器指令标志

微指令格式说明: $M XX XXXXXX

     $M :微指令代码

XX:十六进制地址

XXXXXX:微指令标志

(2)TEST0.txt文件

; //*************************************** //

; // //

; // CPU 与简单模型机实验指令文件 //

; // //

; // By TangDu CO.,LTD //

; // //

; //*************************************** //

; //****** Start Of Main Memory Data ****** //

$P 00 20 ;  START: IN R0 IN 单元读入数据送 R0

$P 01 00 ;  ADD R0,R0 R0 和自身相加,结果送 R0

$P 02 30 ;  OUT R0 R0 的值送 OUT 单元显示

$P 03 E0 ;  JMP START 跳转至 00H 地址

$P 04 00 ;

$P 05 50 ;  HLT 停机

; //******* End Of Main Memory Data ******* //

; //**** Start Of MicroController Data **** //

$M 00 000001 ;  NOP

$M 01 006D43 ;  PC->AR,PC 1

$M 03 107070 ;  MEM->IR, P<1>

$M 04 002405 ;  R0->B

$M 05 04B201 ;  A B->R0

$M 1D 105141 ;  MEM->PC

$M 30 001404 ;  R0->A

$M 32 183001 ;  IN->R0

$M 33 280401 ;  R0->OUT

$M 35 000035 ;  NOP

$M 3C 006D5D ;  PC->AR,PC 1

; //** End Of MicroController Data **//

选择联机软件的“【转储】—【装载】”功能,在打开文件对话框中选择上面所保存的文件TEST0.txt, 软件自动将机器程序和微程序写入指定单元。

选择联机软件的“【转储】—【刷新指令区】”可以读出下位机所有的机器指令和微指令, 并在指令区显示,对照文件检查微程序和机器程序是否正确,如果不正确,则说明写入操作失 败,应重新写入,可以通过联机软件单独修改某个单元的指令,以修改微指令为例,先用鼠标 左键单击指令区的‘微存’TAB 按钮,然后再单击需修改单元的数据,此时该单元变为编辑框, 输入 6 位数据并回车,编辑框消失,并以红色显示写入的数据。

(3)运行程序方法:联机运行

将时序与操作台单元的开关 KK1 和 KK3 置为‘运行’档,进入软件界面,选择菜单命令 “【实验】—【简单模型机】”,打开简单模型机数据通路图。

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

  1. 功能设计
  1. 1.机器指令功能说明(ADD+LDI+AND+RL+LAD

序号

助记符

机器指令代码

十六进制代码

功能说明

0

ADD   R0im

00000000

00H

 R0<-(R0) + im

1

AND   R0im

00010000

10H

R0<-(R0) ∧ im

2

IN   R0, K

00100000

</
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值