计算机学院 网络工程专业 班______组、学号
姓名 协作者___________ 教师评定_____________
实验题目 微程序控制器部件教学实验
一、实验目的:
1.全面掌握计算机各部件组成及相互联接关系
2.深入理解计算机微程序控制器的功能组成知识
3.深入的学习计算机各类典型的指令的执行流程
4.对指令格式,寻址方式,指令系统,指令分类等建立具体总概念
5.学习微程序控制器的设计过程和相关过程
二、实验设备与器材:
TEC-XP+教学计算机
三、实验说明和原理:
制器设计是学习计算机总体组成和设计的最重要部分。要在TEC-XP16教学计算机完成这项实验,必须清楚地懂得:
1、TEC-XP+教学机的微程序控制器主要由微程序定序器AM2910、产生当前微地址和下地址的微控存和MACH器件组成。
2、TEC-XP+教学机上已实现了的全部基本指令和留给用户实现的19条扩展指令的控制信号都是由微控存和MACH给出的。
3、应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中;不能用T、P命令单步调试扩展指令,只能用G命令执行有扩展指令的程序。
4、要明白TEC-XP+教学机支持的指令格式及指令执行流程分组情况;理解TEC-XP+教学机中已经设计好并正常运行的各类指令的功能、格式和执行流程、也包括控制器设计的实现中的具体路线的控制信号的组成。
5、要明确自己要实现的指令功能、格式、执行流程设计中必须遵从的约束条件。
为了完成自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确的内容,具体过程包括。
(1)、确定指令格式和功能,包括确定要用的操作码,指令中的其它字段的内容分配与使用,
要受到教学机已有硬件的约束,应尽量与已实现指令的格式和分类办法保持一致。
(2)、按新指令的功能和格式、设计指令的执行流程。划分指令执行步骤并设计每一步的执行功能,设计微地址和下地址的取值,应参照已实现指令的处理办法来完成。
(3)、在指令流程表中真写每一个控制信号的状态值,基本上是个查表填数的过程,应特别仔细,并有意识地体会这些信号的控制作用。
(4)、将设计好的微码,装入控制存储器的相应单元。
(5)、写一个包含你设计的指令的程序,通过运行该程序检查执行结果的正确性,来初步判断你的设计是否正确;如果有问题,通过几种办法查出错误并改正,继续调试,直到完全正确。
四、实验内容:
1.完成控制器部件的教学实验,主要内容是自己设计几条指令的功能、格式和执行流程,并在教学计算机上实现、调试正确。
2.首先是看懂TEC-XP+教学计算机的功能部件组成和线路逻辑关系,然后分析教学计算机中已经设计好并正常运行的几条典型指令的功能、格式和执行流程,注意各操作功能所对应的控制信号的作用。
3.设计几条指令的功能、格式和执行流程,并在教学机上实现、调试正确。
4.单条运行指令。查看指令的功能、格式和执行流程。
5.用监控程序的A、E命令编写一段小程序,观察运行结果。
五、实验步骤:
1.接通教学机电源。
2.将教学机左下方的六个拨动开关置为110100.
3按一下“RESET”按键。
4.通过16位的数据开关SWH、SWL置入指令操作码。
5.在单步方式下,通过指示灯观察各类基本指令的微码。
1)、选择基本指令的A组指令中的ADD指令,观察其流程
1)、置拨动开关SW=00000000 00000001;
2)、按RESET按键,指示灯Microp亮,其它全灭。
3)、按START按键;指示灯CI3~0、SCC3~0显示1110 0000,微址和下址的指示灯全灭;
4)、按START按键;指示灯CI3~0、SCC3~0显示1110 0000——微址指示灯显示0000 0001,下址的指示灯全灭。
5)、按START按键;指示灯CI3~0、SCC3~0显示1110 0000——微址指示灯显示0000 0010,下址的指示灯全灭。
6)、以上三步为公共操作,其它指令同;
7)、按START按键;指示灯CI3~0、SCC3~0显示0010 0000——微址指示灯显示0000 0011,下址的指示灯显示0000 0100。
8)、按START按键;指示灯CI3~0、SCC3~0显示0011 0000——微址指示灯显示0000 0100,下址的指示灯显示为0011 0000。
9)、按START按键;指示灯CI3~0、SCC3~0显示0011 0000——微址指示灯显示0011 1010,下址的指示灯显示0011 1010。
10)、按START按键;指示灯CI3~0、SCC3~0显示0011 0010——微址指示灯显示0011 1010,下址的指示灯显示0000 0010。
(2)选择基本指令的B组指令中的MVRD指令,观察其节拍流程。
6.在连续方式下,用A命令键入程序并运行。
7.设计几条指令的功能、格式和执行流程,设计每条微指令各字段的具体编码值,包括控制码的各字段、下地址字段、形成下址用到的条件码。
8.在单步方式下,通过指示灯观察各类扩展指令的微码。
9.用A、E键入程序连续运行(扩展指令用E命令键入)。
1) ADC指令的编写及测试
2、指令CALR的编写及测试
3、指令LDRA的编写及测试
六、思考题:
1.在A命令下能否直接输入新指令?为什么?
答:不能,A命令只持基本指令,扩展应用指令应用E命令将指令代码写入到相应的存储单元中。
七、实验心得:
在这次实验中,我学到很多东西,加强了我的动手能力,并
培养了我的独立思考能力。在实验过程中我受益匪浅,它让我深刻体会到实验前的理论知识准备,即提前预习的重要性。虽然没有做到全面掌握计算机各部件组成及相互联接关系,但却有了较深的认识,进一步理解计算机微程序控制器的功能、组成知识,加深学习计算机各类典型指令的执行流程。
计算机学院 网络工程专业 班______组、学号
姓名 协作者 教师评定_____________
实验题目 输入/输出接口扩展实验
一、 实验目的:
1.了解串行接口与计算机主机之间的数据传送方式。
2.理解串行接口芯片的内部组成和传输数据的运行过程。
3.了解串行接口再投入运行之前必须执行的初始化操作的作用及完成初始化操作的具体方案。
二、 实验设备与器材:
TEC-XP,两台运行PCEC16的PC机
三、 实验内容:
1.为扩展I/O口选择一个地址:将与COM2口相连的8251的/CS与标有I/O/CS的插孔中地址为A0~AF的一个相连
2.将COM2与另一台运行有PCEC16的PC机的串口相连
3.用监控程序的A命令,编写一段小程序,先初始化COM2口,在向COM2口发送些字符,也可以从COM2口接收一些字符,或实现两个串口的通信。
四、 实验步骤:
1为扩展I/O口选择一个地址:将与COM2口相连的8251的/CS与标有I/O/CS的插孔中的地址为A0~AF的一个相连.
2、将一台教学机COM1口与一台PC机相连,在PC机上启动PCEC16.EXE。
3、将另一台教学机COM1口与另一台PC机相连,同样启动PCEC16.EXE。
4、用另一根串口线将将第一台的教学机的COM2口和另一台教学机的COM2口相连。
5、在两台PC机对应的PCEC上分别输入一下程序:
从2000H单元开始输入下面的程序
2000:MVRD R0,004E
2002:OUT A1
2003:MVRD R0,0037
2005:OUT A1
2006:IN 81
2007:SHR R0
2008:SHR R0
2009:JRNC 200D
200A:IN 80
200B:OUT 80
200C:OUT A0
200D:IN A1
200E:SHR R0
200F:SHR R0
2010:JRNC 2006
2011:IN A0
2012:OUT 80
2013:JR 2006
2014:RET
测试结果如图所示:
五、实验心得:
通过本次实验了解串行接口与计算机主机之间的数据传送方式。一开始因为没有把接线联接好,进行的并不顺利,一直不能实现两台电脑之间接口的联接,不过当真正实现操作时,心里好高兴,我们几次的努力的结果,这次实验对于我来说又有了另一种收获,同学之间的协作是很重要的,不仅仅能增加彼此的交流,也能通过双方一起讨论解决问题,快速找出答案。
计算机学院 网络工程专业 班______组、学号
姓名 协作者___________ 教师评定 ____________
实验题目 中断实验
6、实验目的:
1.加深理解计算机系统中断的工作原理及处理过程。
2.学习和掌握中断产生、响应、处理等技术。
3.掌握终端服务子程序的编写要点,进行一次硬软件的综合调试。
7、实验设备与器材:
TEC-XP教学实验计算机
三、实验说明和原理:
1、要求中断隐指令中执行关中断功能,如果用户中断服务程序允许被中断,必须 在中断程序中执行EI开中断命令。
2、教学机的中断系统共支持三级中断,由三个无锁按键确定 从右到左依次为一、二、三级中断,对应的P1、P0的编码分别是01、10、11,优先级也依次升高,这决定 了它们的中断向量,为XXX4、XXX8、XXXC。可以看到,每级中断实际可用空间只有四个字节,故这个空间一般只存放一条转移指令,而真正的用户中断服务程序则存放在转移指令所指向的地址。
3、用户需扩展中断隐指令、开中断指令、产中断指令、中断返回指令及其节拍。
四、实验内容:
1、扩展中断隐指令,为中断隐指令分配节拍,中断隐指令用到12个节拍,为了和一般指令相区别,应将其节拍T3设计为1.
2、扩展开中断指令EI、关中断指令DI、中断返回指令IRET。
3、确定中断向量地址。中断微量的高12位由开关确定为(0001001000000)。三级中断对应的中断微量为2404H、2408H、240CH。当有中断请求且被响应后,将执行存放在该中断的中断微量所指向的内存区的指令。
4、真写中断微量表。在上述2404H、2408H、240CH地址写入三条JR转移指令,JR指令的OFFSSET是-128~127之间,但在PCEC16中输入时,用户不需要计算偏移量,直接输入要转向的绝对地址即可。
5、编写中断服务程序。中断服务程序可以放在中断微量表之后,中断服务程序可以实现在程序正常运行时在计算机屏幕上显示与优先级相对应的不同字符。
6、 写主程序。可编写一死循环,要求先开中断。
五、实验步骤:
4、填写中断向量表。
1)将数据开关的高12位设置成:001001000000
2)中断向量一共有16位,高12位有数据开关的SWH7-0以及SWL7-4决定;后四位为p1p0 00,p1p0有按键下的无锁按键决定,分别为01、10、11,所以中断向量的16位为2404、2408、240C。
3)填写中断向量表。
从2404H单元开始输入下面的程序
(2404)JR 2420
(2408)JR 2430
(240C)JR 2440
5.编写中断程序:
用A、E命令从2420H单元开始输入下面和程序(标有*的语句表示要用E命令输入)
2420:PUSH R0
2421:PUSH R3
2422:MVRD R3,31
2424:JR 2450
2430:PUSH R0
2431:PUSH R3
2432:MVRD R3,32
2434:JR 2450
2440:PUSH R0
2441:PUSH R3
2442:MVRD R3,33
2444:JR 2450
*2450:EI
2451:MVRD R0,0042
2453:CALA 2200
2455:MVRD R0,0049
2457:CALA 2200
2459:MVRR R0,R3
245A:CALA 2200
245C:IN 81
245E:SHR R0
245F:JRNC 245C
2460:IN 80
2461:MVRD R00045
2463:CALA 2200
2465:MVRD R0,0049
2467:CALA 2200
2469:MVRR R0,R3
246A:CALA 2200
246C:POP R3
246D:POP R0
*246E:IRET
6.用A命令从2200H单元开始输入下面的子程序
2200:PUSH R0
2202:SHR R0
2203:JRNC 2201
2204:POP R0
2205:OUT 80
2206:RET
7.编写主程序
从地址2000H开始输入下列程序:
*2000:EI
2001:MVRE R0,0036
2003:CALA 2200
2005:MVRD R0,4000
2007:DEC R0
2008:JRNZ 2007
2009:JR 2001
200A:RET
8.运行主程序,等待、响应中断。
在命令行提示符状态下输入:
G 2000
屏幕将连续显示“6”。在程序执行过程中按下教学机右下方任意一个无锁按键。此时,教学机转向执行本级中断服务程序,在屏幕上显示BI以及按下的键对应的中断优先级。在接收键盘一个字符后,显示该字符并退出当前级的中断服务程序,恢复中断现场,接着执行断点处的程序。若在接收字符之前,又有更高一级的中断请求,则教学机转向执行高一级的中断服务程序,执行完后接着执行低级中断,然后 退出 执行主程序。需要注意的是若当前中断为高级中断,则不会响应低级中断简单的中断服务程序。运行结果如下图:
六、实验心得
这次实验让我加深了对计算机系统中断的工作原理及处理过程的理解。虽然在编写程序时一开始并不顺利,在经过几次编写程序后,最后才发现自己的实验箱需要用到的按钮出问题了,能显示6的输出,但中断不了,原本以为是我操作出错,事实证明是实验箱按钮的问题,经过换另一台计算机,重新再次输入程序,最终得到正确的结果。经过本次实验,让我明白了要懂得分析问题所在,独立思考,学会解决问题。
计算机学院 网络工程专业 班______组、学号
姓名 协作者___________ 教师评定____________
实验题目: FPGA芯片实现非流水线的CPU系统(综合实验)
一、实验目的:
1、进一步熟悉教学计算机的指令格式、指令编码、寻址方式和指令功能等内容。
2、进一步熟悉教学计算机的总体组成和各个部件的功能,理解控制器部件在计算机整机中的关键作用;
3、进一步理解和指令执行步骤的划分方案;
4、进一步熟悉教学计算机的硬连线控制器各个控制命令的控制功能,学习用VHDL语言描述节拍发生器和控制信号产生部件的功能。
5、进一步理解与熟悉在TH-union教学计算机控制器中处理原有指令和扩展指令的方案,提高对控制器功能能描述的理解程序。
二、实验设备与器材:
TEC-XP+教学实验系统和仿真终端软件PCEC。
三、实验内容:
控制器实验可以在两个层次上进行:
第一个层次属于观察、验证性的实验,即通过多种方式,察看教学计算机指令的执行步骤、运行结果、各组控制信号在每一个执行步骤中的状态、指令之间的衔接等有关内容。这个层次的实验,重点在于学懂教学计算机中已有的设计结果,把实现基本指令的VHDL语言程序中的语句描述与教学机的运行结果对应清楚。
第二个层次是学生进行自己的设计与实现新的扩展指令的实验,即在教学机系统已有指令的基础上,由学生自己添加若干条新的指令进行,包括定义指令格式、功能。划分指令执行步骤和确定每一步的功能,确定每一执行步骤使用的全部控制信号的状态值,使用VHDL语句把新的设计结果描述正确并添加到已有的源程序代码中去,编译、下载并调试正确,写一个包含已有指令和刚刚实现的指令的小程序,检查运行结果的正确性,若发现错误则找出原因并设法改正,直到全部正确为止。
四、实验步骤:
1. 按前述的步骤准备好实验机,连接好串口线和电源线,打开PCEC1.6EXE的仿真界面;将六个功能开关置为00X101;
2. 将TIMING GAL左方的波动开关置于“FPGA”端;
3. 确认标有“DataBus 15-8”和“DataBus 7-0”的数据总线的指示灯正文的插针断开;
4. 确认标有“AdressBus 15-8”和“AdressBus 7-0”的地址总线的指示灯下方的插针断开;
5. 将提供的带彩线的FPGA的下载线并口一端和计算机的并口连接,彩线一端按红色在左边的位置和大板上电源模块下方的一溶解度插针接好;
6. 打开实验机的电源;
7. 在PC机上打开ISE的软件;
8. 打开软件的下载界面,选择SERIAL方式,添加器件CPU.BIT,进行下载;
9. 下载完成关闭下载界面,启动PCEC界面,注意实验机不要断电。
10. 按一下“RESET”按键,再按一下“START”按键,主机上显示:
TEC-2000 CRT MONITOR
Version 1.0 April 2001
Computer Architectur Lab,Tsinghua University
Programmed by He Jia
>
11.在FPGA构成的CPU的控制下将汇编语言程序设计的内容重新作一遍。
测试结果如下图:
五、实验心得
通过本次实验进一步熟悉教学计算机的指令格式、指令编码、寻址方式和指令功能等内容,进一步熟悉教学计算机的总体组成和各部件的功能,理解控制器部件在计算机整机中的关键作用。增强了自己的动手操作能力,通过自己的操作,加深对本次实验的理解,和对其目的的实现,从中获益匪浅。