南通大学计算机科学与技术学院
计算机组成原理课程设计
报 告 书
课 题 名 模型计算机的设计与实现
班 级 计123班
姓 名 流星雪雨
学 号
指导教师 顾辉
期 日.
目录
1 设计目的....................................................................................................................................... 0 2 设计内容....................................................................................................................................... 0 3 设计要求....................................................................................................................................... 0 4 数据格式与指令系统 ................................................................................................................... 0 4.1 数据格式 ............................................................................................................................ 0 4.2 指令系统 ............................................................................................................................ 1 5 设计原理与电路图(包括总框图、微程序控制器的逻辑图、电路图和封装图) .................... 1 5.1 总的逻辑框图: ................................................................................................................ 1 5.2 微程序控制器: ................................................................................................................ 2 5.2.1 地址转移逻辑图 ..................................................................................................... 2 5.2.2 微程序控制器逻辑图 ............................................................................................. 2 5.3 PC计数器 ........................................................................................................................ 3 5.4 时序产生器 ........................................................................................................................ 3 5.5 总的逻辑组成图(运算器和存储器不再说明): ........................................................ 3
5.5.1 逻辑图及波形文件 ................................................................................................. 3 5.5.2 初始化数据 ............................................................................................................. 3
6 微程序流程图、代码表 ............................................................................................................... 4 6.1 微程序流程图: ................................................................................................................ 4 6.2代码表: ............................................................................................................................. 4 7系统调试情况 ................................................................................................................................ 5 8 设计总结与体会 ........................................................................................................................... 6 6....................................................................................................................................... 参考文献9
1 设计目的
1.融会贯通教材各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,加深计算机工作中“时间-空间”概念的理解,从而清晰地建立计算机的整机概念。
2.学习设计和调试计算机的基本步骤和方法,培养科学研究的独立工作能力,取得工程设计和调试的实践和经验。
2 设计内容
1.根据给定的数据格式和指令系统,设计一台微程序控制的模型计算机。 2.根据设计图,在QUARTUS II环境下仿真调试成功。 3.在调试成功的基础上,整理出设计图纸和相关文件,包括: (1)总框图(数据通路图); (2)微程序控制器逻辑图; (3)微程序流程图; (4)微程序代码表; (5)设计说明书及工作小结。
3 设计要求
(1)对指令系统中的各条指令进行分析,得出所需要的占领周期与操作序列,以便确定各器件的类型和数量;
(2)设计总框图草图,进行各逻辑部件之间的互相连接,即初步确定数据通路,使得由指令系统所要求的数据通路都能实现,并满足技术指标的要求;
(3)检查全部指令周期的操作序列,确定所需要的控制点和控制信号; (4)检查所设计的数据通路,尽可能降低成本,简化线路,优化性能。 以上过程可以反复进行,以便得到一个较好的方案。
4 数据格式与指令系统
4.1 数据格式
位,其中最高位为符号位,其格式如下:8数据字规定采用定点整数补码表示法,字长 7 6 5 4 3 2 1 尾 符号位 数
4.2 指令系统
本实验设计使用5条机器指令,其格式与功能说明如下:
7 6 5 4 3 2 1 0
0 0 0 IN 0 0 0 0 1 A 0 0 0 0 1 0 0 0 ADD A 0 0 0 1 0 STA 0 1 0 A 0 0 0 OUT 0 0 1 0 0 A 0 0 1 1 0 0 0 JMP 0
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 微程序控制器:
5.2.1 地址转移逻辑图
封装成芯片:
对其生成波形文件如下:
由波形文件可以总结看出clr是总的清零端,当其为零时输出始终为0,当其为1时,逻辑地址转移器正常工作,T2,T4为脉冲控制端,上升沿有效。当PRN的控制端为1时,输入等于输出,当PRN的控制端为0时,输出始终为1,p1端则是指令的译码端,当其为1时,指令产生译码,根据指令的操作码来确定指令执行的第一条微指令的地址。当p1端为0时不译码,直接指向下一条微指令的地址。
5.2.2 微程序控制器逻辑图
封装成芯片:
对该图进行波形文件测试:
分析波形文件可以得出:通过给定指令操作码,可以看出我设计的微指令的微命令信号的情况。之后的总得电路图不再显示每条指令的微命令信号。
5.3 PC计数器
封装成芯片: 对其产生波形文件:
分析该波形文件可以得出: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 逻辑图及波形文件
对其产生波形文件:
5.5.2 初始化数据
微指令的储存情况(十六进制表示): ROM的初始化数据(存放指令操作码):
RAM的初始化数据(存放操作数地址以及操作数): 5.5.3 指令的具体分析
IN指令:PC计数器+1,此时为01,执行第01条微指令,从ROM中取出操作码20H通过 中,执行公操作。R0将输入的数据送到,条微指令09字段译码转到第P.
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 微程序流程图、代码表
6.1 微程序流程图: 6.2代码表:
nnnnnnARRRPLSLLLLLOAL0DaanCWDaaaL微PDDDDWMMUd_ddDDm_C_ddD指 E1A_I__RP
43RB2R10NSBB令 B0RBBRC 21UUU地 UUUSSS 址 SSS
1111112211119876543210 080197124563
00000000000100000000001