组成原理Am2910器件的功能与具体用法Word文档格式.docx
《组成原理Am2910器件的功能与具体用法Word文档格式.docx》由会员分享,可在线阅读,更多相关《组成原理Am2910器件的功能与具体用法Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
1.ADTWDR
2.ADRMDR,[SR]。
4、实验步骤
1、扩展的2条指令的格式及功能
序号
格式
功能
寻址方式
编码
微程序步数
微程序
入口地址
1
ADTWDR
DR的值自增2
寄存器直接寻址
A1H
2
81
ADRMDR,[SR]
DR+[SR]
->
DR
DR为寄存器直接寻址,[SR]为寄存器
接寻址
E3H
3
83
2、指令所对应的微程序
每条指令对应的微程序、以及每步(微指令)的功能及各字段值的意义
(1)AM2901运算器的结构图以及控制码表
表2-1Am2901的9位控制码
表2-2状态寄存器、最低进位输入、移位输入控制信号
(2)微程序控制器的组成框图以及说明
①PC:
存放下一条机器指令的地址(向指令存储器提供指令地址)。
②指令存储器:
(存放所有机器指令),经地址译码,选中相应存储单元,取出相应机器指令,送入指令寄存器IR。
③指令寄存器IR:
存放正在执行的机器指令。
机器指令包含两个字段:
操作码(OP)、地址码。
④由操作码(OP)映射得到微地址(译码过程),即机器指令所对应的微程序入口地址,存入微地址寄存器。
⑤控制存储器存放所有的微程序,经地址译码读出一条微指令。
6由控制存储器读出的一条微指令存入微指令寄存器。
SCC编码及功能
控制信号
(1)对运算器的控制
23位控制信号,同23位微型开关内容:
A3~A0,B3~B0,I8~I6,I5~I3,I2~I0SST2~0,SSHSCI2~0
寄存器分配:
R4:
SPR5:
PC
约定用法:
R0:
I/O指令约定使用,也是通用累加器
对内存和I/O接口的读写
/MIO(0:
有内存或串口读写,1:
无)
REQ(0:
读写内存,1:
读写串行口)
/WE(0:
写操作,1:
读操作)
MRW编码功能
(2)对内部总线和特定寄存器的控制
内部总线数据来源选择控制
专用寄存器接收控制
(3)控制器提供的控制信号(微指令格式
)
(3)教学机硬件系统结构框图
图2-5教学机计算机控制器的总体组成
(1)程序计数器PC可以在运算器内部完成加1运算功能,产生下一条相邻指令的地址;
或者完成加一个相对转移的偏移量,产生相对转移指令的转移地址;
或者直接接收一个16位的指令地址,用在程序调用或者跳转指令中。
(2)指令寄存器IR接收从内存储器读出并传送到内部总线IB的指令内容,其全部16位输
出送MACH芯片的输入引脚,其低8位内容还可以经一个有三态功能的开关门送到内部总线IB。
(3)微程序定序器Am2910芯片用在微程序控制器中,用于以多种方式向控制存储器提供下一条微指令的地址,控制微指令的执行次序,解决的是指令执行步骤的衔接问题。
(4)两种控制器的主要功能线路都集中到一片高集成度CPLD器件(MACH芯片)中实现,在完成扩展指令的教学实验中,可以不对MACH芯片之外的电路作任何变动,全部操作都集中到修改描述MACH芯片功能的ABEL或VHDL语言的源程序代码、执行编译和下载操作以及运行调试这样几步工作。
这是本教学计算机系统的一大显著特色,对降低学生的学习难度、简化修改和扩展控制器功能的操作、改善教学实验效果具有重要的作用。
从图2-5可以看到,MACH器件内部包含有微程序控制器中的控制存储器、微指令寄存器、映射指令操作码为微指令地址的MAPROM、产生微指令是否转移信号CC的SCCgal、实现微指令字中的下条微指令地址和MAPROM输出的下条微指令地址二者选其一的线路;
包含有组合逻辑控制器的节拍发生器Timing和控制信号产生部件两部分线路;
此外还实现了把两种控制器各自提供的32位控制信号进行二者选其一的功能。
3、ABEL语言源程序编辑以及JED文件生成
(1)添加指令操作码
ADTW=(IR==[1,0,1,0,0,0,0,1]);
ADRM=(IR==[1,1,1,0,0,0,1,1]);
(2)添加入口地址
添加ADTW指令的入口地址:
MA81=(Y==[1,0,0,0,0,0,0,1]);
MA82=(Y==[1,0,0,0,0,0,1,0]);
添加ADRM指令的入口地址:
MA83=(Y==[1,0,0,0,0,0,1,1]);
MA84=(Y==[1,0,0,0,0,1,0,0]);
MA85=(Y==[1,0,0,0,0,1,0,1]);
(3)入口地址定义
对ADTW指令做如下修改:
D0=!
C_M&
(!
_MAP&
(ADTW#......)#NXTADDR0&
!
_PL)&
Bit8;
D7=!
(ADTW#......)#NXTADDR7&
对ADRM指令做如下修改:
(ADRM#......)#NXTADDR0&
D1=!
(ADRM#·
·
)#NXTADDR1&
(ADRM#......)#NXTADDR7&
(3)下址定义
对ADTW指令做如下修改:
NXTADDR5:
=!
(MA81#......)&
NXTADDR4:
对ADRM指令做如下修改:
(MA85#......)&
(5)条件转移字段定义
CI3:
=!
(MA83#MA84#......)&
NRST&
CI2:
CI0:
(MA81#......)&
(MA8A#MA8B#MA8C#......)&
(MA85#......)&
(6)MRW定义
!
_MIO00:
(MA81#MA82#......);
(MA83#MA84#......);
_WE00:
=(MA85#......);
(7)I2-I0,I8-I6,I5-I3定义
I100:
=(MA81#MA82#......);
I000:
I700:
=(MA81#MA82......);
I600:
I200:
=(MA83#MA85#......);
=(MA84#MA85#......);
(MA83#......);
(MA83#MA85#......);
(8)B口、A口定义
B30=(MA81#MA82#......);
B30=(MA84#MA85#......);
A30=(MA83#......);
(9)SST/SSHSCI定义
SST000:
SCI100:
(10)DC2DC1定义
DC2_100:
=(MA83#......);
DC2_000:
m256c.abl源程序修改过程(10步)以及生成JED文件的整个操作过程
(1)将下面的源文件目录复制到E盘。
C:
\XP+DATA\XP_MACH\2A70504组基微全
(2)双击lc4256.syn,启动ispLEVER
(3)双击.abl文件
(4)双击CompileLogic进行编译
(5)双击JEDECFile,生成.jed文件
4、MACH编程
将JED文件下载到MACH器件的过程
(1)接好教学机上的在线MACH编程电缆,将教学机电源打开;
(2)启动ispVMSystem软件,通过主界面的SCAN按钮找到在线编程器件;
(3)双击找到的编程器件,双击Browse按钮选择已经编译好的jed文件,选择OK按钮;
(4)重新回到主界面,点击GO命令进行编程。
5、编程验证及结果分析
1.验证ADTWDR
本条指令的验证时将0036送入R0,然后写入指令操作码A100,最后G2000运行程序,验证R0是否自增2,结果R0变为0038,指令验证成功。
2..验证ADRMDR,[SR]。
本条指令的验证时0001送入R1,0009送入R0,然后写入指令操作码E312,最后G2000运行程序,验证指令,指令执行正确。
6.实验体会
通过这个实验,结合对以前课程学习中指令的理解,更彻底的了解了指令的执行原理。
在这次指令扩展实验中,最重要的就是对代码的修改部分,这就要建立在对每一条微指令的属性的了解,对应相应的扩展指令具体情况进行修改,才能编译正确。
而且真切地知道了实验真得很需要耐心和细心。
实验出现的问题也比较多,在及时向老师请教之后,整个实验还是进行得比较顺利的。
教师评价
评定项目
A
B
C
D
基本部件原理清楚
操作熟练
微指令设计合理
解析完整
微程序功能正确
文字流畅
验证程序运行正确
报告规范
其他:
评价教师签名:
年月日