打入脉冲CPR0定义在K8上;将打入脉冲CPR1定义在K9上;将打入脉冲CPR2定义在K10上。 开关K由低电平拔向高电平再拔向低电平,相当于一个脉冲。
将存放结果的寄存器R2的输出端D(d3d2d1d0)分别定义在LED3-0上;将LM定义在K11上。将DM定义在K12上。将RM定义在K13上;将CO定义在K14上,并下载。 (5)功能测试
利用开关K与LED测试:加法、加1、左移、右移、直传等功能,并分析结果正确性。 (6)生成元件符号。
第三节 微程序控制器实验
一、实验目的
1 熟悉微程序控制器的基本概念。
2 熟悉微程序控制器的基本结构与基本组成。 3 熟悉微程序控制器的基本工作原理。
二、实验内容及说明
现在控制器设计大都采用微程序设计方法,因此控制器的实验采用微程序控制器,又称存储逻辑控制器。实验电路如图14 所示。
图中实线部分均由课程设计平台提供,而虚线部分则由学生自行设计。
?RD、当模式开关置于统调时(推向上方),控制存储器ROM2#、ROM1#、L15-8、L7-0、?IR15-8、?IR7-0、
CP?IR、A0~A7均连入1032E系统中。
其中,自行设计的微程序计数?PC向控制存储器提供8位微地址,在控存读信号?RD的作用下,读出一条长16位的微指令代码,并在打入命令CP?IR的作用下,送入?IR15-8、?IR7-0。
L15-8、L7-0用于显示微指令寄存器?IR15-8、?IR7-0的内容。 每当按一次脉冲键便产生一个负脉冲,该脉冲的作用是:
·作为读控存的命令?RD。
·负脉冲当作CP?IR将读出的微指令打入微指令寄存器?IR。 ·负脉冲的上升沿使?PC+1形成下一条微指令的地址。 ·负脉冲反相后的上升沿作为寄存器打入脉冲。 微程序时序如图15。
10
73 CPPC μ PC 24 68 69 41 – 34 52 – 45 1032E RET2 8 8 60 - 53 μRD CPμIR μIR15-8 μIR 7-0
1 1 L15-8 L7-0 8 8 8 μIR15-8 μIR 7-0 8 8 ## ROM1 ROM2 A7 – A0
P
图14 微程序控制器框图
// P // 三、实验步骤
图 15 微程序时序
1、将实验系统中的模式开关(K23)置于分调模式。
2、设计并调试8位具有加1功能的微程序计数器μPC并封装。
* 将μPC的计数脉冲CPPC定义在单脉冲(73)上,并用73脚提供脉冲同时驱动μRD、CPμIR。 * 将μPC的8位输出定义在A7-A0(60-53)上。 * 将μPC的复位端定义在复位信号RET2(24)上。 *下载。 3、写入微程序
(1)编制微程序,每条微指令均由4位16进制数表示。 (2)将微程序写入ROM2#、ROM#中,从0#单元开始写入。 4、将开关置统调。 5、读出微指令(功能测试)
* 按RET2复位键,清μPC为0,μPC指向0号单元。
* 每按一次单脉冲键,便读出一条16位长的微指令。微指令的高8位出现在(41-34)上,并由L15-8指示。微指令的低8位出现在(52-45)上,并由L7-0指示。每一条微指令中的微命令便完成指定的操作。
11
第四节 CPU综合实验
一、实验目的
1、 掌握运算器的基本结构与基本功能。 2、 掌握控制器的基本结构与基本原理。 3、 掌握运算器与控制器的信号连接。 4、 掌握简单CPU的调试过程。 5、 掌握简单CPU的功能测试方法。
Q3 Q2 Q1 Q0 ALU a3 ?? a0 b3??b0 CPR0 CPR1 CPR2 LM DM RM C0 73 P 41 40 39 38 52 51 50 49 48 47 46 a3 a2 a1 a0 ?IR CPR0 CPR1 CPR2 LM DM RM C0 ROM2 ROM1 69 68 CP?IR ?RD A7 A6 A5 A4 A3 A2 A1 A0 ?PC CP?PC 图16 CPU综合实验结构框图
二、实验内容及说明
CPU综合实验电路包括运算器电路和控制器电路。图16给出了CPU综合实验结构框图。图中的虚线框外电路由实验箱提供,虚线框内电路由学生自行设计并下载到ispLSI1032E中,其中微程序控制器是由μPC、ROM2、ROM1和μIR构成。
运算器由三个寄存器R0、R1、R2、移位器、加法器等构成,并组装在一起构成ALU算术逻辑运算部件。
按图16将微程序控制器和ALU连接在一起构成CPU。
12
三、实验步骤
1、 调用ALU模块、μPC模块及门电路按图16完成连线。
2、 管脚定义:ALU的输入数据a3-a0C依次定义在41-38上。CPR0、CPR1、CPR2依次定义在52-50上。LM、DM、RM、C0依次定义在49-46上。P脉冲定义在73上。Q3—Q0依次定义在79-78上。
3、 将实验系统中的模式开关置于分调位置并下载。 4、 编制微程序 微指令可确定如下格式:
CPR0 CPR1 CPR2 P CPR0 CPR1 CPR2 LM DM RM C0 a3a2a1a0 μIR15--μIR12 μIR7 μIR6 μIR5 μIR4 ?????? μIR0
将微指令格式分为两部分:前面部分?IR15~?IR12可设置数据,后面部分?IR7~?IR0可确定微命令,例:需要CPR0脉冲,该位为1,否则为0;备用位填0。
例题:编写一个0110+1000的微程序。
寄存器分配:0110送R0、1000送R1、结果送R2。 操作步骤 微指令 说明
0 1 1 0?R0; 60 80H 存入控制存储器ROM2#、ROM1#的0单元。 ?
1 0 0 0?R1; 80 40H 存入控制存储器ROM2#、ROM1#的1单元。 ?
R0+R1?R2; 00 20H 存入控制存储器ROM2#、ROM1#的2单元。 5、写入微程序。
将三条微指令的高位字节依次写入ROM2#的0、1、2单元。 将三条微指令的低位字节依次写入ROM1的0、1、2单元。 读出并查看是否有错,若有错改之。
6、将开关置统调(功能检查)
按复位键RET2清μPC,使之指向控制存储器的0号单元。 每按一次单脉冲键,便执行一条微指令。 按第3次单脉冲键,微程序执行完毕。
运算结果应存放在R2中,并用LED3-0指示。 同学可编制多种多样的微程序来完成各种操作。 例 2×(R0+R1)? R2; 1/2(R0+R1)? R2; ??
13
第五节 一个简单计算机设计示范
在《计算机组成原理课程设计》第5.2节中,已将计算机的指令系统、指令格式、计算机结构、微程序编制、部件设计图、部件连接图介绍的非常清楚和详细,可作为一个实验,由同学们比照做一下,并验证其正确性。
附录 ispEXPERT(ispLEVER)库及库元件说明
ispEXPERT(ispLEVER)软件提供了包括10个大类的元件库,每类库中又提供了相应的元件供用户选择。使用时首先根据应用目的选择库的大类,然后再从其中选择需要的元件符号。例如设计时需要使用2输入与门,可首先选择门电路 “gate(gates)”库,打开该库后再从其中找到“and2”元件即可。
ispEXPERT(ispLEVER)软件所提供的10大类元件库如下:
1、local库:设计者自己设计的电路经封装后生成的元件符号库,即用户库。 2、Misc(title)库:设计文件说明。
3、arith(ariths)库:算术运算库。其中主要是加法器、减法器、比较器等。 4、coder库:译码器和编码器库。
5、count库:计数器库。主要包括各种类型的计数器。
6、gate(gates)库:门电路库。其中包括常用的各种类型的门电路。 7、iopin库:输入输出库。主要包括输入电路、输出电路和双向电路。 8、mux(muxes)库:数据选择器和数据分配器库。 9、register(regs)库:寄存器库,提供多种常用的触发器。
10、iopads库:输入输出库。当设计的源文件需要下载时必须调用该库中的缓冲器。
关于库中具体元件的功能,可参考ispEXPERT(ispLEVER)软件的帮助文件,此处不再赘述。
14