计算机组成原理课程设计TEC指令集设计.docx
- 文档编号:17083288
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:33
- 大小:340.66KB
计算机组成原理课程设计TEC指令集设计.docx
《计算机组成原理课程设计TEC指令集设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计TEC指令集设计.docx(33页珍藏版)》请在冰点文库上搜索。
计算机组成原理课程设计TEC指令集设计
s
课设报告
项目名称:
16位机微程序控制器指令系统的设计与实现
课程名称:
计算机组成原理课程设计
小组成员:
缴经纬(130781)
张博伟(130817)
刘博爱(130791)
王子贤(130780)
教师:
马莉秦彩云杜天仓
信息工程学院计算机系
目录
一、设计题目…………………………………………………………………………1
二、设计目的…………………………………………………………………………1
三、设计说明…………………………………………………………………………1
四、设计内容…………………………………………………………………………1
五、任务分工…………………………………………………………………………1
六、课程设计环境……………………………………………………………………1
七、基本指令和扩展指令的执行流程图……………………………………………2
1、基本指令流程框图
2、扩展指令流程框图
八、基本指令和扩展指令的微程序编码表…………………………………………4
九、基本、扩展指令影射表…………………………………………………………5
基本指令入口地址映射表
扩展指令入口地址映射表
一十、指令设计方案……………………………………………………………………6
将设计好的微码写入控制存储器
十一、测试程序………………………………………………………………………9
在单步方式下,通过指示灯观察各类扩展指令的微码
测试扩展指令的程序
十二、遇到问题以及解决方案………………………………………………………19
十三、总结
一、设计题目
16位机位程序控制器指令系统的设计与实现
二、设计目的
1、深入理解计算机控制器的功能、组成知识和各类典型指令的执行过程;
2、对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;
3、学习为程序控制器的设计过程和相关技术。
三、设计说明
1、TEC——2000教学机的微程序控制器主要由作为选件的微程序控制器小板和教学机大板上的7片GAL20VB组成
2、TEC——2000教学机微程序控制器上要实现的全部基本指令和扩展指令的控制信号都是由微程序小板上的7片控制存储器给出的。
3、应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用t、p命令单步调试扩展指令,只能用G命令执行扩展指令。
4、要明白TEC——2000教学机支持的指令格式及指令执行流程分组情况;理解TEC——2000教学机中已经设计好并正常运行的各类指令的功能、格式、执行流程和控制信号的组成。
5、要明确自己要实现的指令格式、功能、执行流程设计中必须遵循的约束条件。
6、为了完成扩展指令的功能、格式和执行流程,并在计算机上跳是正确的实验内容,具体过程包括;
(1)确定指令格式和功能,要受教学机已有硬件的约束,应该尽量与已实现指令的格式和分类办法保持一致:
(2)划分指令执行步骤并设计每一步的执行功能,划出指令执行流程框图;
(3)在指令微程序表中填写每一个程序控制信号的状态值,注意要特别仔细,并有意识的体会这些信号的控制作用;分组及任务分配
四、设计内容
完成微程序设计其指令系统的设计,设计29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、运行、调试正确。
五、任务分工
每组四名同学,任务分配成分工为;
1、设计基本指令的执行流程,划出29条基本指令的执行流程框图和微程序编码表。
王子贤
2、设计扩展指令的执行流程,划出19条扩展指令的执行流程框图和微程序编码表。
张博伟
3、确定微码各自段与控制存储器各个芯片之间的关系,列表写出各控制存储器芯片中存储单元的内容,将设计好的微码装入芯片。
缴经纬
4、编写包括所有指令的测试程序,通过运行这些程序监察指令设计是否正确。
刘博爱
六、课程设计环境
1、硬件环境;PC机一台,TEC——2000实验机一台、微程序控制器实验板一块。
2、软件环境:
(1)WinXP、DOS
(2)TEC2000仿真终端程序PCEC
(3)TEC——2003监控程序
七.基本指令和扩展指令流程图
7.1基本指令流程框图
图7.1基本指令A组
图7.2基本指令组B,D组
图7.3扩展指令CLC,JRNS
八.基本指令和扩展指令的微程序编码表
图8.1基本指令微程序编码表
图8.2扩展指令微程序编码表
//加法的入口地址已经被修改为70,采用报告时应注意!
图8.3JRNS和CLC指令编码
9.基本、扩展指令影射表
9.1基本指令入口地址映射表
ROM0
基本指令入口地址映射表
序号
指令
编码
入口地址
0
00
0
01
0
02
0
03
00
1
ADDDR,SR
00000000
04
01
2
SUBDR,SR
00000001
05
02
3
ANDDR,SR
00000010
06
06
4
ORDR,SR
00000110
07
04
5
XORDR,SR
00000100
08
03
6
CMPDR,SR
00000011
09
05
7
TESTDR,SR
00000101
0A
07
8
MVRRDR,SR
00000111
0B
09
9
INCDR
00001001
0C
08
10
DECDR
00001000
0D
0A
11
SHLDR
00001010
0E
0B
12
SHRDR
00001011
0F
44
13
JRCOFFEST
01000100
10
45
14
JRNZOFFSET
01000101
10
46
15
JRZOFFSET
01000110
10
47
16
JRNZOFFSET
01000111
10
41
17
JROFFSET
01000001
11
82
18
INPORT
10000010
12
86
19
OUTPORT
10000110
12
84
20
PSHF
10000100
15
85
21
PUSHDR
10000101
15
87
22
POPDR
10000111
17
8C
23
POPF
10001100
17
83
24
STRR[DR],SR
10000011
19
81
25
LORRDR,[SR]
10000001
1B
88
26
MVRDDR,DATA
10001000
1D
80
27
JMPAADR
10000000
1E
CE
28
CALAADR
11001110
1F
8F
29
RET
10001111
23
9.2扩展指令入口地址映射表
扩展指令入口地址映射表
序号
指令
编码
入口地址
20
1
ADC
00100000
50
21
2
SBB
00100001
51
2A
3
RCL
00101010
54
2B
4
RCR
00101011
55
2C
5
ASR
00101100
53
2D
6
NOT
00101101
52
60
7
JMPR
01100000
5A
64
8
JRS
01100100
69
65
9
JRNS
01100101
69
6C
10
CLC
01101100
56
6D
11
STC
01101101
57
6E
12
EI
01101110
58
6F
13
DI
01101111
59
E0
14
CALR
11100000
64
E4
15
LDRA
11100100
5B
E5
16
LDRX
11100101
5D
E7
17
STRA
11100111
5F
E6
18
STRX
11100110
61
EF
19
IRET
11101111
67
10.指令设计方案
10.1ROM0和ROM1芯片截图
10.2ROM2和ROM3芯片截图
10.3ROM4和ROM5芯片截图
10.4ROM6和ROM7芯片截图
11、测试程序
1、在单步方式下,通过指示灯观察各类指令的微码。
<1>选择基本指令的A组指令中的ADD指令,观察其节拍流程
(1)置拨动开关SW=0000000000000001;(表示指令ADDR0,R1)
(2)按RESET按键;小板指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;‘
(3)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000000;下址的指示灯显示00000000;(本拍完成公共操作0→PC、DI#=0)
(4)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000001,下址的指示灯显示00000000;(本拍完成公共操作PC→AR、PC+1→PC)
(5)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000010,下址的指示灯显示00000000;(本拍完成公共操作MEM→IR)
(6)以上三步为公共操作,其它指令同;
(7)按START按键;小板指示灯CI3~0、SCC3~0显示00100000,微址指示灯显示00000011,下址的指示灯显示01110000;(本拍完成/MAP操作功能)
(8)按START按键;小板指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示01110000,下址的指示灯显示00110000;(本拍执行ADD指令,DR←DR+SR操作)
(9)按START按键;小板指示灯CI3~0、SCC3~0显示00110010,微址指示灯显示00110000,下址的指示灯显示00111010;(本拍完成STR→Q、CC#=INT#公共操作功能)
(10)按START按键;小板指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00110001,下址的指示灯显示00000010;(本拍完成PC→AR、PC+1→PC、CC#=0的公共操作功能)
<2>选择基本指令的B组指令中的MVRD指令,观察其节拍流程
(1)置拨动开关SW=1000100000000000;(表示指令MVRD)
(2)按RESET按键;小板指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;
(3)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000000,下址的指示灯显示00000000;
(4)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000001,下址的指示灯显示00000000;
(5)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000010,下址的指示灯显示00000000;
(6)以上三步为公共操作,其它指令同。
(7)按START按键;小板指示灯CI3~0、SCC3~0显示00100000,微址指示灯显示00000011,下址的指示灯显示00011101;
(8)按START按键;小板指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00011101,下址的指示灯显示00011100;(本拍完成PC→AR、PC+1→PC、CC#=0操作)
(9)按START按键;小板指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00011100,下址的指示灯显示00110000;(本拍完成MEM→DR、CC#=0操作)
(10)按START按键;小板指示灯CI3~0、SCC3~0显示00110010,微址指示灯显示00110000,下址的指示灯显示00111010;(本拍完成STR→Q、CC#=INT#操作)
(11)按START按键;小板指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00110001,下址的指示灯显示00000010;(本拍完成PC→AR、PC+1→PC、CC#=0的公共操作功能)
<3>选择基本指令的D组指令中的CALA指令,观察其节拍流程
(1)置拨动开关SW=1100111000000000;(表示指令CALA)
(2)按RESET按键;小板指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其它灯全灭;
(3)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000000,下址的指示灯显示00000000;
(4)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000001,下址的指示灯显示00000000;
(5)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000010,下址的指示灯显示00000000;
(6)以上三步为公共操作,其它指令同。
(7)按START按键;小板指示灯CI3~0、SCC3~0显示00100000,微址指示灯显示00000011,下址的指示灯显示00011111;
(8)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00011111,下址的指示灯显示00000000;(本拍完成PC→AR、PC+l→PC操作)
(9)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00100000,下址的指示灯显示00000000;(本拍完成MEM→Q操作)
(10)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00100001,下址的指示灯显示00000000;(本拍完成SP-1→SP、PC→AR操作)
(11)按START按键;小板指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00100010,下址的指示灯显示00110000;(本拍完成PC→MEM、Q→PC、CC#=O操作)
(12)按START按键;小板指示灯CI3~0、SCC3~0显示00110010,微址指示灯显示00110000,下址的指示灯显示00111010;(本拍完成STR→Q、CC#=INT#操作)
(13)按START按键;小板指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00110001,下址的指示灯显示00000010;(本拍完成PC→AR、PC+l→PC、CC#=0操作)。
<4>选择扩展指令的A组指令中的CLC指令,观察其节拍流程
(1)置拨动开关SW=0110110000000000;(表示指令CLC)
(2)按RESET按键;小板指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其他灯全灭;
(3)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址和下址的指示灯全灭;
(4)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000001,下址的指示灯全灭;
(5)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000010,下址的指示灯全灭;
(6)以上三步为公共操作,其他指令同;
(7)按START按键;小板指示灯CI3~0、SCC3~0显示00100000,微址指示灯显示00000011,下址的指示灯显示01010110;
(8)按START按键;小板指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示01010110,下址的指示灯显示00110000;
(9)按START按键;小板指示灯CI3~0、SCC3~0显示00110010,微址指示灯显示00110000,下址的指示灯显示00111010;
(10)按START按键;小板指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00110001,下址的指示灯显示00000010;
<5>选择扩展指令的A组指令中的JRNS指令,观察其节拍流程
(1)置拨动开关SW=0110010100000001;(表示指令JRNS)
(2)按RESET按键;小板指示灯Microp亮(只要选择微程序,该灯在指令执行过程中一直亮),其他灯全灭;
(3)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址和下址的指示灯全灭;
(4)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000001,下址的指示灯全灭;
(5)按START按键;小板指示灯CI3~0、SCC3~0显示11100000,微址指示灯显示00000010,下址的指示灯全灭;
(6)以上三步为公共操作,其他指令同;
(7)按START按键;小板指示灯CI3~0、SCC3~0显示00100000,微址指示灯显示00000011,下址的指示灯显示01101001;
(8)按START按键;小板指示灯CI3~0、SCC3~0显示00110101,微址指示灯显示01101001,下址的指示灯显示00110000;
(9)按START按键;小板指示灯CI3~0、SCC3~0显示00110010,微址指示灯显示00110000,下址的指示灯显示00111010;
(10)按START按键;小板指示灯CI3~0、SCC3~0显示00110000,微址指示灯显示00110001,下址的指示灯显示00000010;
2、测试指令程序
1)验证ADD指令
分别给R0赋值0001,R1赋值0010,调用ADD指令,并将结果存入R0寄存器中,结果为0011。
2)验证SUB指令
R0赋值0010,R1赋值0001,调用SUB指令,并将结果存入寄存器R0中,结果为000F。
3)验证AND指令
R0赋值0001,R1赋值0001,调用AND指令进行与运算,结果存入R0中,结果为0001。
如果R1赋值0000,结果为0000。
4)验证CMP指令
R0、R1分别赋值1101、0011,先调用减法操作,产生借位,调用JRC指令,执行跳转到2009,结果为R2值为FFFF
5)验证XOR指令
R0赋值0001,R1赋值0010,调用XOR指令,进行异或运算,结果存在R0寄存器,结果为0011
6)验证TEST指令
R0、R1分别赋值0001、0000,调用TEST指令,R0和R1与运算,结果为零,调用JRZ指令(结果为零PC=PC+3)
结果R2=FFFF
7)验证OR指令
R0赋值0001,R1赋值0002,调用OR指令,进行或运算,结果存在R0寄存器中,结果为0003。
(运算时将十六进制转换为二进制进行或运算,1H=0001,2H=0010,进行或运算结果为0011=3H)
8)验证MVRR指令
R0R1分别赋值0001,0002,调用MVRR指令,将R1值赋给R0,结果R0为0002
9)验证DEC指令
R0赋值0004,调用DEC指令,进行自减,R0值变为0003
10)验证INC指令
R0赋值为0002,调用INC指令,R0进行自加,结果为R0值为0003
11)验证SHL指令
R0赋值0002,调用SHL指令,R0扩大2倍,结果为R0值为0004
12)验证SHR指令
R0赋值0006,调用SHR指令,R0缩小2倍,结果R0值为0003
13)验证JR指令
执行加法指令之后,调用JR指令,PC=PC+3,跳转到2009执行,结果为R2值为2222
14)验证JRC指令
先执行加法,结果产生进位,调用JRC指令,PC=PC+3,跳转到2009执行,结果为R2值为0002
15)验证JRNC指令
先执行加法,结果不产生进位,调用JRNC指令,PC=PC+3,跳转到2009执行,结果为R2为2222
16)验证JRZ指令
执行减法操作,结果为0,调用JRZ指令,Z=1跳转,PC=PC+3,跳转到2009执行,结果R2为4444
17)验证JRNZ指令
执行减法操作,结果不为0,调用JRNZ指令,PC=PC+3,跳转到2009执行,结果R2值为2222
18)验证JMPA指令
R0赋值为0001,执行JMPA跳转到2006,执行自加,结果为R0值为0002
19)验证LDRR指令
调用LDRR指令,将R1寄存器的值2020给R0寄存器,R0寄存器存储的值为地址2020里面存储的值
,将2020赋值为1111,则R0的值为1111
20)验证INOUT程序
在键盘输入任意字符,在屏幕输出输入的字符
21)验证POP、PUSH指令
在屏幕输出A到Z26个字符
22)验证扩展指令CLC
R0,R1分别赋值1001、F002,执行加法,产生进位C=1,地址2005调用CLC指令,C位清零,结果标志寄存器F的最高位C=0
23)验证扩展指令JRNS指令
R0、R1分别赋值0001、1101执行减法R1-R0并将结果赋值给R1,结果不为负,不跳转,顺序执行,结果R2的值为EEEE
//此处测试有问题,测试的指令并不是JRNS,JRNS的指令应为69(十六进制表示),进行JRNS指令测试时修改//为69就可以
(如果执行SUBR0,R1结果为R2的值为FFFF)
//此处问题与上方问题相同,进行验证时需要将64改成69
12、遇到问题以及解决方案
问题:
开始不知道控制开关应该如何放置才能联上机
解决:
通过查资料发现第三个开关拨到上面是组合逻辑控制,下面是微程序控制,在控制开关为00001的时候可以联机使用微程序小板
问题:
不知道为什么在map里交换两条指令的入口地址,结果就联不上机
解决:
结果依然无法联机,但是如果把入口地址指向原先没有指令的地方,就可以实现以前的要求,改完m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 课程设计 TEC 指令 设计