设计指导书.docx

上传人:b****2 文档编号:2591208 上传时间:2023-05-04 格式:DOCX 页数:48 大小:84.54KB
下载 相关 举报
设计指导书.docx_第1页
第1页 / 共48页
设计指导书.docx_第2页
第2页 / 共48页
设计指导书.docx_第3页
第3页 / 共48页
设计指导书.docx_第4页
第4页 / 共48页
设计指导书.docx_第5页
第5页 / 共48页
设计指导书.docx_第6页
第6页 / 共48页
设计指导书.docx_第7页
第7页 / 共48页
设计指导书.docx_第8页
第8页 / 共48页
设计指导书.docx_第9页
第9页 / 共48页
设计指导书.docx_第10页
第10页 / 共48页
设计指导书.docx_第11页
第11页 / 共48页
设计指导书.docx_第12页
第12页 / 共48页
设计指导书.docx_第13页
第13页 / 共48页
设计指导书.docx_第14页
第14页 / 共48页
设计指导书.docx_第15页
第15页 / 共48页
设计指导书.docx_第16页
第16页 / 共48页
设计指导书.docx_第17页
第17页 / 共48页
设计指导书.docx_第18页
第18页 / 共48页
设计指导书.docx_第19页
第19页 / 共48页
设计指导书.docx_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

设计指导书.docx

《设计指导书.docx》由会员分享,可在线阅读,更多相关《设计指导书.docx(48页珍藏版)》请在冰点文库上搜索。

设计指导书.docx

设计指导书

目录

第一章微指令编码

第二章机器指令集

第三章硬件及时序说明

第一节.门控说明

第二节.锁存器或寄存器

第三节.机器周期寄存器

第四节.微地址产生逻辑

第五节.方式译码及选择电路

第六节.PLA译码逻辑

第七节.存储器读写时序说明

第八节.输入输出设备

第四章典型工作过程说明

第一节微指令设计举例

第二节有关短过程

第三节典型工作过程

第四节典型指令流程

第五章几个典型设计任务及提示

第一节.MOV指令设计

第二节.ROR和ROL指令设计

第三节.AND和OR指令设计

第四节.综合设计任务

第六章实验总体安排

 

注:

本软件一共有5个文件。

“a.txt”、“cpu(演示版).exe”、“cpu(设计版).exe”、“设计总图.bmp”以及“设计指导书.doc”。

解压后请把它们放在同一目录下。

打开“cpu(演示版).exe”或“cpu(设计版).exe”后,都请先单击“复位”。

第一章微指令编码

9876543210

下址字段

9号位最高

0000000000

最小下址

0000000001

1111111111

最高下址

10

0

1

JPLA

依指令码转移

151413

000

001

010

0→NO1

置“0”NO1周期

011

(R)→LA

100

(R)→LB

101

DBUS→R

110

DBUS→IR

111

CLEAR

CLEARLA和LB

1211

00

01

JM

依寻址方式转移

10

JC

依C标志转移

11

JZ

依Z标志转移

16

0

1

(PC)+1→PC

212019

S2S1S0

000

001

A加B

010

A

011

B

100

A取反

101

A与B

110

A或B

111

A减1

1817

00

01

DBUS→LA

10

DBUS→LB

11

DBUS→PC

22

0

1

1→C0

252423

SH2SH1SH0

000

001

数据左移(不循环)

010

数据右移(不循环)

011

数据带C循环左移

100

数据带C循环右移

101

数据直通DR

110

移位器送AR

111

(PC)→AR

282726

000

001

MR

010

MW

011

IOR

100

IOW

101

110

111

29

30

31

0

0

0

1

(DR)→DBUS

1

(AR)→ABUS

1

1→NO1

置“1”NO1周期

第二章机器指令集

一.指令格式

本机器采用16长指令字:

其中操作码占6位(b15~b10);

操作数1(简称NO1)地址占6位(b9~b5);

操作数2(简称NO2)地址占6位(b4~b0)。

b15b14b13b12b11b10

b9b8b7b6b5

b4b3b2b1b0

操作码

操作数1地址

操作数2地址

其中b9b8和b4b3分别代表操作数1和操作数2的寻址方式:

寻址方式

b9(或b4)

b8(或b3)

0

0

立即数方式

0

1

存储器方式

1

0

寄存器直接方式

1

1

寄存器间接方式

二.指令编码

指令名称

(转移及控制类)

操作码

相应机器指令示例

b15b14b13b12b11b10

b9b8b7b6b5

b4b3b2b1b0

HALT

000000

000000

00000

00000

JZ

000001

JNZ

000010

JC

000011

JNC

000100

000100

000000

00000

00000

00000

01000

以上两行代表“JNC#08H”

JMP

000101

指令名称

(算术运算类)

操作码

相应机器指令示例

b15b14b13b12b11b10

b9b8b7b6b5

b4b3b2b1b0

MOV

000110

000110

000000

10000

00000

01000

10001

以上两行代表“MOVR0,11H”

ADD

000111

000111

10000

10001

上行代表“ADDR0,R1”

SUB

001000

CMP

001001

INC

001010

DEC

001011

指令名称

(逻辑运算类)

操作码

相应机器指令示例

b15b14b13b12b11b10

b9b8b7b6b5

b4b3b2b1b0

AND

001100

001100

10011

10001

上行代表“ANDR3,R1”

OR

001101

COM

001110

NEG

001111

ROR

010000

ROL

010001

ASR

010010

ASL

010011

指令名称

(输入输出类)

操作码

相应机器指令示例

b15b14b13b12b11b10

b9b8b7b6b5

b4b3b2b1b0

IN

010100

OUT

010101

010101

000000

10001

00000

01000

00100

以上两行代表“OUTR1,04H”

第三章硬件及时序说明

第一节.门控说明

所有“门控”均指三态逻辑,当相应微命令为“1”时,该部件连通,否则为高阻态(相当于断开)。

第二节.锁存器或寄存器(软件类专业的学生可不看本段)

所有带“器”字的部件均指锁存器或寄存器,为时序部件,具有记忆能力,它们的左下角均标有一个粗点,表示需要时钟。

工作描述:

①“微指令锁存器”

每周期一开始将新内容锁入,然后输出微命令,且生成下一条微指令地址。

②“微地址寄存器”

在每周期中间时钟下沿,将下一条微指令地址锁存。

③“程序计数器PC”

如果本周一开始就送来了“(PC)+1→PC”,则下跳沿时即可实现PC加1。

本模型机采用按字编址。

即每16位才有一个地址。

④“程序状态字PSW”

周期的正半周ALU和移位器等完成运算,下降沿时存入PSW。

⑤“指令寄存器IR”

如果本周期正半周送来了“DBUS→IR”,则新指令码经IR立即送出,且负跳沿时将其锁入IR。

⑥“通用寄存器Ri”

如果本周一开始就送来了DBUS→R,则负跳沿时将其锁入Ri。

⑦“地址暂存器AR”

如果本周一开始就送来了SH2=1和SH1=1,则新值(PC的内容或移位器的输出)立即送出,且负跳沿时锁存该新值。

⑧“数据暂存器DR”

如果本周一开始就送来了SH五组合的任意一种,则新值经DR立即送出,且负跳沿时将其锁入DR。

⑨“锁存器A”

如果本周一开始就送来了(R)→LA或DBUS→LA之一,则新值经A立即送出,且负跳沿时将其锁入A。

⑩“锁存器B”

类似于锁存器A。

第三节.机器周期寄存器

取指(完毕时置“1”NO1)

↑置“1”NO1周期寄存器

CZ型转移分析(只有JC和JZ时需要本节拍)*

指依据JCJZ

NO1的寻址方式分析(JM型)

更新微地址寄存器,选择Rn

取NO1

根据NO1寻址方式,取NO1

清“0”NO1,分析NO2的寻址方式(JM型)

↑清“0”NO1周期寄存器

取NO2

根据NO2寻址方式,取NO2

执行指令

本设计只用到NO1即可。

一般指令周期流程大致安排如下表。

第四节.微地址产生逻辑(软件类专业的学生只需看“JM=1”对应的一栏)

JZ=1

Z=0

JZ指令时:

回取指;或先PC再+1,再回取指。

下址字段总是000H。

JNZ指令时:

下址字段依据“寻址方式”变(转移)

Z=1

JNZ指令时:

回取指;或先PC再+1,再回取指。

下址字段总是000H。

JZ指令时:

下址字段依据“寻址方式”变(转移)

JC=1

C=0

JC指令时:

回取指;或先PC再+1,再回取指。

下址字段总是000H。

JNC指令时:

下址字段依据“寻址方式”变(转移)

C=1

JNC指令时:

回取指;或先PC再+1,再回取指。

下址字段总是000H。

JC指令时:

下址字段依据“寻址方式”变(转移)

JM=1

时(即依据

“寻址方式”

变)

立即方式

下址字段固定加0

存储器方式

下址字段固定加1

寄存器直接方式

下址字段固定加2

寄存器间接方式

下址字段固定加3

第五节.方式译码及选择电路

NO1=1

选择NO1中的寻址方式

选择NO1中的Rn

NO1=0

选择NO2中的寻址方式

选择NO2中的Rn

第六节.PLA译码逻辑

当微指令“PLA”=1时,根据指令码转去相应的微程序首地址。

取指微指令占000H和001H单元,HALT对应002H(全零)和003单元(全零)。

其余指令分配如下表:

指令名称

(转移及控制类)

编码

CROM中的微程序首址

HALT

000000

002H

JZ

000001

004H(共32个单元)

JNZ

000010

024H(共32个单元)

JC

000011

044H(共32个单元)

JNC

000100

064H(共32个单元)

JMP

000101

084H(共32个单元)

指令名称

(算术运算类)

编码

CROM中的微程序首址

MOV

000110

0A4H(共64个单元)

ADD

000111

0E4H(共64个单元)

SUB

001000

124H(共64个单元)

CMP

001001

164H(共64个单元)

INC

001010

1A4H(共32个单元)

DEC

001011

1C4H(共32个单元)

指令名称

(逻辑运算类)

编码

CROM中的微程序首址

AND

001100

1E4H(共64个单元)

OR

001101

224H(共64个单元)

COM

001110

264H(共32个单元)

NEG

001111

284H(共32个单元)

ROR

010000

2A4H(共32个单元)

ROL

010001

2C4H(共32个单元)

ASR

010010

2E4H(共32个单元)

ASL

010011

304H(共32个单元)

指令名称

(转移及控制类)

编码

CROM中的微程序首址

IN

010100

324H(共32个单元)

OUT

010101

344H(共32个单元)

第七节.存储器读写时序说明

为简化模型设计,假定MR在周期一开始就有效,并在正半周结束时可以得到稳定输出;MW在周期中间开始有效,此时数据和地址已稳定准备在总线上。

 

第八节.输入输出设备(软件类专业的学生可不看本段)

这里一共模拟4个设备:

输入设备0#

查寻方式

状态口

口地址0

数据口

口地址1

输入设备1#

无条件方式

口地址2

输出设备0#

无条件方式

口地址3

输出设备1#

无条件方式

口地址4

第四章典型工作过程说明

特别说明:

本章后3节仅供参考,以给学生实验时提供思路。

第一节.微指令设计举例

ADDR0,R1:

(机器码:

0001111000010001)

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

十六进制

0x000

0

1

0

0

0

0

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0x43800001

0x001

1

1

0

0

0

1

0

0

0

0

0

0

0

0

0

1

1

1

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0xc401c400

0x0e4(JM)

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

1

1

0

0

1

0

1

0x000008e5

0x0e5

0x0e6

0x0e7

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

1

1

1

0

1

0

0

1

0x000060e9

0x0e8

0x0e9(JM)

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

0

0

0

1

1

1

0

1

0

1

0

0x000048ea

0x0ea

0x0eb

0x0ec

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

1

1

1

0

1

1

1

0

0x000080ee

0x0ed

0x0ee

0

0

1

0

0

0

1

0

1

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

1

1

1

0

1

1

1

1

0x228800ef

0x0ef

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0x2000a000

0x0f0

流程描述:

1.送出(PC),参见短过程1

SH2=SH1=SH0=1(pc→AR),(AR)→ABUS。

2.指令入IR,参见短过程2

(AR)→ABUS,MR,DBUS→IR,(PC)+1→PC,JPLA,“1”→NO1。

3.NO1的寻址方式分析(要JM),参见短过程14

4.寄存器送LA,参见短过程4

(R0)→LA

5.(要“0”→NO1,JM),参见短过程15

6.寄存器送LB,参见短过程4

(R1)→LB

7.ALU数据运算并送出,参见短过程11

选择S2、S1、S0(001),选择SH2、SH1、SH0(101),发出(DR)→DBUS。

8.从DR写入R,参见短过程6

(DR)→DBUS,DBUS→R。

实验运行步骤:

1.将上述微代码逐行按微地址写入(如果没有的话)a.txt文件,写好后关闭a.txt。

注意a.txt必须与CPU(设计).exe在同一文件目录下);

2.打开CPU(设计版).exe,单击“复位”。

然后将“ADDR0,R1”的机器码IE11H(即0001111000010001的16进制码)手工放在主存储器的00H单元,手工在R0中放入一数(如十六进制1),R1中放入另一个数(如十六进制2);

3.逐次单击“运行”,直到在R1中得到所求和值(如3)。

 

MOVR0,11H;(机器码:

00011010000010000000000000010001)

31

30

29

28

27

26

25

24

23

22

21

20

19

18

17

16

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

十六进制

0x000

0

1

0

0

0

0

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0x43800001

0x001

1

1

0

0

0

1

0

0

0

0

0

0

0

0

0

1

1

1

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0xc401c400

0x0a4(JM)

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

1

0

0

1

0

1

0x000008a5

0x0a5(+0)

0x0a6(+1)

0x0a7(+2)

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

1

0

1

0

1

1

1

0

0x000060ae

0x0a8(+3)

0x0a9(JM)

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

0

0

0

1

0

1

0

1

0

1

0

0x000048aa

0x0aa(+0)

0x0ab(+1)

0

1

0

0

0

0

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0

1

1

1

1

0x438000af

0x0ac(+2)

0x0ad(+3)

0x0ae

0

0

0

0

0

0

1

0

1

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0

1

0

0

1

0x029000a9

0x0af

0

1

0

0

0

1

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

1

0

1

1

0

0

0

0

0x440400b0

0x0b0

0

1

0

0

0

0

1

1

0

0

0

1

1

0

0

1

0

0

0

0

0

0

0

0

1

0

1

1

0

0

0

1

0x431900b1

0x0b1

0

1

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0x68000000

0x0b2

流程描述:

1.送出(PC),参见短过程1

SH2=SH1=SH0=1(pc→ar),(AR)→ABUS。

2.指令入IR,参见短过程2

(AR)→ABUS,MR,DBUS→IR,(PC)+1→PC,JPLA,“1”→NO1。

3.NO1的寻址方式分析,参见短过程14

JM=1

4.寄存器送LA,参见短过程4

(R0)→LA

5.ALU数据运算并送出,参见短过程11

选择S2、S1、S0(010),选择SH2、SH

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2