一、设计目的

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 R0IN 单元读入数据送 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,PC1

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

$M 04 002405 ;  R0->B

$M 05 04B201 ;  AB->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,PC1

; //** 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

20H

R0<- IN

3

OUT   L0,R0

00110000

30H

OUT<-L0

4

MOV   R0,[R0]

01000000

40H

R0<- [R0]

5

HLT

01010000

50H

暂停

6

LDI   R0, im

01100000

60H

R0<- im

7

INC    R0

01110000

70H

R0<-(R0) + 1

8

SUB    R0,im

10000000

80H

R0<-(R0) - im

9

OR    R0,im

10010000

90H

R0<-(R0)∨ im

10

RR    R0, 1

10100000

A0H

R0<-将(R0)右移1位

11

RL    R0, 1

10110000

B0H

R0<-将(R0)左移1位

12

LAD  R0, addr

11000000

C0H

R0<-[addr]

13

STA  addr, R0

11010000

D0H

ADDR<-(R0)

14

JMP  addr

11100000

E0H

PC<-E

15

BZC

11110000

F0H

注释:im为立即数。addr为直接地址。从而相应的指令变为双字节指令。

2、指令流程图设计

3、微程序设计

ADD:

地址

十六进制

高五位

S3-S0

A字段

B字段

C字段

MA5-MA0

06

006D47

00000

0000

110

110

101

000111

07

102008

00010

0000

010

000

000

001000

08

04B201

00000

1001

011

001

000

000001

31

001406

00000

0000

001

010

000

000110

LDI:

地址

十六进制

高五位

S3-S0

A字段

B字段

C字段

MA5-MA0

09

103001

00010

0000

011

000

000

000001

3C

006D5D

00000

0000

110

110

101

011101

AND:

地址

十六进制

高五位

S3-S0

A字段

B字段

C字段

MA5-MA0

07

006D08

00000

0000

110

110

100

001000

08

102009

00010

0000

010

000

000

001001

09

013201

00000

0010

011

001

000

000001

31

001407

00000

0000

001

010

000

000111

RL:

地址

十六进制

高五位

S3-S0

A字段

B字段

C字段

MA5-MA0

06

03B201

00000

0111

011

001

000

000001

3B

001406

00000

0000

001

010

000

000110

LAD:

地址

十六进制

高五位

S3-S0

A字段

B字段

C字段

MA5-MA0

08

106009

00010

0000

110

000

000

001001

09

103001

00010

0000

011

000

000

000001

3C

006D48

00000

0000

110

110

101

001000

4、调试程序设计

  1. 最终联机程序清单
  1. 1.验证

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

; // //

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

; // //

; // By TangDu CO.,LTD //

; // //

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

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

$P 00 20 ; START: IN R0IN 单元读入数据送 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,PC1

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

$M 04 002405 ; R0->B

$M 05 04B201 ; AB->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,PC1

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

  1. 2.ADD

$P 00 20 ; START: IN R0IN 单元读入数据送 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 停机

$M 06 006D47 ;

$M 07 102008 ;

$M 08 04B201 ;

$M 31 001406 ; R0->A

  1. 3.LDI

$P 00 60 ; LDI

$P 01 33 ;

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

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

$P 04 E0 ; JMP START 

$P 05 00 ;

$P 06 03 ; 

$P 07 50 ; HLT 停机

$M 09 103001 ; MEM->R0

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

  1. 4.AND

$P 00 20 ; IN

$P 01 10 ; AND

$P 02 F0 ;

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

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

$P 05 00 ;

$P 06 50 ; HLT 停机

$M 07 006D08 ; PC->AR PC+1

$M 08 102009 ; MEM->B

$M 09 013201 ; AB

$M 31 001407 ; R0->A

  1. 5.RL

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

$P 01 B0 ; RL

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

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

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

$P 05 00 ;

$P 06 50 ; HLT 停机

$M 06 03B201 ;R0->A

$M 3B 001406 ;A左移->R0

  1. 6.LAD

$P 00 C0 ; LAD

$P 01 37 ;

$P 02 30 ; JMP START 跳转至 00H 地址

$P 03 40 ;

$P 04 50 ; HLT 停机

$M 00 000001 ; NOP

$M 08 106009 ; MEM->AR

$M 09 103001 ; MEM->R0

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

八、调试过程

1.验证

2.ADD

  1. 3.AND
  1. 4.LDI
  1. 5.RL
  1. 6.LAD

9、参考文献

[1]白中英、戴志涛主编.《计算机组成原理》.第五版 科学出版社

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

  1. 计算机组成原理简单模型机实验,CPU 与简单模型机设计实验

    计算机科学与技术系 实 验 报 告 专业名称 计算机科学与技术 课程名称 计算机组成原理 项目名称 CPU 与简单模型机设计实验 班 级 学 号 姓 名 同组人员 无 实验日期 2016.6 一.实验 ...

  2. 【计算机组成原理】四、CPU与简单模型机设计实验

    文章目录 一.实验目的 二.实验原理 三.实验步骤 四.实验结论 一.实验目的 1.掌握一个简单CPU的组成原理 2.在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机 3.为其定义五条机器 ...

  3. 计算机模型机设计实验报告,计算机组成原理课程设计实验报告-基本模型机设计与实现...

    计算机组成原理课程设计实验报告-基本模型机设计与实现 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 计 算 机 组 成 原 理实 ...

  4. 计算机组成原理模型机设计实验总结,计算机组成原理课程设计实验报告-基本模型机设计与实现.docx...

    计算机组成原理课程设计实验报告-基本模型机设计与实现 计 算 机 组 成 原 理 实 验 报 告 评 语: 成绩 教 师: 年 月 日 班 级: 1403011 学 号: 140301124 姓 名: ...

  5. 计算机模型机设计实验报告,基本模型机设计与实现 实验报告

    <基本模型机设计与实现 实验报告>由会员分享,可在线阅读,更多相关<基本模型机设计与实现 实验报告(3页珍藏版)>请在人人文库网上搜索. 1.____学院____专业_____ ...

  6. 计算机组成原理课程设计基本模型机,广东海洋大学计算机组成原理课程设计-基本模型机的设计与实现讲解...

    <计算机组成与结构>课程实习 基本模型机的设计与实现 系 别: 信息学院 班 级: 计科1141 指导教师: 刘桃丽 姓名 邓超荣 何涛 邓周光 学号 分工 成绩 201411621110 ...

  7. 概念模型计算机实验总结,计算机组成原理——cpu的简单模型实验报告

    #cpu与简单模型机 姓名:学号: 班级:计科班 实验名称:CPU与简单模型机实验性质:综合型实验时间:2018.12.1 一.实验目的 (1) 掌握一个简单 CPU 的组成原理. (2) 在掌握部件 ...

  8. 计算机组成原理——cpu的简单模型实验报告

    #cpu与简单模型机 姓名: 学号: 班级:计科班实验名称:CPU与简单模型机 实验性质:综合型实验 时间:2018.12.1 一.实验目的 (1) 掌握一个简单 CPU 的组成原理. (2) 在掌握 ...

  9. 计算机组成原理复杂机实验总结,计算机组成原理复杂模型机设计_课程设计报告.doc...

    成绩: 计算机组成原理课程设计实验报告 复杂模型机设计 姓 名 _ 曾凯杨 班 级 _ 计算机102 学 号 _ 40 实验地点 _ 计算机实验室四楼 实验时间 _ 3月6日 指导教师 刘晶 概述 这 ...

最新文章

  1. 生成工具-CodeSmith-享受编程的乐趣(三)(转载)
  2. onpostexecute 中更新adapter 事变_Spring面试中常见的9种设计模式!
  3. Cocos 2d-X Lua 游戏添加苹果内购(一) 图文详解准备流程
  4. k8s之VelaQL简单理解
  5. [渝粤教育] 中国地质大学 事故应急救援 复习题
  6. v4l2 框架下如何设置分辨率_Linux下如何进行FTP设置
  7. 软件工程第八次作业——例行报告
  8. 多线程写图像文件的一点小测试
  9. Struts2笔记——通配符和动态方法调用
  10. java-Aspose.Words的使用(Office文档转为PDF)
  11. 凸优化第九章无约束优化 9.1无约束优化问题
  12. 动手刷LeetCode-转换罗马字符
  13. 什么是化工工程?重化工业包含哪些项目?
  14. [NOIP2007]矩阵取数游戏(详细题解、含多种思路)
  15. 交换机与路由器技术-04-远程管理交换机
  16. 一只鸟就这样耍弄了一个人
  17. html页面中写密码修改,html输入密码进入页面 html做一个静态的输入密码跳转页...
  18. 如何提高程序员的生产率 (2)
  19. android中64位手机,我们需要64位Android手机吗?
  20. 03 Opencv部分经典例程赏析

热门文章

  1. ibase4J分布式架构使用eclipse部署
  2. Hbase按指定列族中指定列的列值查找数据Hbase命令
  3. 土壤水分传感器与介电常数的区别
  4. VNC安装常见问题与处理
  5. dubbo检测本机IP地址错误
  6. 锁相环的原理和作用——基础补充(五)
  7. 【高级篇 / DNS】(7.0) ❀ 05. 用花生壳作 FortiGate 的 DDNS ❀ FortiGate 防火墙
  8. 中考计算机vb试题及答案,2017计算机二级VB练习题附答案
  9. 数学建模方法——SPSS主成分分析法
  10. autotools工具使用