计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现.docx

上传人:b****8 文档编号:8879056 上传时间:2023-02-02 格式:DOCX 页数:13 大小:147.02KB
下载 相关 举报
计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现.docx_第1页
第1页 / 共13页
计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现.docx_第2页
第2页 / 共13页
计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现.docx_第3页
第3页 / 共13页
计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现.docx_第4页
第4页 / 共13页
计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现.docx

《计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现.docx(13页珍藏版)》请在冰豆网上搜索。

计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现.docx

计算机组成原理课程设计16位机微程序控制器指令系统的设计与实现

一、设计题目

16位机微程序控制器指令系统的设计与实现

二、设计目的

通过看懂教学计算机组合逻辑控制器中已经设计好并正常运行的几条基本指令(例如ADD、MVRR、OUT、MVRD、JR、RET等指令)的功能、格式和执行流程,然后自己设计微程序控制器中的29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,达到以下目的:

1、深入理解计算机控制器的功能、组成知识和各类典型指令的执行过程;

2、对指令格式、寻址方式、指令系统、指令分类等建立具体的总体概念;

3、学习微程序控制器的设计过程和相关技术。

三、设计说明

控制器设计是学习计算机总体组成和设计的重要的部分。

要在TEC—2000教学计算机上完成这项设计,必须清楚懂得:

1、TEC—2000教学机的微程序控制器主要由作为选件的微程序控制器小板和教学机大板上的7片GAL20V8组成。

2、TEC—2000教学机微程序控制器上要实现的全部基本指令和扩展指令的控制信号都是由微程序小板上的7片控制存储器给出的。

3、应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行扩展指令。

4、要明白TEC—2000教学机支持的指令格式及指令执行流程分组情况;理解TEC—2000教学机中已经设计好并正常运行的各类指令的功能、格式、执行流程和控制信号的组成。

5、明确自己要实现的指令格式、功能、执行流程设计中必须遵从的约束条件。

6、为了完成扩展指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的实验内容,具体过程包括:

1)确定指令格式和功能,要受教学机已有硬件的约束,应尽量与已实现指令的格式和分类办法保持一致;

2)划分指令执行步骤并设计每一步的执行功能,设计节拍状态的取值,应参照已实现指令的处理办法来完成,特别要注意的是,读取指令的节拍只能用原来已实现的,其他节拍的节拍状态也应尽可能的与原用节拍的状态保持一致和相近;

3)在指令微程序表中填写每一个控制信号的状态值,注意要特别仔细,并有意识地体会这些信号的控制作用;

4)将设计好的微码,装入控制存储器的相应单元;

5)写一个包含你设计的指令的程序,通过运行该程序检查执行结果的正确性,来初步判断你的设计是否正确;如果有问题,通过几种办法查出错误并改正,继续调试,直到完全正确。

四、设计内容

1、完成微程序控制器指令系统设计,主要内容是由学生自己设计29条基本指令和19条扩展指令的功能、格式和执行流程,并在教学计算机上实现、运行、调试正确。

2、首先看懂TEC—2000教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机组合逻辑控制器中已经设计好并正常运行的几条典型指令(例如ADD、MVRR、OUT、MVRD、JRC、RET等指令)的功能、格式和执行流程。

3、设计微程序控制器指令系统中各条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确,例如ADC、STC、JRS、JRNS、LDRX、STRX、JMPR、CALR、LDRA等19条扩展指令。

4、单条运行指令,查看指令的功能、格式和执行流程。

5、用监控程序的A、E(扩展指令必须用E命令置入)命令编写一段小程序,观察运行结果。

五、设计要求

分组及任务分配

每组四名同学,任务分配为:

朱冠兰负责仿照教学计算机组合逻辑控制器,设计微程序控制器中基本指令的功能、格式和执行流程,画出29条基本指令的执行流程框图和微程序编码表。

冯云龙负责设计扩展指令的功能、格式和执行流程,设计微指令各字段的具体编码值,包括控制码的各字段、下址字段、形成下址用到的条件码,画出扩展指令的执行流程框图和微程序编码表。

胡学智负责确定微码各字段与控制存储器各个芯片之间的关系,列表写出各控制存储器芯片中存储单元的内容,将设计好的微码装入控制存储器。

王硕负责编写若干个测试程序,包含所有的基本指令和扩展指令,通过运行这些程序可以检查所有指令设计是否正确。

最后,所有组员共同参与测试,通过运行测试程序,判断指令设计是否正确。

(二)学生应交材料

1、课程设计报告,每组交一份。

2、一块自定义指令系统的微程序控制器板。

3、课程设计日记,每人交一份。

(三)课程设计报告内容

1、题目名称;

2、题目内容;

3、基本指令和扩展指令的执行流程框图;

4、基本指令和扩展指令的微程序编码表;

5、八个控制存储器芯片中各存储单元的内容列表;

6、测试程序;

7、自评(从实现的功能上评价);

8、遇到的问题及解决方案;

9、总结(主要从综合应用知识、分析问题、解决问题方面总结)。

六、进度安排

第1周周一上午课程设计动员

周二~周五

(1)熟悉汇编、TEC—2000机开发环境

(2)基本指令设计

(3)扩展指令设计

(4)编写调试程序。

第2周周一~周五微指令写入芯片,运行测试程序,调试指令。

第3周周一~周三编写课程设计报告。

周四、周五验收和答辩总结。

七、课程设计环境

1、硬件环境:

PC机一台、TEC—2000实验机一台、微程序控制器实验板一块。

2、软件环境:

(1)Win2000、DOS

(2)TEC—2000仿真终端程序PCEC

(3)TEC—2000监控程序。

八、软件设计方案

1.将设计好的微码写入控制存储器。

一次只对一片28C64控制存储器芯片进行读写,该芯片可插在扩展芯片的高位或低位,若插在高位,输入时信号编码为高八位,低八位补零;若插在低位,输入时信号编码为低八位,高位补零。

若一次扩展两片28C64控制器芯片,要注意信号要与产生该信号的芯片相对。

将扩展新片的内存单元地址置为4000~5FFF,将MAPROM插入扩展芯片的位置,微程序入口地址对应的内存单元的地址为芯片的起始地址和该指令的编码值之和。

具体操作如下:

E4000

400000FF:

0400FF:

0500FF:

0600FF:

0900FF:

08

00FF:

0A00FF:

0700FF:

0B00FF:

0D00FF:

0C

00FF:

0E00FF:

0F

E4020

402000FF:

50

E4041

404100FF:

11

E4044

404400FF:

1000FF:

1000FF:

1000FF:

10

E4080

408000FF:

1E00FF:

1B00FF:

1200FF:

1900FF:

15

00FF:

1500FF:

1200FF:

1700FF:

1D

E408C

408C00FF:

1700FF:

00FF:

00FF:

23

E40CE

40CE00FF:

1F

将MPROM1~MPROM7依次插入扩展芯片的位置对其编程,内存单元的地址为芯片的起始地址和该指令操作功能所对应的微址之和,操作如下:

MPROM1产生下址信号,MPROM2产生CI3~0、SCC3~0信号

对MPROM1-2的操作为:

MPROM1在高位MPROM2在低位

E4000

400000FF:

00E000FF:

00E000FF:

00E000FF:

0020

00FF:

303000FF:

303000FF:

303000FF:

3030

00FF:

303000FF:

303000FF:

303000FF:

3030

00FF:

303000FF:

303000FF:

303000FF:

3030

00FF:

303400FF:

303000FF:

143600FF:

3030

00FF:

303000FF:

1A3700FF:

303000FF:

1C37

00FF:

303000FF:

00E000FF:

303000FF:

00E0

00FF:

303000FF:

1C3000FF:

243000FF:

00E0

00FF:

00E000FF:

00E000FF:

303000FF:

00E0

00FF:

3030

E4030

403000FF:

3A3200FF:

0230

E4050

405000FF:

3030

MPROM3产生0MRW、0I2~0信号,MPROM4产生SAI8~I6、SBI5~I3信号,

对MPROM3-4的操作为:

MPROM3在高位MPROM4在低位

E4000

400000FF:

413100FF:

432000FF:

101000FF:

4010

00FF:

41B800FF:

41B900FF:

41BC00FF:

41BB

00FF:

41BE00FF:

419900FF:

419C00FF:

44B8

00FF:

433800FF:

433900FF:

437800FF:

4358

00FF:

401000FF:

453000FF:

471000FF:

2310

00FF:

373000FF:

433100FF:

001000FF:

4320

00FF:

101000FF:

431800FF:

049000FF:

4490

00FF:

173800FF:

432000FF:

432000FF:

4320

00FF:

170000FF:

433100FF:

022000FF:

4320

00FF:

1730

E4030

403000FF:

470000FF:

4320

E4050

00FF:

41B8

MPROM5产生B口、A口信号,MPROM6产生0SST、SSHSCI信号,

对MPROM5-6的操作为:

MPROM5在高位MPROM6在低位

E4000

400000FF:

550100FF:

550100FF:

000000FF:

0000

00FF:

001000FF:

001100FF:

001000FF:

0010

00FF:

001000FF:

001100FF:

001000FF:

0010

00FF:

001100FF:

001000FF:

006000FF:

0050

00FF:

000000FF:

550000FF:

000000FF:

0000

00FF:

000000FF:

400000FF:

000000FF:

4401

00FF:

002000FF:

000000FF:

000000FF:

0000

00FF:

000000FF:

550100FF:

550100FF:

5501

00FF:

000000FF:

400000FF:

550000FF:

4401

00FF:

5000

E4030

403000FF:

000000FF:

5501

E4050

405000FF:

0012

MPROM7产生DC2、DC1信号,对MPROM7的操作为:

E4000

400000FF:

7000FF:

B000FF:

1000FF:

00

00FF:

0000FF:

0000FF:

0000FF:

00

00FF:

0000FF:

0000FF:

0000FF:

00

00FF:

0000FF:

0000FF:

0000FF:

00

00FF:

0000FF:

0200FF:

3200FF:

01

00FF:

0000FF:

3000FF:

0300FF:

30

00FF:

0000FF:

3000FF:

0100FF:

30

00FF:

0000FF:

3000FF:

3000FF:

30

00FF:

0000FF:

3000FF:

0100FF:

30

00FF:

00

E4030

403000FF:

0300FF:

0B

E4050

405000FF:

00

九、测试程序

1.测试基本指令的程序:

1)测试MVRD,MVRR,PSHF,ADD,SUB,AND,CMP,JRNZ,POPF,RET,XOR,TEST,JRZ的程序

程序流程图:

程序:

(2000)MVRDR0,0041;MVRD

MVRDR1,0016

MVRDR2,0084

MVRRR3,R1;MVRR

MVRRR6,R0

MVRDR7,0000

(200A)PSHF;PSHF

ADDR0,R1;ADD,->R0=0057

SUBR2,R1;SUB,->R2=006E

ANDR3,R1;AND,->R3=0016

CMPR2,R1;CMP

JRNZ2050;JRNZ

(2010)POPF;POPF

RET;RET

(2050)XORR1,R6;XOR,->R1=0057

TESTR0,R7;TEST

JRZ2010;JRZ

运行结果:

2)测试OR,DEC,PUSH,INC,POP,SHR,JRC,SHL,JR,JMPA的程序

程序流程图:

程序:

(2000)MVRDR0,0046;MVRD

MVRDR1,0016

MVRRR2,R1;MVRR

MVRRR3,R0

MVRRR6,R0

(2007)ORR0,R1;OR,->R0=0056

DECR1;DEC,->R1=0015

PUSHR2;PUSH

INCR2;INC,->R2=0017

POPR2;POP,->R2=0016

SHRR3;SHR,->R3=0023

CMPR1,R0;CMP

JRC2050;JRC

(200F)SHLR6;SHL,->R6=008C

RET;RET

(2050)JR2060;JR

(2060)JMPA200F;JMPA

运行结果:

3)测试LDRR,CALA,OUT,STRR,IN,JRNC的程序

程序流程图:

程序:

(2070)2070:

00412071:

00422073:

00432074:

0043

(2000)MVRDR3,0004;MVRD

MVRDR2,2070;MVRD

(2004)LDRRR0,[R2];LDRR

CALA200C;CALA

DECR3;DEC

JRZ200B;JRZ

INCR2;INC

JR2004;JR

(200B)RET;RET

(200C)OUT80;OUT

MVRDR1,0020;MVRD

ADDR0,R1;ADD

STRR[R2],R0;STRR

(2011)IN81;IN

SHRR0;SHR

JRNC2011;JRNC

RET;RET

运行结果:

2.测试扩展指令的程序:

1)验证指令ADC的程序。

程序:

(2000)MVRDR0,FFFF

MVRDR1,1111

ADDR0,R1

RET

运行结果:

R0=1110,R1=1111,F=10000011

E2004

(2004)0001:

2001

运行结果:

R0=1111,R1=1111,F=10000011

十、自评

测试程序的运行结果证明了29条基本指令和19条扩展指令是正确的。

由此我们可以知道16位机微程序控制器指令系统的设计是正确的。

我们的设计基本上达到了实验目的所要求的。

十一、遇到的问题及解决方案

测试扩展指令时,用E命令编码写入,但我们对指令格式不熟悉,导致测试时程序无法正确运行。

经过我们大量的测试以及寻找相关资料,我们总结出了正确的格式并正确地调试了程序。

十二、总结

在整个设计过程中,虽然分工明确,但是大家仍然不时交流彼此的经验,分享收获,使知识得以互补,遇到困难时也能够互相帮助解决问题,最终使任务圆满完成。

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

当前位置:首页 > 总结汇报 > 学习总结

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

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