山东大学计算机组成原理课程设计实验报告.pdf
- 文档编号:14649119
- 上传时间:2023-06-25
- 格式:PDF
- 页数:48
- 大小:4.38MB
山东大学计算机组成原理课程设计实验报告.pdf
《山东大学计算机组成原理课程设计实验报告.pdf》由会员分享,可在线阅读,更多相关《山东大学计算机组成原理课程设计实验报告.pdf(48页珍藏版)》请在冰点文库上搜索。
计算机组成原理课程设计报告计算机科学与技术学院2014级1班鸿武QQ:
2420430689(2号)2016年11月22日计算机一班鸿武QQ:
2420430689(2号)1目录总述.2课程设计目的.2课程设计内容与要求.2课程设计工具.2课程设计方法.2同组者.2微程序控制的运算器设计.2设计目的.2设计要求.3运算器结构.3微程序控制器的结构.4主要部件设计.5实验调试.6微程序控制的存储器读写系统设计.7设计目的.7设计要求.7结构与信号索引.8微指令格式及微指令编制.8简单模型机设计微程序设计.8设计目标.9指令系统.9总体结构.9关键部件.10微程序控制器的结构.13微指令格式.14微程序编写.15调试.16简单模型机设计硬布线设计.16设计目标.17总体结构.17关键部件设计.18调试.20课程设计中遇到的问题.20感想体会.20附录.22微程序控制的运算器设计详细电路图.22微程序控制的存储器读写系统设计详细电路图.24微程序设计模型机详细电路图.25硬布线控制的模型机详细电路图.34计算机一班鸿武QQ:
2420430689(2号)2总述总述课程设计目的课程设计目的通过该课程设计的学习,总结计算机组成原理课程的学习内容,运用计算机原理知识,设计一台模型机,从而巩固课堂知识、深化学习内容、完成教学大纲要求,学好这门专业基础课。
课程设计内容与要求课程设计内容与要求要求每2位学生一组合作完成设计任务,充分利用所学知识设计出具有一定特色的模型计算机。
课程设计工具课程设计工具要设计模型机,完成课程设计的任务,首先要掌握内容:
计算机组成原理课程设计平台:
JYS计算机组成实验箱;QuartusII软件的使用。
课程设计方法课程设计方法课程设计分为两个阶段:
第一阶段为微程序实现的模型机内核。
通过对部件的设计,以期达到对部件的构成、设计方法、工作原理及在计算机硬件中的功能作一个系统的了解。
第二个阶段为硬布线实现的模型机内核。
将用多个部件构造一台较为复杂的计算机硬件系统。
以期达到对计算机的总体设计、基本构成、基本原理有一个清楚的认识并能建立一个清晰的整机概念,从而扎实地掌握一种数字系统的设计方法。
同组者同组者XX微程序控制的运算器设计微程序控制的运算器设计设计目的设计目的熟悉简单运算器的结构。
计算机一班鸿武QQ:
2420430689(2号)3熟悉微命令的产生和时序。
熟悉运算器功能测试。
设计设计要求要求设计一个八位算法逻辑运算单元ALU。
两操作数由八位寄存器R0、R1提供,其结果放入R2中。
具体何种操作可由微命令任意设定。
运算器结构运算器结构运算器结构如下图所示。
R0、R1、R2均为D触发器组成的八位寄存器,在打入脉冲CPRi的作用下,接收数据输入端提供的信息送入Ri中。
IR23-16为微指令寄存器的高八位,可定义为操作数。
进位信号C0、打入脉冲CPR0、CPR1、CPR2、M、S0、S1、S2、S3均由微指令寄存器的IR8和IR7-IR0产生。
实现框图如下图所示。
图中虚线内的内容就是我们要设计实现的内容。
计算机一班鸿武QQ:
2420430689(2号)4微程序控制器的结构微程序控制器的结构控制存储器24位,ROM3#、ROM2#、ROM1#、IR23-16、IR15-8、IR7-0、L23-16、L15-8、L7-0、RD、CPIR、A0A7均连入FPGA系统中。
自行设计的微程序计数PC向控制存储器提供8位微地址,在控存读信号的作用下,读出一条长24位的微指令代码,并在打入命令CPIR的作用下,送入IR23-16、IR15-8、IR7-0。
L23-16、L15-8、L7-0用于显示微指令寄存器IR23-16、IR15-8、IR7-0的内容。
每当按一次脉冲键便产生一个负脉冲,该脉冲的作用是:
(1)作为读控存的命令RD。
(2)负脉冲当作CPIR,将读出的微指令代码打入IR(3)负脉冲的上升沿使PC1形成下一条微指令的地址。
(4)负脉冲反相后的上升沿作为寄存器打入脉冲。
微指令的格式如下图所示。
计算机一班鸿武QQ:
2420430689(2号)5主要部件设计主要部件设计PCPC的设计的设计PC用异步模256增1计数器实现,电路图如下所示。
该计数器对CLK增1计数。
CLR为清零端,低电平有效,当CLR为0时,该计数器输出全为0。
PRN为置位端,低电平有效,当PRN为0时,该计数器输出全为1。
算术逻辑运算单元算术逻辑运算单元ALUALU的设计的设计该部分中算术逻辑运算单元用两片74LS181芯片按如下图所示结构实现八位组间串行进位运算器。
74LS181功能表如下图所示。
计算机一班鸿武QQ:
2420430689(2号)6ALU的实现电路图如下。
实验调试实验调试将设计完成的电路图下载到FPGA中。
按照前面所给的74LS181功能表编写微指令,并写入到ROM中,微指令从0地址单元开始存放。
例如要实现55+AAR2计算机一班鸿武QQ:
2420430689(2号)7需要如下指令:
55R0:
010101010000000010000000即550080AAR1:
101010100000000001000000即AA0040R0R1R2:
000000000000000100101001即000129R0-R1R2:
000000000000000000100110即000026执行操作:
按一次RET键将PC置零。
按一次脉冲键读出并执行一条微指令。
当微程序执行完时检查并记录结果。
微程序控制的存储器读写系统设计微程序控制的存储器读写系统设计设计目的设计目的
(1)熟悉随机存储器读写系统结构设计。
(2)熟悉随机存储器的读写时序。
(3)熟悉随机存储器的读写操作的微程序实现。
(4)熟悉随机存储器的功能测试。
设计要求设计要求课程设计平台为设计环境提供了容量为2568的随机存储器。
在此基础上,设计相应的外围电路和时序对随机存储器进行读写操作。
结构框图如下图所示,设计完成后可以根据pc访问内存,取出地址Ad1,根据Ad1访问取出数据X,将X保存在Ad2地址单元。
计算机一班鸿武QQ:
2420430689(2号)8结构与信号索引结构与信号索引上图中MAR为地址寄存器。
R寄存器必须为具有三态输出的寄存器,直接调用74374即可。
PC为带清零端的8位增1计数器(在上一部分的运算器设计中已经实现过)。
FPGA引脚信号如下:
A7A0地址信号,方向指向RAM。
D7D0数据信号,双向,RAM的数据通过该数据线读出或写入。
存储器读命令RD,低电平有效。
存储器写命令WR,低电平有效。
微指令格式及微指令编制微指令格式及微指令编制IR3为1产生CPR;IR2为1产生CPMAR;IR4为1产生CPPC;IR1为1产生WR;IR0为1产生RD;IR5为1产生XMAR选择信号;IR6为1产生XPC选择信号;IR7为1产生寄存器R的三态允许信号OE。
因为利用微程序,还必须设计微地址增1计数器PC。
微程序的编制,由存储器的操作确定:
读出地址ad1放入MAR寄存器:
XPC、RD、CPMAR有效,即微指令:
000045HM(ad1)即x送入寄存器R:
XMAR、RD、CPR、CPPC(PC增1)即微指令:
000039H读出ad2送入MAR,即微指令:
000045x送入地址ad2中XMAR、WR、OE有效,即微指令:
0000A2H调试步骤:
设计存储器外围逻辑并下载至FPGA中。
设计微程序并将微程序以十六进制代码键入ROM3#、ROM2#、ROM1#中按一次脉冲键读出并执行一条微指令,并检查微指令执行情况,直至结束。
在RAM中,预先写入ad1、ad2、x具体数据。
该部分的详细电路图见附录。
简单模型机设计简单模型机设计微程序设计微程序设计计算机一班鸿武QQ:
2420430689(2号)9设计目标设计目标本次设计要完成一个用微程序设计的简单模型机。
ALU部分用74181芯片与74182芯片来设计。
本模型机所要实现的功能包括:
加法、减法、增1、减1、两数之和增一、逻辑与、或、异或、直传、非和停机。
指令系统指令系统拟定指令系统将涉及到基本字长、指令格式、指令种类、寻址方式等内容。
这些内容的确定又和总体结构密切相关。
我们实验平台的存储器容量为2568,所以我们将基本字长定为8位。
指令格式分为单字长指令和双字长指令两种。
在双字长格式中,将第二字节定义为操作数或操作数地址。
单字长的指令格式如下图所示。
本模型机的指令分为三类:
单操作数指令、双操作数指令和无操作数指令。
指令中操作码OP占四位,因而最多可定义16条指令。
当寻址方式位为0,是寄存器寻址,操作数在指定的寄存器中,相应的寄存器号位为0是R0,为1是寄存器R1。
当寻址方式位为1时,寻址方式位和寄存器号位组合:
10:
是立即数寻址,操作数在指令的下一个单元;11:
是直接寻址,操作数地址在指令的下一个单元。
总体结构总体结构1、寄存器组R0、R1为通用寄存器,8位。
IR为指令寄存器,8位。
PC程序计数器,8位。
计算机一班鸿武QQ:
2420430689(2号)10MAR为地址寄存器,8位。
2、ALU采用74181芯片和74182芯片实现。
3、选择器连入A选择器的数据来源是RAM的读出数据和R0寄存器的数据。
连入B选择器的数据来源是PC的数据和R1的数据。
4、数据通路模型机的数据通路是以总线为基础,以CPU为核心构成的。
5、取指令过程6、送指令地址过程7、指令计数器加一过程8、R0R1过程9、R1RAM过程关键部件关键部件1、ALU的设计用74181芯片和74182芯片来实现。
计算机一班鸿武QQ:
2420430689(2号)11可以实现的功能在前面74LS181的功能表中已经给出。
2、二选一选择器的设计3、寄存器的设计不带复位的寄存器结构中R0、R1通用寄存器,可存放操作数或结果、中间结果,每个寄存器均由8个D触发器构成。
计算机一班鸿武QQ:
2420430689(2号)12在CPRi的作用下接收总线的数据送入寄存器,输出连入选择器。
指令寄存器IR1、IR2其结构同通用寄存器。
带复位的寄存器结构中MAR地址寄存器是一个带复位的寄存器,带复位是指当有复位信号时,MAR清零。
4、程序计数器PC的设计程序计数器用带有复位的八位寄存器实现。
当复位信号有效时,程序计数器清零。
5、三态门设计用八个TRI实现,如下图所示6、部件之间的连接部件之间的连接是采用以CPU为中心的总线连接方式。
加法器的输出通过总线BUS连接到所有寄存器和存储器的输入端,除指令寄存器IR和地址寄存器MAR的输出端外,其它部件的输出端分别送入选择器A和选择器B。
7、后继微地址产生为简单起见只选三种后继微地址生成方式,即增量方式、无条件转移方式、按操作码转移方式。
其结构框图如下所示。
当LD1时,微程序计数PC执行加1操作。
当LD0时且JP1时,无条件转移,由微指令的中八位提供转移地址。
当LD0时且QJP1时,按操作码转移。
部件电路设计如下图所示。
计算机一班鸿武QQ:
2420430689(2号)138、启动/停止电路设计注意这里CLR最好接一个开关,当该开关打开时,按下单脉冲,此电路即可不断输出连续脉冲,关闭开关则停止输出连续脉冲。
微程序控制器的微程序控制器的结构结构如下图所示,主要由控制存储器ROM3#、ROM2#、ROM1#、微指令寄存器IR23-16、IR15-8、IR7-0构成。
计算机一班鸿武QQ:
2420430689(2号)14P脉冲的低电平用做控制存储器读命令RD。
P脉冲的上升边沿将读出的微指令送IR。
脉冲的上升边沿将形成的后继地址送微程序计数器PC,同时将运算结果(总线的数据)送指定的寄存器。
微指令格式微指令格式微指令字长24位即IR23IR0。
1、微指令字段定义ALU控制三态门控制IR60高阻态使C11三态门使能使C0停机控制IR30G=0,运行1G=1,停机A选择器控制IR15IR1400备用01RA10MA11备用B选择器控制IR13IR1200备用01PB10RB11备用输出分配IR11IR10IR9000备用001CPR0010CPR1011CPPC计算机一班鸿武QQ:
2420430689(2号)15100CPIR101CPMAR110备用111备用存储器读写控制IR5IR410RD01WR后继微地址IR2IR1IR0000备用001PC1顺序执行010JP无条件转移,地址由IR15-8提供。
011QJP高四位按操码转移,低4位为0。
100YJP给定高4位低4位按源寻址方式转移。
101MJP给定高4位低4位按目寻址方式转移。
110备用111备用微程序编写微程序编写这里以加法为例,更多运算的微程序和微指令可见附件。
1、编写程序MOV105#,R0MOV201#,R1ADDR0,R1MOV3R1,(FA#)HALT2、操作码的二进制代码MOV1:
0001MOV2:
0010ADD:
0011MOV3:
0100HALT:
01013、程序代码地址代码地址内容0000110001000001012001010013000000014001100015010001116111101017010100004、微程序入口取指周期微指令入口:
00HMOV1执行周期微指令入口:
10H计算机一班鸿武QQ:
2420430689(2号)16MOV2执行周期微指令入口:
20HADD执行周期微指令入口:
30HMOV3执行周期微指令入口:
40HHALT执行周期微指令入口:
50H5、指令执行流程调试调试调试时可以暂时不用启动/停止电路。
1、复位按下CPU复位键。
使MAR清0、指令计数器PC清0,保证从存储器0号单元取指令。
使微程序计数器UPC清0,保证从3#RAM、2#ROM、1#ROM的0#单元取出取指令微程序的第一条微指令。
2、执行微程序按复位键后,PC,PC,MAR为0。
按一次脉冲键产生一负脉冲(作为RD),将ROM1#、ROM2#0号单元的16位微指令代码读出,用的上升沿将微指令送入IR15-0,看是否正确。
第一条微指令产生的命令是:
MA、RD2、CPIR,后继微地址产生方式为PC+1,其操作是:
RD2读RAM,单元地址为0,即读0号单元的内容。
0号单元的内容是一条指令,指令代码读出后,在MA的作用下,进入加法器至总线。
此时,总线上的内容点亮LR15-8,查看是否正确。
按一次脉冲键又产生一负脉冲。
该负脉冲反相后的上升沿产生CPIR,将上条微指令读出的指令代码送IR,同时上升沿还将PC+1。
该负脉冲的低电平用以读出PC指示的第二条微指令。
简单模型机设计简单模型机设计硬布线设计硬布线设计RD计算机一班鸿武QQ:
2420430689(2号)17设计目标设计目标本次设计要实现一个硬布线控制的模型机,ALU部分用74181芯片与74182芯片来设计。
本模型机所要实现的功能包括:
加法、减法、增1、减1、两数之和增一、逻辑与、或、异或、直传、非和停机。
并对该模型机进行一定的优化,使其节省节拍信号数,以获得更快的执行速度。
字长采用八位字长,指令格式与微程序设计中相同。
总体结构总体结构总体结构如下图所示。
寄存器组的设计R0、R1为通用寄存器,8位。
IR为指令寄存器,8位。
PC程序计数器,8位。
MAR为地址寄存器,8位。
ALU的设计用74181、74182实现。
选择器的设计连入A选择器的数据来源是RAM的读出数据和R0寄存器的数据。
连入B选择器的数据来源是PC的数据和R1的数据。
数据通路模型机的数据通路是以总线为基础,以CPU为核心构成的。
取指令过程送指令地址指令计数器+1计算机一班鸿武QQ:
2420430689(2号)18R0R1R1RAM硬布线逻辑电路控制器的结构如下图所示关键部件设计关键部件设计ALUALU的设计的设计采用74LS181和74LS182芯片设计实现。
结构与微程序设计的模型机中完全相同。
二选一选择器二选一选择器与微程序设计的模型机中完全一致。
寄存器组设计寄存器组设计与微程序设计的模型机中完全一致。
三态门设计三态门设计与微程序设计的模型机中完全一致。
部件之间的连接部件之间的连接部件之间的连接是采用以CPU为中心的总线连接方式。
ALU的输出通过总线BUS连接到所有寄存器和存储器的输入端,除指令寄存器IR和地址寄存器MAR的输出端外,其它部件的输出端分别送入选择器A和选择器B。
时序节拍设计时序节拍设计根据指令执行流程,设计时序为:
分取指周期和执行周期,每个周期为4节拍,如下图所示。
计算机一班鸿武QQ:
2420430689(2号)19W1高电平时是取指周期的4节拍,W2高电平时是执行周期的4节拍。
时序控制信号产生部件的设计时序控制信号产生部件的设计根据指令执行流程和数据通路,以加法为例,各控制信号的列表如下:
表中单元格内,填写的是该控制信号发生的条件。
可以根据该表格做出相应控制信号的电路图。
例如CPPC的电路图如下所示。
启动启动/停止电路停止电路在微程序控制的模型机中我们已经实现了可以控制的连续脉冲的启停电路。
微程序控制的启停电路在硬布线实现的模型机中也可以使用,但是有的指令(如加法指令)的执行周期所需的时钟周期特别少,而我们又必须给它分配与其他指令相同的执行周期,这就造成了时钟的浪费。
因而我们对原微程序控制的模型机的启停电路进行了优化。
通过分析各指令的执行过程,我们发现运算指令的执行周期所需的时钟周期数最少,可优化潜力最大,因而我们选择对该种指令进行优化。
只需要当期执行周期的第一个时钟周期执行完成后,对节拍发生器中的模四增一计数器进行清零即可。
实现电路图如下图所示。
状态W1(取指周期)指令MOV1MOV2ADDA-BA+1A-1A+B+1异或与或A非A直传MOV3控制信号MAT2T3T3T3RAT1T1T1T1T1T1T1T1T1T1PBT1、T3T1、T2T1、T2T1、T2RBT1T1T1T1T1T1T1T1T1T1T4CPR0T3CPR1T3T1T1T1T1T1T1T1T1T1T1CPPCT3T2T2T2CPIRT2CPMART1T1T1T1、T3RDT2T3T3T3WRT4驱动CT4M1(T1)、1(T2)、0(T3)1(T1)、0(T2)、1(T3)1(T1)、0(T2)、1(T3)0(T1)0(T1)0(T1)0(T1)0(T1)1(T1)1(T1)1(T1)1(T1)1(T1)1(T1)、0(T2)、1(T3)、1(T4)S31(T1)、1(T2)、1(T3)1(T1)、1(T2)、1(T3)1(T1)、1(T2)、1(T3)1(T1)0(T1)0(T1)1(T1)1(T1)0(T1)1(T1)1(T1)0(T1)1(T1)1(T1)、1(T2)、1(T3)、1(T4)S20(T1)、1(T2)、0(T3)0(T1)、0(T2)、1(T3)0(T1)、0(T2)、1(T3)0(T1)1(T1)0(T1)1(T1)0(T1)1(T1)0(T1)1(T1)0(T1)1(T1)0(T1)、0(T2)、1(T3)、0(T4)S11(T1)、1(T2)、0(T3)1(T1)、0(T2)、1(T3)1(T1)、0(T2)、1(T3)0(T1)1(T1)0(T1)1(T1)0(T1)1(T1)1(T1)1(T1)0(T1)1(T1)1(T1)、0(T2)、1(T3)、1(T4)S00(T1)、1(T2)、1(T3)0(T1)、1(T2)、1(T3)0(T1)、1(T2)、1(T3)1(T1)0(T1)0(T1)1(T1)1(T1)0(T1)1(T1)0(T1)0(T1)1(T1)0(T1)、1(T2)、1(T3)、0(T4)CN0(T3)0(T2)0(T2)1(T1)0(T1)0(T1)1(T1)0(T1)0(T1)0(T1)0(T1)0(T1)0(T1)0(T2)W2(执行周期)计算机一班鸿武QQ:
2420430689(2号)20调试调试1、复位按CPU复位键,使MAR清0、指令计数器PC清0,保证从存储器0号单元取指令。
2、打开控制开关,按单脉冲键,启动程序执行。
课程设计中遇到的问题课程设计中遇到的问题1、在做微程序控制的存储器读写系统的设计的时候,无法正确读写RAM。
经检查,是因为没有添加。
2、做硬布线的模型机的时候,出现了一系列的问题。
经过排查原因主要有两个,一个是由于脉冲波形的问题,需要在CPR0、CPR1、CPPC、CPIR、CPMAR信号的P输入端加上一个非门,以改变脉冲波形。
而是在计算信号的时候误将一部分形如1+2的式子写成了1+2,导致了一部分信号的错误。
相比于第一个错误来说,第二个是不应该犯的。
总的来说这次课程设计还算顺利,没遇到其他什么太大的问题。
感想体会感想体会大学本科阶段中,硬件的最后一部分,也是最大一部分结束了。
从电子电路技术到数字逻辑再到计算机组成原理。
我们从半导体制作二极管、三极管开始,到用二极管三极管制作与或门,再到用与或门制作简单芯片、模型机,并在模型机上编写指令运行。
整个计算机的硬件的框架我们好像是已经学完了。
我自我感觉整个硬件系统学得还可以,三门课程都在90分以上,算是中规中矩,还说得过去。
实验、课程设计也能够完全自主完成。
相比于其他专业来说,计算机专业可能要稍微累一些,到了大三这一差别更为明显。
一周三门课程设计五门实验,的确压力不小。
计算机组成原理的课程设计好像是节奏最好的一个实验课,几乎不用利用课下时间,课上的时间就已经足够了,相比于其他的课程来说也的确是一股清流。
虽然这是一门大学分的专业基础课,但是好多同学好像并不怎么看重这门课,认为这门课用处不大。
我不敢苟同这种观点,计算机组成成功地将我们过去所学的东西联系了起来,它和编译原理的学习结束意味着整个计算机科学体计算机一班鸿武QQ:
2420430689(2号)21系的框架我们已经学完了。
从此以后我们可以从整体的角度去看我们的所学。
自己用一些与或门逻辑器件去构造一个模型机并在上面编写机器语言是指运行,难道不是一件很酷的事情吗?
计算机一班鸿武QQ:
2420430689(2号)22附录附录微程序控制的运算器设计详细电路图微程序控制的运算器设计详细电路图1、八位寄存器2、异步模256增1计数器(PC)计算机一班鸿武QQ:
2420430689(2号)233、算数逻辑运算单元(ALU)4、主电路图计算机一班鸿武
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 山东 大学计算机 组成 原理 课程设计 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)