



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机组成原理课程设计说明书题目:基于微程序控制器(主控存分开)的简单计算机设计与实现姓名 :靳淑蕉学号:U200915337 班级:信息安全 0903 同组者 :潘莹实验台号 :49 完成日期 :2012年 1 月 19 日指导老师 :王晓兰、周建国、秦磊华华中科技大学计算机科学与技术学院一实验题目 . 1二实验目的 . 1三实验要求 . 1四实验流程 . 2五设计方案 . 21.芯片选择 . 22.设计原理图 . 42.1数据通路 . 42.2增加回存功能 . 62.3增加机器指令部分 . 72.4增加微指令部分 . 93.设计微程序控点 . 114.微指令设计 . 144.1取指公操作
2、. 154.2取数微指令 . 164.3加法微指令 . 164.4回存微指令 . 164.5停机微指令 . 175.指令周期流程图 . 175.1取指公操作: . 175.2取数微指令 . 185.3加法运算指令 . 195.4乘 2 微指令 . 205.5回存微指令 . 216.时序设计 . 217.时序图 . 238.设计接线图 . 25六检查过程 . 27七布线调试时遇到的问题及解决办法. 27八实现心得体会 . 30九参考文献 . 31一实验题目基于微程序控制方式的主控存分开的简单计算机系统的设计与实现二实验目的1. 加深对冯诺依曼体系结构计算机组成及其各部分功能的理解,进一步建立整机
3、的概念。2. 加深对计算机数据通路的理解,加深对计算机指令系统、微指令的认识,并通过时序控制,完整地设计一个简单的计算机系统。3. 锻炼学生初步的计算机系统分析和设计能力。4. 锻炼学生分析、定位和排除故障的能力。三实验要求1. 利用各单元实验和课堂上所学知识,选择适当的芯片,设计简单的计算机系统。2. 在完成数据通路设计并验证数据通路功能的基础上增加指令和微指令控制的功能。3. 以自己所设计的计算机系统为硬件环境,设计出完成指定功能的各指令周期流程图,并设计出相应的微命令。4. 以手动方式产生各指令执行过程中所需要的微命令,控制指令的执行。5. 设计控存,并将各指令的微程序存放在CM 中,经
4、过适当的时序控制,通过微程序自动控制指令的执行。四实验流程在课程设计开始前,我们检查了各个芯片是否能正常工作。按照实验指导书上面所给定的各个芯片的功能进行测试,在确定所用的芯片都是好的之后再开始进行接下来的工作。在整个课程设计的过程中,我们依照的是课程设计指导书上面的三步走方法:第一步:打通数据通路,可向存储器6116 中存数,向寄存器中打入,用手动实现算术或逻辑运算。第二步:由 PC 寻址加载机器指令,完成指定算术或逻辑运算;并将结果存入存储器中。第三步:由机器指令的操作码部分加载微指令,由机器指令的地址码部分加载操作数,同时,由它加载的各个微信号,进行运算完成一条机器指令的执行。五设计方案
5、1. 芯片选择在这次的课程设计中,我们选择的芯片类型及数量如下:74LS244 2 片74LS373 5 片181 2 片74LS161 1 片74LS157 1 片74LS395 1 片6116 1 片2816 2 片关于各个芯片的选择理由如下:74LS244芯片:该芯片具有“选通”和“高阻”两种状态,适合用来作为数据输入或是流通时的闸门,所以我们采用了两片244 。一片用来向 6116 中存入机器指令,另外一片用来控制向6116 中回存运算的结果。73LS373芯片:该芯片又称八 D 锁存器,从它的功能表中也可以看出它具有“选通”和“锁存在已建立的数据电平”两种状态,所以该芯片适合用来作为
6、寄存器。因此我们采用了5 片 373 芯片,其中一片寄存181 的运算结果并输出显示,一片作为数据累加器AC,一片作为 IR 寄存机器指令,剩下两片作为IR 存放从控存中读出的微指令。181 芯片:181 芯片是进行算术或逻辑运算必不可少的芯片,而运算的数据是存放在 6116 中的,每个单元的数据有8 位,因此我们需要两片181 并联实现 8 位数据的运算。74LS161芯片: 该芯片又称同步四位计数器,从它的名字就可以看出它具有计数的功能,同时我们在实现中还利用到了它的清零功能。161 芯片是用来作为 PC 使用的,通过它的 4 位输出一共可以选择到主存6116 中的 16 个地址单元。74
7、LS157芯片:该芯片又称 2 选 1 数据选择器,一共有两个输入数据流,每一个数据流是 4 位的,通过使能端S 可以选通其中任意一个数据流,因此该芯片非常适合用来作为主存6116 的地址选择控制。当需要机器指令的时候,157 选择 PC 送来的地址;当需要数据的时候157 选择 IR 的低四位送来的数据地址。74LS395芯片:该芯片有两个功能,“清零”和“置数”,我们选择它作为PC。由于在每执行完一条机器指令之后都要再执行取指公操作,因此我们选择将取值公操作存放在控存的0 号单元。取指阶段将395 清零,执行取指公操作;执行阶段395 置数,执行具体功能。6116 芯片:该芯片的类型是 R
8、AM ,我们选择它作为主存。由于主存中需要根据不同的表达式反复写入各种机器指令,而6116 的数据存入要相对2816简单一点,因此主存采用的是6116 芯片。2816 芯片:该芯片的类型是 ROM ,因此使得它具有断电之后还能保存数据的优势。选择两片 2816 作为控存,存放微指令。因为微指令只需要在设计好了之后,一次性的打入,以后都不需要再修改了,所以2816 无疑是最好的选择。此外还有若干逻辑门2. 设计原理图在原理图的设计过程中,我们是分步走的。首先是从最基本的数据通路开始,然后再一点点的像垒积木一样的往上添加各种芯片逐步实现各个功能。现在将该过程做一个详细的介绍如下:2.1数据通路数据
9、通路部分我们是按照组成原理实验指导书实验五的参考电路一的方案去做的,只是在上面做了两点改动:1.将两片 395 芯片换成了一片 373 芯片。因为 395 需要脉冲触发,较373 来说略显麻烦,因此进行了这样的替换。 2.将 6116 输入到 181 的数据由 A 输入端改成了B 输入端。因为在做减法时是A-B ,为了能正确进行连续的减法运算就必须将 AC 存放的数据从 A 端输入,而将从主存中取出来的数据从B 端输入。最后设计的数据通路电路图如下:图 1 按照该电路连接之后,能够手动实现各种基本的数据运算。具体的步骤为:将数据事先存放到存储器的某些单元中,再通过手动选择地址选中数据,手动调节
10、运算指令,手动操作各个芯片的使能端,从而能够进行连续的算术或逻辑运算,并将结果显示。2.2增加回存功能在按照 2.1 中设计的电路连接之后,我们发现所设计的数据通路没有回存功能,因此我们需要在原来的电路上进行一些改进。我们认为回存和开始的时候向主存6116 中打入数据其实是同样的原理,不过就是要能够控制回存的时机,也即需要回存的时候才将运算结果回存到主存的某一个单元,其余时候不会影响到主存中存放的数据。因此我们仍然采用244 芯片,以 A 寄存器的结果为输入,输出连到6116 的输入 / 输出端,然后通过手动选择244 的使能端来控制回存的时机。这样设计的电路如下:图 2 2.3增加机器指令部
11、分在完成了数据通路,并多次测试确认无误的基础上,我们开始在上面实现机器指令。此时的机器指令的意思就是能够通过PC 选址加载 8位的机器指令到指令寄存器IR 中。这 8 位机器指令得到高4 位是操作码,由这 4 位操作码直接连到181 运算器的 S3-S0 端,去控制各种运算类型; 8 位机器指令的低 4 位则是地址码,会回到主存6116 中去选择运算需要的数据。按照这样的需求,我们增加了一片373 作为指令寄存器 IR,增加了一片 157 用于在 4 位地址码和 PC 输出的地址中做二路选择。这样设计出来的电路如下:图 3 2.4增加微指令部分从这里开始,就到了整个实验的关键部分了。所谓增加微
12、指令也就是通过一系列的设计,把之前的那些需要我们手动控制的各个芯片的使能端全部都通过微指令的0、1 状态控制起来。之前2.3 中实现的只是控制到了 181 的 S3-S0 这 4 个使能端,现在各个芯片,比如181 的M 端、Cn 非端、各个 373 的使能 G 端都要用微指令来控制。我们统计了一下,这个需要控制的点超过了8 个,因此我们需要两片 373 作为微指令寄存器IR,这样就可以设计16 位的微指令(实际上用不到 16 位)。微指令是存放在控存中的,对于控存我们选用的是2816 。之所以选择 2816 主要是看中了它是ROM 类型的存储器,能够在断电之后依然保存所存储的数据,而恰好微指
13、令也只需要在设计完毕之后一次性的存入,以后一般这样就可以免除了我们多次写控存的工作。 PC 我们选用的是 395 芯片,主要是因为该芯片有一个清零功能。我们在每个机器指令执行前我们需要先执行取指公操作,然后再执行具体功能的微指令。这样395 的清零功能就为我们提供了很大的便利,我们只需要将取指微指令放在控存的0 号单元,然后在每个指令周期的开头将PC 清零,就可以进行取指操作了。综上所述,我们在机器指令的基础上添加了一片395. 两片 2816和两片 373 ,最后设计出的电路如下所示:图 4 3. 设计微程序控点在设计微指令之前,我们先分析整个电路中的各个芯片的控点,其中有些是需要控制的;有
14、些是不需要变动的,始终接到一个电位就行了。首先是不需要控制的控点:输入 244 芯片: OEa 非和 0Eb 非控点并接,然后接到一个开关上,只在写机器指令的时候选0,写完后一直为1。这个由手动控制,不需要微指令控制。主存 6116 芯片: CE 非始终接 0,OE 非始终接 0(我们选用WE 非为 0,OE 非为 0 的那个写功能)。多余的地址线接到一起,始终接 0(或者接 1 也可以)。PC 161 芯片: MR 非端接开关,只在开机的时候手动置0,清零之后再置 1。但是后来发现其实可以将start非接到 MR 非端实现自动清零,因为 start 非端也是只在开机的时候为0,其余时候一直为
15、1。157 芯片:使能端 E 非始终为 0。DR373 、AC373 、IR373 、 IR373 :输出控制始终接0。控存 2816 芯片: CE 非始终接 0,WE 非始终接 1,OE 非始终接 0。(因为控存始终是读状态)。多余的地址线接到一起,始终接0(或者接 1 也可以)。 PC 395 芯片: PE 始终接 1,OE 非始终接 0。接下来是需要控制的控点:6116 芯片: WE 非157 芯片: S PC 161 芯片: CP PC 395 芯片: MR 非、CP 非IR373 、 IR373 、DR373 、AC373 :使能 G 回存 244 芯片: OEa 非、OEb 非并接
16、在一起控制根据那些需要控制的控点,我们设计出来的微指令的每一个控点的状态及其所表示的意义如下表所示:微指令控点意义表取值控点0 1 C14 运行停机C13 清零置数C12-C9 181 的 S3-S0 控制端C8 181 有进位181 无进位C7 算术运算逻辑运算C6 IR 不变IR 置数C5 DR 不变DR 置数C4 AC 不变AC 置数C3 回存 244 无效回存 244 有效C2 主存写主存读C1 157 地址选 PC 157 地址选地址码C0 PC 不变PC 加 1 现在对这 15 个微指令控点做一一的解释如下:C14 :该位直接连到时序部分的STOP 端口,平时该位一直为0,只有当最
17、后需要停机时才将该位置为1。通过该位可以实现自动停机。C13 :该位会连到作为 PC 的 395 的清零端 MR 非和 CP 非,配合时序来控制PC 的置数和清零。通过将该位置0,来使得PC 清零,通过将该位置 1,来使得PC 置数。通过该位,可以让 PC 在恰当的时候置数取到相应的微指令,在恰当的时候又可以清零执行取指公操作。C12-C9 :这四个控制位会直接连到181 的 S3-S0 四个控制端口,通过这四个控制位的0/1状态来进行不同的运算。C8:该位会直接连到低位181 的低位进位端,然后低位181 的向高位的进位端再连到高位181 的低位进位端。通过选择该位为1 表示没有进位,而通过
18、选择该位为0 表示有进位。该位的设置主要是为了实现减法运算,因为 181 只有 A-B-1 的运算,为了正确的实现减法,就用一位进位来抵消。该位平时一直置1,只有减法运算的时候才置为0。C7:该位直接连到 181 芯片的 M 端,这样可以控制进行的是算术运算还是逻辑运算。C6:该位是控制作为IR 的 373 芯片的选通和保持状态的,当该位为 1 时 IR 选通,存放在主存中的机器指令会送到IR 中去;当该位为 0时 IR 会保持当前的输出不变,也就相当于此事的输入端无效。之所以要设置该位是因为从主存中读到的数既有机器指令又有运算数据,因此从主存输出的数据不是每一次都可以读到IR 中去的,因此需
19、要控制IR 何时有效。C5:该位是控制作为DR 的 373 芯片的, DR 是存放 181 的运算结果的,当该位为0 时,DR 处于不选通状态,而只有当该位置1 时DR 才选通, 181 的运算结果才能存放到DR 中去。C4:该位是控制作为AC 的 373 芯片的, AC 是累加器,用来存放上一次运算为止的运算结果,通过AC 实现连续运算的功能。C3:该位控制作为回存的244 芯片。回存功能只有在最后运算全部完毕的时候,才将最后的运算结果送回到主存中去,而其余时候是不会向主存输入数据的。因此通过选择该位为0,则将 244 选通,此时可以回存数据;通过选择该位为1,则将 244 置为高阻状态,即
20、没有输出。C2:该位直接连到主存6116 芯片的 WE 非端。当该位为1 时主存读数据,该位为0 时主存写入数据。该位的设置主要是为了配合完成回存功能,一般情况下主存都是处于读数据状态,只有当回存时主存才会写入数据。C1:该位直接连到 157 芯片的输入选择 S 端,该位为 1 时选择的是 I1 端口的输入有效,也即IR 中存放的机器指令的低4 位地址码有效;该位为 0 时选择的是 I0 端口的输入有效,也即PC 的地址有效。之所以要设置该位是因为,在主存中存放的有两种数据,一种是机器指令,它的地址是根据PC 来选择的;另外一种是进行运算所需的数据,它的地址是根据机器指令的地址码部分来选择的。
21、通过该位即可控制主存中各种数据的正确取得。4. 微指令设计根据上面设计出来的微指令的控点,我们开始设计具体的微指令。先将每一条微指令列举如下:微指令C15 C14 C13 C12 C11 C10 C9 C8 C7 C6 C5 C4 C3 C2 C1 C0 现在对上述微指令的设计设计过程做一一的介绍如下:(其中各种算术/ 逻辑运算指令就选取加法指令为代表)4.1取指公操作取指公操作阶段,显然系统还在运行,故C14 位设为 0。此时PC应该置数,置数的内容为IR 中存放的机器指令的高4 位操作码,然后才能根据PC 所置的数到控存中去取对应的微指令,故C13 位置 1。取指阶段不涉及到运算器的功能,
22、故C12-C9 、C8 、C7 的取值任意,我们设为 0000 、1、0。指令寄存器此时应该选通,因为要读取机器指空停机 PC S3 S2 S1 S0 Cn非M IR DR AC 回存主存157 PC 取指0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 1 取数0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 加0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 与非0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 0 减0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 乘2 0 0 0 1 1 0 0 1 0 0 1 1 1 1
23、1 0 异或0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 或非0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 0 非0 0 0 0 0 0 0 1 1 0 1 1 1 1 1 0 与0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 0 回存0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 停机0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 令进来,故 C6 位置 1。同样的此时没有涉及到运算功能,故DR 、AC应该保持当前的输出不变,C5 和 C4 设为 11 。不涉及到回存,回存244 设为高阻,内存为读状态,故C3 和
24、C2 设为 11。此时 157 应该选择 PC 的输入,根据 PC 的输入选取机器指令,故C1 位置 0。取值阶段的最后 PC 的值要自动加一,以便下一次取指能取到下一条机器指令,故 C0 位置 1。4.2取数微指令所谓取数微指令,也就是进行了一次逻辑运算“F=B ”。此时不用停机, C14 置 0。 PC 需要在取数指令执行的最后清零,以便后面执行取值公操作,故C13 置 0。根据 F=B 的运算,相应的置C12-C9为1010 。进位端 C8 任意,我们设为 1。运算类型为逻辑运算,C7 置为1。机器指令已经在取指阶段取到,此时IR 无效, C6 置 0。运算的结果要存放到 DR 和 AC
25、 中,故 DR、AC 都要选通, C5 和 C4 置为11 。此时不涉及到回存,故回存244 高阻,主存为读, C3 和 C2 设为11 。157 应该选择 IR 输入的地址码,到内存中去取运算需要的数据,故 C1 设为 1。没有取机器指令, PC 的值不变, C0 为 0。4.3加法微指令加法指令的设计主要是在运算器部分。不用停机,C14 为 0。 P 需要在加法指令执行的最后清零,以便后面执行取指公操作,故C13 为0。根据加法运算,设置C12-C9为 1001 ;无进位, C8 为 1;算术运算,C7 为 0。IR 保持当前输出不变, C6 为 0。DR 、AC 都要选通,故 C5 和
26、C4 设为 11 。不涉及到回存,主存处于读状态,故C3 和 C2设为 11。157 选择 IR 输入的地址码,到内存中去取数,故C1 设为1。没有取新的机器指令, PC 的值不变,故 C0 为 0。4.4回存微指令回存指令设计的重点在于回存244 芯片和主存的状态。系统仍在运行,停机位 C14 为 0。回存指令的最后需要将 PC 清零,以便后面执行取指公操作,故C13 为 0。回存不涉及到运算功能,故C12-C9 、C8 、C7 的值任意,我们设为0000 、1、0。IR 保持当前输出不变,C6 为 0。DR 、AC、回存的 244 芯片都应该选通,故C5 、C4、C3 分别为 1、1、0。
27、主存应该为写入状态,故C2 为 0。回存的地址由回存机器指令的低4 位地址码给出,控制157 的 C1 为 1。PC 不变,C0 为 0。4.5停机微指令停机微指令的设计重点在于停机位C14 ,只要在这时才会被设为1。 PC 会在最后清零,故C13 为 0。不涉及到运算,同样C12-C9、C8、C7 的取值任意,我们设为默认值0000 、1、0。此时 IR、DR、AC、回存 244 、主存、 157 芯片、 PC 都不再有效,因此接下来的 C6-C0 我们设为 0001100 。5.指令周期流程图每一条机器指令的执行都分为两个阶段:取指阶段、执行阶段。每一条微指令的执行流程图如下所示:5.1取
28、指公操作:所以设计出来的取指微指令为0010 0001 0100 1101 5.2取数微指令所以设计出来的取数微指令为0001 0101 1011 1110 5.3加法运算指令(其余双目算术/ 逻辑运算指令同此)所以设计出来的加法微指令为000 1 0011 0011 1110 同理:减法微指令为 000 0 1100 0011 1110 与非微指令为 000 0 1001 1011 1110 异或微指令为 000 0 1101 1011 1110 或非微指令为 000 0 0011 1011 1110 与微指令为 000 1 0111 1011 1110 5.4乘 2 微指令(其余单目算术/
29、 逻辑运算指令同此)所以设计出来的乘2 微指令为 000 1 1001 0 011 1110 同理:非微指令为 000 0 0001 1 011 1110 5.5回存微指令所以设计出来的回存微指令为0000 0001 0011 0010 6. 时序设计在设计了微指令各个控制位的0/1状态之后还需要配合时序来完成整个的系统的自动运行。时序设计的基础是手动操作一定要熟练掌握,对于先控制哪个芯片,后控制哪个芯片自己心中要做到非常的熟悉。接下就是将这些有先后次序的人工作业转换为各个T 时间内的作业。开机前,手动将 PC、 PC 清零。开机时,控存取到 0 号单元存放的取指微指令,然后接下来不断取到后面
30、的指令去执行,直到停机指令。现在对于各个芯片的控制端的时序设计解释如下: PC 395 芯片: PC 在每条指令执行完毕后,也即下一条指令执行的开始清零,执行取值公操作,故清零端MR 非=T0C13 。取指微指令发出之后, PC 就应该置数,故 CP 非=T1 C13 。 IR 373芯片: IR 会在两个时候置数,一个是 PC 清零时取到取指微指令,另外一个是PC 置数后取到具体的执行的微指令。由于T0 时刻PC 清零,T1 时刻置数,故IR 的使能 G 端=T0C13+T2 C0。控存 2816 :控存始终处于读状态, WE 非置 1,OE 非置 0,CE非置 0。IR 373 芯片:IR
31、 用来存放从主存中读出的机器指令,只有在取指微指令发出之后 IR 才能选通。由于PC 在 T0 时刻清零,故 IR 在 T1 时刻选通,使能 G 端=T1 C6 。157 芯片:157 芯片负责从 PC 和 IR 两个输入端选择地址,不需要时序控制合适有效,输入选择S 直接接IR 的输出控制位。181 芯片:181 芯片的使能端有 S3-S0 、Cn 非、M,这六个使能端都不需要用时序来控制,直接从 IR 的输出端连过来。DR 373芯片:DR 会在 181 运算完毕后选通,使得运算结果存放到DR 中去。T2 时刻控存的微指令才到达 IR,故我们让 DR 在 T3 时刻选通,其使能 G 端=T
32、3 C5 。AC 373 芯片:在数据存放到 DR 之后, AC 才能选通,数据从DR 到 AC。DR在 T3 时刻存放数据,故AC 在 T4 时刻选通,其使能G 端=T4C4 。主存 6116 芯片:主存平时一直为读状态,只有在回存时才处于写入状态。因此其WE 非端=T4 非C2 。回存 244 芯片:回存功能是在最后将运算的结果写入到主存中,由于在T3 时刻运算结果才寄存到 DR 中,因此回存功能放在T4 时刻实现。其 OEa 非/OEb非=T4 非C3 PC 161 芯片:PC 在指令执行过程的最后加1,故放在 T4 时刻进行,CP=T4 C0 。7. 时序图我们设计的每条机器指令的执行
33、包含两个阶段,第一个是取指阶段,第二个是执行阶段。如下图所示:指令在各个 T 时间内的操作如下表所示:指令在各个T 的操作表指令T0 T1 T2 T3 T4 取指 PC 清零CM- IR MM-IR IR.op- PC CM- IR NULL PC+1 取数NULL MM-IR IR.op- PC CM- IR MM 、AC-181 181-DR DR-AC 加NULL MM-IR IR.op- PC CM- IR MM 、AC-181 181-DR DR-AC 与非NULL MM-IR IR.op- PC CM- IR MM 、AC-181 181-DR DR-AC 减NULL MM-IR
34、IR.op- PC CM- IR MM 、AC-181 181-DR DR-AC 乘 2 NILL MM-IR IR.op- PC CM- IR AC-181 181-DR DR-AC 异或NULL MM-IR IR.op- PC CM- IR MM 、AC-181 181-DR DR-AC 或非NULL MM-IR IR.op- PC CM- IR MM 、AC-181 181-DR DR-AC 非NULL MM-IR IR.op- PC CM- IR AC-181 181-DR DR-AC 与NULL MM-IR IR.op- PC CM- IR MM 、AC-181 181-DR DR-
35、AC 回存NULL MM-IR IR.op- PC CM- IR NULL 回存244 打开主存写入8. 设计接线图根据设计出的电路图:图4 我们设计最后的接线图如下:图 5 六检查过程在检查时老师给我们的表达式是:(3 ? 4 )或非 82+7 取非内存存放的内容为:地址内容解释0 00010110 取 3 1 01100111 异或 4 2 01111000 或非 8 3 01010000 乘 2 4 00101001 加 7 5 10000000 取非6 00000011 3 7 00000100 4 8 00001000 8 9 00000111 7 10 10110000 停机按照上
36、述内容写好主存之后,将PC、 PC 清零,按下 START 的脉冲,开始运行最后结果正确。七布线调试时遇到的问题及解决办法在整个课程设计的过程中,我们碰到了各种各样的问题。这些问题有一些确实很麻烦,但是也有一些问题在现在看来觉得非常的低级但是当时也困扰了我们很久。不管如何,这些问题在每一个同学进行课程设计的过程中都或多或少会碰到一些,现在我将这些问题以及它们的解决办法一一叙述如下,希望能对以后进行组原课设的同学一点参考的价值:1. VCC1 和 VCC2 没有的接地端没有短接。问题的解决过程:在课设第一天我们的工作是检查芯片。由于对各种设备还不太熟悉,准备工作做得不充分,导致VCC1 和 VC
37、C2 的接地端没有短接到一起,后来检查时出现了一些非常奇怪的现象。后来我们跑去找老师,说我们的芯片坏了,老师一看就发现了问题,并且要我们看指导书的第4 面,我们这才知道原来是因为我们的准备工作没有做好,顿时觉得非常不好意思。这个错误都要归结于我们没有好好阅读实验台的使用说明。2. 244 输入控制没有高阻,导致其和6116 输出冲突。问题的解决过程:这个问题是我们在测试6116 芯片时发现的,我们当时是把0 号单元存 0,1 号单元存 1,依次类推。全部存好后我们开始回过头来读,看数据有没有存放正确,但是却发现结果很不对,有些灯也是花的。现在要我检查,我当然很清楚这是由于244 的输出没有高阻
38、导致的冲突,但是当时我完全没有意识到这个问题,后来也是老师帮我么看了后,就发现了 244 的问题。3. 如何测试数据通路的正确性?问题的解决过程:数据通路连接好后,我们开始测试数据通路是否连接正确,我记得这个是在实验第一天的晚上进行的,当时我们对于各种芯片的操作非常的不熟悉,对于整个数据通路的工作流程也不是很清楚。所以当我们照着指导书实验五的参考电路一连线完毕后,一下子不知道要如何操作。刚开始我们测试最简单的F=A+B 的运算,但是结果却总是不正确,后来我们一直纠结到晚上也没弄出个结果。晚上回到寝室之后,我仔细得回想觉得我们的电路连接的绝对不会用问题,因为我每次选通DR ,输出的结果都会变化,
39、只是结果不对,问题应该是出现在我们测试的方法上面了,现在看来确实是这样的。当时有DR 和 AC 的使能端需要我们控制, DR 先选通然后立即锁住, AC 后选通同样也要立即锁住。但是当时我们对于这些使能端可以说不知道如何操作,打开了之后有时候锁住了有时候又忘了锁,导致结果十分不稳定。后来我们找出了问题,并且知道了如何去操控这些使能端,以及它们的先后次序。4. 坏开关导致结果异常。问题的解决过程:在连接好数据通路后,测试181 的减法运算的过程中,我们让S3-S0 为 0110 ,Cn 非为 0,M 为 0,A 为 1111 ,B 为 0001 ,运算的正确结果应该是1110 但是我们得到的结果
40、却是0110 ,由于开始时对于如何检查错误还没有经验,我一下子被卡在这里,不知道如何去检查。后来找来老师,听完我们描述的问题之后,只见老师拿着一根导线接到了一个灯,然后导线的另外一端对着各个孔一个个的检查,并且教我们自己辨别这些灯的电位高低,最终检查发现原来时候一个输入的开关坏了。之前我们只检查了芯片,还没有检查开关,所以接下来我们又检查了所有的开关发现9、14 号开关都是坏的。检查完了我们的问题之后,老师还教我们说要学会他的检查方法,首先自己要对每个点的电位十分清楚,然后再拿着一根导线去一个一个孔的去检查、排错,逐渐将问题的范围缩小,最终发现问题。这个方法对我后来的查错很有帮助,我也慢慢的学
41、会了这种查错技巧。5. 161 芯片的 1、7、9、10 引脚没有接高。问题的解决过程:后来我们在手动测试回存功能的时候,给了PC 脉冲,但是发现主存的输出没有变化,因此我们怀疑是161 芯片给的地址不对,用逐个孔检查的方法一一检查之后发现确实问题出在161 芯片,但是我们所接的线都会正确的,这是我们突然发现161 芯片的 1、7、9、10 孔是空的,没有接任何东西,回过头去翻书才发现原来老师讲过161 芯片的 1、7、9、10 引脚要接高,果然我们这样做了之后之前的问题没有了。6. 395 芯片 OE 非没有接低。问题的解决过程:我们在实现微指令阶段加了一块395 芯片作为PC,在检查芯片的
42、时候发现给了脉冲但是395 不能置数,我们当时只注意到了MR非、CP 非、PE 三个使能端,没有注意到OE 非使能端的作用,以为这个使能端不用管。所以我们很确定是芯片坏了,后来换了一个新芯片之后问题依然存在,所以我们去询问老师,老师来后检查了一下,看我OE 非原来没有接低。照着老师说的去做了之后,395 芯片工作正常了。7. 2816 不能写入数据。问题的解决过程:我们在编写完微指令之后,准备将微指令写入控存CM ,控存我们选用的是 2816 ,因为它断电之后仍然可以保存数据。经过询问同学我们得知 2816 的使用方法和 6116 一样,所以我们就开始放心的去写2816 ,可是写了再回过头来读
43、,发现每个单元都没有写进去,还是默认的全 1 状态。后来我又去问一个已经写好了控存的同学,他告诉我一个经验: 2816 的 WE 非、OE 非在写入数据的时候打成低、高,然后再把两个都打成高、高,再读才能写入数据。我照着他的指点去写控存,果然数据都写进去了,看来这2816 在写数据时还有这么一点和6116 不相同的地方,如果不是那位同学指点我恐怕弄一天也弄不好了。8. 回存功能我们在数据通路阶段设计的回存功能能够正确实现,但是最后在微指令阶段加入回存不能实现功能。由于时间问题,我们最后没有实现自动的回存功能,只能手动回存。八实现心得体会这次实验让我收到了很多知识,加深了对“冯诺依曼”体系计算机
44、的理解,以及“存储程序,程序控制”这句话的体会。但是在这次课程设计的过程中,我也收获到了很多课堂上无法学到的知识。首先,这次组成原理的课程设计让我体会到了一句话,就是磨刀不误砍柴工。在实验的时候,先不要急着去连那一根一根的导线,而是要设计好每一根导线如何去连。等到自己在图纸上有了清晰的设计后,再按照图纸去连接那些导线其实花不了多少时间。其次,我还学会了遇到问题要冷静思考。在平时我们编写程序时,无论经过怎样的深思熟虑编写出来的代码,编译连接时难免会报错,组原课设也是一样。无论在图纸上设计得多么精细,等到连线完毕,测试时难免会有出现一些和预想不一样的情况,而如何去应对这些问题则需要冷静的去分析、查
45、错。由于这次组原课设恰逢考试周,因此我刚开始想着快点把课程设计做完了,可以去复习考试。恰恰就是这种急躁的心态,导致我刚开始遇到问题不能静下心来认真的去检查错误,而是变得十分急躁,结果却是越急越没有效率。后来我认识到这个实验需要的是细心、耐心和冷静分析问题的能力,于是我遇到问题开始静下来认真检查各种错误,一个孔一个孔,一条线一条线的排查,缩小错误范围,最终锁定错误。再其次,我还懂得了遇到问题要善于向同学们请教。刚开始我遇到问题总是自己一个闷人着想,后来这样效率很低,效果也不好。后来我发现其实周围的同学可能很多遇到过和我相同的问题,我于是学着去请教其他组的同学,尤其是那些做得比较快的同学,有时候往
46、往就能够寻找到满意的解决方案。比如我写控存2816 的时候,数据总是写不进去,后来同学告诉我说写完后,WE 非、OE 非全部置高再读。照着他告诉我的方法,我试验了一下,果然数据就解决进去了。这样的经验如果不是同学们互相交流,恐怕我很难发现。最后,我还学会了一个道理就是:做实验的时候没有所谓的难与不难。刚开始做实验的时候,我对于整个实验其实没有一个很明晰的概念。我开始只是想选一个最简单的方法,快一点做完这个课程设计。我听很多身边的同学都推荐说硬布线的方法最简单,连线最少等等,所以我开始就决定要采用硬布线的方案。可是我后来跟几个做微指令的同学交流了一下,决定微指令的方案也没有很复杂,于是我又开始有
47、点犹豫了。最后经过认真的思索我决定采用主控存分开的微指令方案,然后就开始了接下来的一系列设计。虽然当时做实验也碰到了很多困扰我很久的问题,也很苦恼,可是后来这一个个的问题最终都还是被解决了。当最后试验结果成功的时候,我再回过头去看,觉得世界上其实没有难与不难,关键是要自己去做。有时候我们都是自己在私底下想觉得会难,然后就被自己的心理的那一丝丝畏惧给说服了,其实自己并没有真正的去尝试过何谓难何谓不难。所以,要做一个行动者,要多多去尝试,去实践,这样得到的收获往往是最大的!以上就是我在组原课设的这段日子中得到的感悟,这次课设是一次很有意义的磨砺,让我们收获,让我们成长,让我们学习!九参考文献1.计
48、算机组成原理实验指导书作者:王晓兰、周建国、吴秀敏、管军2.计算机组成原理作者:秦磊华、吴非、莫正坤袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇
49、袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄
50、袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 1 Section A 1a~2d教学设计 -2023-2024学年人教版英语七年级上册
- 青少年安全事故警示教育
- 七年级生物下册 第四单元 生物圈中的人 第8章 人体的营养 第1节 人类的食物教学设计设计(新版)北师大版
- 2024年秋新人教版八年级上册道德与法治教学课件 2.1 认识自己
- 人教部编版(2024)九年级下册第六单元写作 有创意地表达教案配套
- 采购合同风险咨询重点基础知识点
- 采购合同风险财务风险财务风险重点基础知识点
- 船舶货物偷窃提货不着险重点基础知识点
- 马原课程工匠精神
- 志愿者协议书
- 第一章-膳食调查与评价-课件
- 国开作业《监督学》形成性考核(三)参考(含答案)238
- 班组长报·联·商课件
- 项目经理变更说明(申请)
- 《将进酒》课件23张
- 医疗垃圾收集流程及鹅颈式打结方法考评标准
- 油气管道高后果区管段识别分级表
- 班前安全活动记录(真石漆班组)
- 县级城投公司人事管理制度
- 无损检测超声波检测课件
- 生产中断影响及生产组织管理考核办法
评论
0/150
提交评论