计算机组成原理课程设计报告Word文件下载.docx
《计算机组成原理课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课程设计报告Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
3.在调试成功的基础上,整理出设计图纸和相关文件,包括:
(1)总框图(数据通路图);
(2)微程序控制器逻辑图;
(3)微程序流程图;
(4)微程序代码表;
(5)设计说明书及工作小结。
3设计要求
(1)对指令系统中的各条指令进行分析,得出所需要的占领周期与操作序列,以便确定各器件的类型和数量;
(2)设计总框图草图,进行各逻辑部件之间的互相连接,即初步确定数据通路,使得由指令系统所要求的数据通路都能实现,并满足技术指标的要求;
(3)检查全部指令周期的操作序列,确定所需要的控制点和控制信号;
(4)检查所设计的数据通路,尽可能降低成本,简化线路,优化性能。
以上过程可以反复进行,以便得到一个较好的方案。
4数据格式与指令系统
4.1数据格式
数据字规定采用定点整数补码表示法,字长8位,其中最高位为符号位,其格式如下:
7
654321
符号位
尾数
4.2指令系统
本实验设计使用5条机器指令,其格式与功能说明如下:
7
6
5
4
3
2
1
IN
0
ADD
A
STA
OUT
JMP
IN指令为单字长(字长为8bits)指令,其功能是将数据开关的8位数据输入到R0寄存器。
ADD指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将R0寄存器的内容与内存中地址为A的数相加,结果存放在R0寄存器中。
STA指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将R0寄存器中的内容存储到以第二个字为地址的内存单元中。
OUT指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是将内存中以第二个字为地址的内存单元中的数据读出到数据总线,显示之.
JMP指令为双字长指令,第一个字为操作码,第二个字为操作数地址,其功能是程序无条件转移到第二个字指定的内存单元地址.
5设计原理与电路图(包括总框图、微程序控制器的逻辑图、电路图和封装图)
5。
1总的逻辑框图:
通过这个逻辑框图,可以看出整个模型机的设计主要是微程序控制器,PC计数器,时序产生器三个部分,然后再结合前面的设计好的控制器和存储器的部分,就可以设计好这个模型机的逻辑图。
微控制信号说明:
nROM_BUS:
ROM数据输出到总线控制信号,低电平有效。
nRAM_BUS:
RAM数据输出到总线控制信号,低电平有效.
m:
加、减法选择控制信号,为1做加法,为0做减法。
nSW_BUS:
数据输入到总线控制信号,低电平有效。
LDN:
PC置数控制信号,低电平有效。
nCS:
RAM片选信号.(此信号的有效值根据所用RAM器件特性来定)
WE:
RAM写信号,高电平时做写操作。
LDR0:
数据打入R0锁存控制信号,脉冲上升沿有效。
LDDR1:
数据打入R1锁存控制信号,脉冲上升沿有效。
LDDR2:
数据打入R2锁存控制信号,脉冲上升沿有效。
LDIR:
数据打入IR锁存控制信号,脉冲上升沿有效。
LDPC:
数据打入PC锁存控制信号,脉冲上升沿有效。
LDAR:
数据打入AR控制信号,脉冲上升沿有效。
nALU_BUS:
运算器ALU结果输出到总线控制信号,低电平有效。
nPC_BUS,低电平有效。
nR0_BUS,低电平有效。
以下封装成的芯片的信号不再赘述。
5.2微程序控制器:
2.1地址转移逻辑图
封装成芯片:
对其生成波形文件如下:
由波形文件可以总结看出clr是总的清零端,当其为零时输出始终为0,当其为1时,逻辑地址转移器正常工作,T2,T4为脉冲控制端,上升沿有效。
当PRN的控制端为1时,输入等于输出,当PRN的控制端为0时,输出始终为1,p1端则是指令的译码端,当其为1时,指令产生译码,根据指令的操作码来确定指令执行的第一条微指令的地址.当p1端为0时不译码,直接指向下一条微指令的地址。
5.2.2微程序控制器逻辑图
对该图进行波形文件测试:
分析波形文件可以得出:
通过给定指令操作码,可以看出我设计的微指令的微命令信号的情况。
之后的总得电路图不再显示每条指令的微命令信号。
5.3PC计数器
封装成芯片:
对其产生波形文件:
分析该波形文件可以得出:
LDPC是计数端,默认从00开始计数,每次经过CLK的上升沿脉冲计数器进行+1操作.LDN为置数控制端,当其为1时,计数器将从设置的数据值开始进行+1计数。
5.4时序产生器
当控制端startup为0时,stop为0或者1时都会产生正确的时序电路,产生时序信号对通路的部件加以控制,以避免单总线上各个部件之间数据传输产生冲突,一个CPU周期包含4个时钟脉冲,四个时钟脉冲依次产生.一条微指令如果需要同时使用两个或以上的脉冲信号时,一定要注意脉冲信号的产生的先后顺序。
当控制端startup为1时,stop为0时,则会停止脉冲信号的产生。
5.5总的逻辑组成图(运算器和存储器不再说明):
5.5。
1逻辑图及波形文件
2初始化数据
微指令的储存情况(十六进制表示):
ROM的初始化数据(存放指令操作码):
RAM的初始化数据(存放操作数地址以及操作数):
5.3指令的具体分析
IN指令:
PC计数器+1,此时为01,执行第01条微指令,从ROM中取出操作码20H通过P字段译码转到第09条微指令,将输入的数据送到R0中,执行公操作.
ADD指令:
PC为02H,从ROM的02单元取出操作码40H通过译码转移到第10条微指令从RAM的02H单元取出操作数的地址08H送到AR寄存器,接着第3条微指令从RAM的08单元取出操作数13H送到DR1,执行第四条微指令将R0寄存器中的数送到DR2,执行第5条微指令将和数送到R0,执行公操作.
STA指令:
PC为03H,从ROM的03单元取出操作码60H通过译码转移到第11条微指令,从RAM的03H单元中取出操作数地址09H,送到寄存器AR,执行第6条微指令将R0中的数据存放到RAM的09H地址单元中,执行公操作。
OUT指令:
PC为04H,从ROM的04单元取出操作码80H通过译码转移到第12条微指令,
从RAM的04H单元中取出操作数地址09H,送到寄存器AR,执行第7条微指令将RAM的09H地址单元的数输出到总线上去,执行公操作。
JMP指令:
PC为05H,从ROM的05单元取出操作码A0H通过译码转移到第13条微指令,从RAM的05H单元中取出操作数地址0AH,送到寄存器AR,执行第8条微指令将PC计数器的值置数为0AH单元的数值01,执行公操作。
6微程序流程图、代码表
1微程序流程图:
2代码表:
微指令地址
nROM_BUS
nRAM_BUS
m
nSW_BUS
LDN
nCS
WE
LDR0
LDDR1
LDDR2
LDIR
LDPC
LDAR
nALU_BUS
nPC_BUS
nR0_BUS
P1
ad4
ad3
ad2
ad1
ad0
21
20
19
18
17
16
15
14
13
12
11
10
9
8
微指令分析:
其中00微指令是默认开始的,从储存器中取出第一条微指令。
01—02表示的是公操作指令,就是从ROM中取出每条指令的操作码,P1字段为1,进行译码操作,找到对应的微指令的地址。
每次都是让其跳转到第八条指令的后面去寻找正确的微指令地址。
第9条表示的是IN指令的微指令,第10,3,4,5表示的是ADD指令的微指令,第11,6表示的是STA指令的微指令,第12,7表示的是OUT指令的微指令,第13,8表示的是JMP指令的微指令,其中JMP指令对PC计数器进行置数,使其模型机转移到IN指令如此循环的执行。
每一条微指令的后5位通过P1字段的控制用来指示下一条微指令的地址,其他各个数据位相应的各个器件的控制信号。
7系统调试情况
(1)一开始并没有对D触发器有很深刻的认识,所以对其的控制端的作用不是很了解,以致对整个地址逻辑转移图没有完全理解。
然后我通过对单独的一个D触发器进行波形测试调试,通过结果分析出D触发器各控制端的作用,并完全理解逻辑地址转移的情况.我通过译码端P字段让指令操作码与普通逻辑地址0100B进行译码得出新的逻辑地址,方便微指令的执行。
(2)对于在画逻辑电路图时,一定要注意,如果要用总线对相同类型的控制端进行集合,总线的命名一定要和集合中的相同,而且属于同一个总线的命名一定要一致,不同的总线的命名一定不能相同。
在这一方面我也有栽过很大的跟头。
(3)在设计微指令的时候,如果一条微指令使用了不同的时钟脉冲,一定有注意时钟脉冲的先后关系.
(4)在创建MIF文件时一定要注意地址单元和数据单元的进制位,不能搞混,要在正确的地址单元中写入正确的数据值.
(5)每次在进行波形文件的调试的时候,要首先更新一下更改过的的MIF文件才能有作用,否则是在以前的MIF文件下的生成的波形文件。
(6)在PC计数器中要注意每次计数和置数的条件,以及时钟脉冲的设置。
在这里我还是弄得不太明白,还需要进一步的了解和研究。
8设计总结与体会
在这短短的一周时间内,我通过自己的不断学习和在老师的指导与同学的帮助下,终于成功的完成了这个课程设计,虽然时间很紧张,但是在这个过程中我还是学习到了很多的东西。
在设计的过程中我深深地体会到看起来不难的东西其实设计起来是相当复杂的,万万不能眼高手低,而且必须要有足够的耐心才能做得好做得完美。
由于时间有限,我只是按照课程设计的要求设计出了5条指令。
而且指令设计的浅显易懂,在之后有兴趣的话我会设计出多的指令出来,从而进一步发现问题解决问题,对计算机组成原理做更深的了解和研究.我在设计的过程中将指令的操作码放到了ROM的存储器中,将指令的操作数地址和数据值放到了RAM的存储器中,这样可以方便分析和各项操作的正确进行,可是不利于计算机的存储工作。
在后续的工作中,可以考虑把他们放在一起,这样就更加结合实际需要。
在老师的指导和交流中,发现我的指令的储存方式不对,在计算机中无法将指令的操作码和操作数的地址放到不同的存储器中,计算机无法实现,必须把他们放到同一个存储器中并且指令的操作码和操作数要在相邻的地址单元中。
在后续的工作中我会加以改正和优化的。
在整个课程设计中,与同学互帮互助,团队合作能力也是至关重要的,当然最主要的还是自己要肯下功夫,肯花时间在这上面。
9参考文献
[1]白中英。
《计算机组成原理(第五版)》[M]。
科学出版社,2013.1139—183
[2]康华光。
《电子技术基础(第五版)》[M]。
高等教育出版社,2006.1127—318