第一篇:组成原理实验总结报告
2010-2011-1
计算机组成原理实验报告
课程名称 : 学院(系): 专 业 : 班 级 : _ 指导教师 : 学 号 : 姓 名 : _ ___
计算机组成原理实验
计算机科学与技术学院
计算机科学与技术 _ 计科082 __ 宁爱华 2008311020 __
通过本实验课程训练,我熟悉了典型计算机的基本结构、基本组成和基本功能,掌握了计算机主要组成部件工作原理的基本分析与设计方法,使我对典型计算机系统的分析、设计、开发与使用能力得到训练与提高,在同时学习计算机组成原理这门课程的同时,也加深了对本专业课程的学习理解程度。当然,也对计算机各主要组成部件相互间的有机联系有了较全面的理解;锻炼了实验技能、创新能力、科研能力及解决实际问题方面的能力。
总结了一下这学期的组成原理实验,使我对CPU的结构有了更深的认识,CPU(中央处理器)由运算器和控制器组成,运算器的功能是加工信息包括算术运算和逻辑运算。主要由算术逻辑单元ALU 和寄存器组成。控制器可以产生控制命令来控制全机操作,由微指令产生微命令来产生微程序。从微程序的设计及运行了解了数据通路控制方式,计算机数据通路的控制将由微程序控制器来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
从运算器实验中.掌握了简单运算器的数据传送通路。验证带进位运算及进位锁存功能时,使我对带进位这个概念透彻的理解了,我记得当次实验并没有注意的一个细节,例如:做加法运算,首先向DR1、DR2 置数,然后使ALU-B=0,S3 S2 S1 S0 M 状态为1 0 0 1 0,此时数据总线上显示的数据为DR1 加DR2 加当前进位标志,这个结果是否产生进位,则要由进位标志灯来显示,若进位标志灯亮,表示无进位;反之,有进位。在移位运算器中,分清了带进位循环左移或右移与循环左移或右移的的概念,循环右移,会把最后1位放到第一位,所以呢,循环右移会改变操作数的符号,如果是不带进位,就会出现正数变负数的情况。如果带进位的话,就是把负数看作是多一位的正数,相当于溢出进位。
存储器实验中,通过查阅教材和相关资料,存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。本实验涉及到的是静态随机存取存储器RAM,与只读存储器相比,随机存取存储器最大的优点是存取方便、使用灵活,既能不破坏地读出所存信息,又能随时写入新的内容。它可以在任意时刻,对任意选中的存储单元进行信息的存入(写入)或取出(读出)操作。如遇停电,所存内容便全部丢失为其缺点。
在微控制器实验中,掌握了微程序的设计思想和组成原理,微程序控制的基本思想,就是仿照通常的解题程序的方法,把所有的控制命令信号汇集在一起编码成所谓的微指令,再由微指令组成微程序,存放在一个EPROM 里。系统运行时,一条又一条地读出这些微指令,产生执行部件所需要的各种控制信号,从而驱动执行部件进行所规定的操作。控制器通过一条条控制线向执行部件发出各种控制命令,我们把这些控制命令叫做微命令。而执行部件接受微命令所执行的操作叫做微操作。在系统的一个基本状态周期中,一组实现一定操作功能的微命令的组合,微程序是由若干条微指令组成的序列。在计算机中,一条机器指令的功能可由若干条指令组成的微程序来解释和执行。微程序控制器的结构。由控制存储器、微地址寄存器、微命令寄存器和地址转移逻辑几部分组成。微地址寄存器和微命令寄存器两者的总长度即为一条微指令的长度,二者合在一起称为微指令寄存器。在模型机实行的实验中,了解到部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。还有控制器就是专用于完成此项工作的,它负责协调并控制计算机个部件执行程序的指令序列,其基本功能是取指令,分析指令和执行指令。在做本实验之前,以为PC只有计数功能,通过本实验,还了解到PC存放现行指令的地址,IR存放现行指令。通过本程序的指令流水,不禁感叹如此复杂的指令程序竟然按照顺序一部一部的进行下去了。
通过这次课程,我主要有以下几点收获:体会到了学习和研究中,团队协作的优势,如果没有和同学一起讨论交流,可能大家都很难比较快速和透彻地理解实验中的原理 ;感受到提出猜想、与大家讨论并通过实验证实自己猜想的快乐,并且能够寓教于乐;巩固了之前所学的组成原理的知识,通过这次课程中的讨论和实践,我更加透彻地了解了计算机主要组成部件工作原理。通过这个学期的学习,我了解了更多有关计算机组成原理实验方面的知识,虽然我知道自己还有很多欠缺,但是我相信通过自己努力肯定会学好这些知识的,无论多困难,都要自己好好学,什么都会好的。
在老师的帮助下,我知道了更深一层的计算机的内部和外部结构和它的深层知识,它是我们以前学的知识中最接近计算机的一门学科,所以它是基础也是重点,更是我们对计算机从软件到硬件方向上的最佳转变机会,我在学期初也决定要好好学习它。看着周围同学对组成原理实验的热情,我自己也深受鼓舞,所以在思想上和行动上,我都要求自己去付出努力和汗水。在每次实验课之前都会预习,还会根据教材来看相关的知识点。
在学习组成原理实验时有很多都不知道从何下手。当我通过自己查资料,在老师的讲解和自己看书下,终于理解了这些理论知识,在我们平时的学习中,不仅仅需要付出而且也需要动力还有自己的抑制力,每个人都是会懒惰的,所以要养成勤奋的习惯,好好把握自己,不断的去学习,不断的要求进步。
组成原理这门课程作为计算机专业考研统考课程是非常重要的,而本实验就是本课程的辅导课程,也是至关重要的,这门功课真的学到了很多东西,还有老师对我们的谆谆教诲,我会一直记忆在心。最后谢谢老师对我的指导和帮助,才能够取得进步!
第二篇:计算机组成原理实验
ALU设计
module ALU(ALU_OP,AB_SW,F_LED_SW,LED);
input[2:0] ALU_OP,AB_SW,F_LED_SW;
output[7:0] LED;reg[7:0] LED;
reg[31:0] A,B,F;reg OF,ZF;
always@(*)begin
end
always@(*)begin
ZF=0;OF=0;case(ALU_OP)
3'b000: begin F=A&B;end 3'b001: begin F=A|B;end 3'b010: begin F=A^B;end 3'b011: begin F=~(A|B);end 3'b100: begin {OF,F}=A+B;OF=OF^F[31];end 3'b101: begin {OF,F}=A-B;OF=OF^F[31];end 3'b110: begin F=A
3'b000: begin A=32'h0000_0000;B=32'h0000_0000;end 3'b001: begin A=32'h0000_0003;B=32'h0000_0607;end 3'b010: begin A=32'h8000_0000;B=32'h8000_0000;end 3'b011: begin A=32'h7FFF_FFFF;B=32'h7FFF_FFFF;end 3'b100: begin A=32'h8000_0000;B=32'hFFFF_FFFF;end 3'b101: begin A=32'hFFFF_FFFF;B=32'h8000_0000;end 3'b110: begin A=32'h1234_5678;B=32'h3333_2222;end 3'b111: begin A=32'h9ABC_DEF0;B=32'h1111_2222;end endcase endcase
if(F==32'b0)ZF=1;end
always@(*)begin
end case(F_LED_SW)
3'b000: LED=F[7:0];3'b001: LED=F[15:8];3'b010: LED=F[23:16];3'b011: LED=F[31:24];default:begin LED[7]=ZF;LED[0]=OF;LED[6:1]=6'b0;end endcase
endmodule 管脚配置
NET “AB_SW[0]” LOC = T10;NET “AB_SW[1]” LOC = T9;NET “AB_SW[2]” LOC = V9;NET “ALU_OP[0]” LOC = M8;NET “ALU_OP[1]” LOC = N8;NET “ALU_OP[2]” LOC = U8;NET “F_LED_SW[0]” LOC = V8;NET “F_LED_SW[1]” LOC = T5;NET “F_LED_SW[2]” LOC = B8;NET “LED[0]” LOC = U16;NET “LED[1]” LOC = V16;NET “LED[2]” LOC = U15;NET “LED[3]” LOC = V15;NET “LED[4]” LOC = M11;NET “LED[5]” LOC = N11;NET “LED[6]” LOC = R11;NET “LED[7]” LOC = T11;寄存器 module jicunqi(input Clk, input Reset, input [4:0] Reg_Addr, input Write_Reg, input [1:0] Sel, input AB, output reg [7:0] LED);reg [31:0] W_Data;wire [31:0] R_Data_A,R_Data_B,LED_Data;REG RU1(Clk,Reset,Reg_Addr,Reg_Addr,Reg_Addr,W_Data,Write_Reg,R_Data_A,R_Data_B);assign LED_Data=AB?R_Data_A : R_Data_B;always @(*)begin
W_Data=32'h0000_0000;
LED=8'b0000_0000;
if(Write_Reg)
begin
case(Sel)
2'b00: W_Data= 32'h1234_5678;
2'b01: W_Data= 32'h89AB_CDEF;2'b10: W_Data= 32'h7FFF_FFFF;2'b11: W_Data= 32'hFFFF_FFFF;endcase end
else
begin
case(Sel)
2'b00: LED=LED_Data[7:0];2'b01: LED=LED_Data[15:8];2'b10: LED=LED_Data[23:16];2'b11: LED=LED_Data[31:24];
endcase end end endmodule `timescale 1ns / 1ps // REG.v module REG(input Clk, input Reset, input [4:0] R_Addr_A, input [4:0] R_Addr_B, input [4:0] W_Addr, input [31:0] W_Data, input Write_Reg, output [31:0] R_Data_A, output [31:0] R_Data_B);
reg [31:0] REG_Files[0:31];integer i;
assign R_Data_A=REG_Files[R_Addr_A];assign R_Data_B=REG_Files[R_Addr_B];
always @(posedge Clk or posedge Reset)begin
if(Reset)
begin
for(i=0;i<=31;i=i+1)
REG_Files[i]<=32'h0000_0000;
end
else
begin
if(Write_Reg)
begin
REG_Files[W_Addr]<=W_Data;
end end end endmodule
管脚配置 NET “Clk” LOC=“C9”;NET “Reset” LOC=“D9”;NET “Reg_Addr[4]” LOC=“T5”;NET “Reg_Addr[3]” LOC=“V8”;NET “Reg_Addr[2]” LOC=“U8”;NET “Reg_Addr[1]” LOC=“N8”;NET “Reg_Addr[0]” LOC=“M8”;NET “Write_Reg” LOC=“V9”;NET “Sel[1]” LOC=“T9”;NET “Sel[0]” LOC=“T10”;NET “AB” LOC=“A8”;NET “LED[7]” LOC=“T11”;NET “LED[6]” LOC=“R11”;NET “LED[5]” LOC=“N11”;NET “LED[4]” LOC=“M11”;NET “LED[3]” LOC=“V15”;NET “LED[2]” LOC=“U15”;NET “LED[1]” LOC=“V16”;NET “LED[0]” LOC=“U16”;
第三篇:_计算机组成原理实验2
计算机组成原理实验日志
实验题目:
进位、移位控制实验
实验目的:
(1)了解带进位控制的运算器的组成结构;(2)验证带进位控制的运算器的功能。(3)了解移位发生器74LS299的功能;(4)验证移位控制电路的组合功能。实验主要步骤:
一、进位
(1)按图1.2-2连接实验电路并检查无误。(2)打开电源开关。
(3)用输入开关向暂存器DR1和DR2置数,方法同前。
(4)关闭数据输入三态门(SW-B=1),打开ALU输出三态门(ALU-B=0),并使LDDR1=0、LDDR2=0,关闭寄存器打入控制门。
(5)对进位标志清零。实验板上“SWITCH UNIT”单元中的CLR开关为标志CY、ZI的清零开关,它为零状态时是清零状态,所以将此开关做1→0→1操作,即可使标志位清零。
注意:进位标志指示灯CY亮时表示进位标志为“0”,无进位;标志指示灯CY灭时表示进位为“1”,有进位。
图1.2-1 带进位运算器通路图
图1.2-2 带进位运算实验接线图
(6)验证带进位运算及进位锁存功能。使Cn=1,AR=0,进行带进位算术运算。例如,做加法运算,使ALU-B=0,S3、S2、S1、S0、M的状态为1、0、0、1、0,此时数据总线上显示的数据为DR1加DR2加当前进位标志的和,但这时的进位状态位还没有打入进位锁存器中,(它是要靠T4节拍来打入的。)这个结果是否有进位产生,则要按动微动开关KK2,若进位标志灯亮,则无进位,反之则有进位。因为做加法运算时数据总线一直显示的数据为DR1+DR2+CY,所以当有进位输入到进位锁存器时,总线显示的数据将为加上当前进位锁存器中锁存的进位的结果。
二、移位
(1)按图1.3-2连接实验电路并检查无误。(2)打开电源开关。(3)向移位寄存器置数。
①拨动输入开关,形成二进制数01101011(或其它数值)。
②使SWITCH UNIT单元中的开关SW-B=0,打开数据输入三态门。③使S0=
1、S1=1,并按动微动开关KK2,则将二进制数01101011置入了移位寄存器。
④使SW-B=1,关闭数据输入三态门。(4)移位运算操作。
①参照表1.3-1中的内容,先将S1、S0置为0、0,检查移位寄存器单元装入的数是否正确,然后通过改变S0、S1、M、299-B的状态,并按动微动开关KK2,观察移位结果。
②根据移位控制电路功能表1.3-1中的内容,分析移位运算的结果是否正确。
图1.3-2 移位运算实验接线图
实验结果: 一.进位
向DR1中置入80H 向DR2中置入 80H CY初始位置为亮 0 加法完成后 CY为灭总线显示01H 二.移位
输入00011000 移位后 00110000 心得体会:
通过本次实验了解了的带进位的加法和移位器的原理。
第四篇:_计算机组成原理实验3
计算机组成原理实验日志3 实验题目:
静态随机存储器实验 实验目的:
掌握静态随机存储器RAM工作特性及数据的读/写方法。实验主要步骤:
(1)形成时钟脉冲信号T3。具体接线方法和操作步骤如下:
①接通电源,把示波器接到方波信号源的输出插孔H23调节电位器W1及W2,使H23端输出实验所期望的频率和占空比的方波。
②将时序电路模块(STATE UNIT)单元中的φ和信号源单元(SIGNAL UNIT)中的H23排针相连。
③在时序电路模块中有两个二进制开关“STOP”和“STEP”。将“STOP”开关置为“RUN”状态、“STEP”开关置为“EXEC”状态时,按动微动开关START,则T3端输出连续的方波信号,此时调节电位器W1,用示波器观察,使T3输出实验要求的脉冲信号。当“STOP”开关置为“RUN”状态、“STEP”开关置为“STEP”状态时,每按动一次微动开关START,则T3输出一个单脉冲,其脉冲宽度与连续方式相同。用PC联机软件中的示波器功能也能看到波形。这样可以代替真实示波器。
(2)按图2-2连接实验线路,仔细查线无误后接通电源。
图2-2 静态随机存储器实验接线图(3)写存储器。给存储器的00、01、02、03、04地址单元中分别写入数据11H、12H、13H、14H、15H。
由上面的存储器实验原理图(图2-2)看出,由于数据和地址全由一个数据开关给出,因此要分时地给出。下面的写存储器要分两个步骤:第一步写地址,先关掉存储器的片选(CE=1),打开地址锁存器门控信号(LDAR=1),打开数据开关三态门(SW-B=0),由开关给出要写入的存储单元的地址,按动START产生T3脉冲将地址打入到地址锁存器;第二步写数据,关掉地址锁存器门控信号(LDAR=0),打开存储器片选(CE=0),使之处于写状态(CE=0,WE=1),由开关给出此单元要写入的数据,按动STRAT产生T3脉冲将数据写入到当前的地址单元中。写其他单元依次循环上述步骤。
写存储器流程如图2-3所示(以向00号单元写入11H为例)。
图2-3 写存储器流程图
(4)读存储器。
依次读出第00、01、02、03、04号单元中的内容,观察上述各单元中的内容是否与前面写入的一致。同写操作类似,读每个单元也需要两步:第一步写地址,先关掉存储器的片选(CE=1),打开地址锁存器门控信号(LDAR=1),打开,由开关给出要读存储单元的地址,按动START产生T3脉冲将地址打入到地址锁存器;第二步读存储器,关掉数据开关三态门(SW-B=1),打开存储器(CE=0),使它处于读状态(CE=0,WE=0),此时数据总线上显示的数据即为从存储器当前地址中读出的数据内容。读其他单元依次循环上述步骤。
读存储器操作流程如下图2-4所示(以从00号单元读出11H数据为例)。
图2-4 读存储器流程图
实验结果:
置入存储器地址00 写入存储器数据 11H 置入存储器地址01 写入存储器数据12H 置入存储器地址02 写入存储器数据13H 置入存储器地址03 写入存储器数据14H 置入存储器地址04 写入存储器数据15H
读数据
置入存储器地址00 读出存储器数据11H 置入存储器地址01 读出存储器数据12H 置入存储器地址02 读出存储器数据13H 置入存储器地址03 读出存储器数据14H 置入存储器地址04 读出存储器数据15H 实验思考题
(1)一片静态存储器6116(2K×8),容量是多大?因实验箱上地址寄存器只有8位接入6116的A7-A0,而高三位A8-A10接地,所以实际存储容量是多少?为什么?
答:容量是16kbit大小,当只有A7-A0只有8位字时,实际容量是256*8=4Kbit大小。(2)归纳出向存储器写入一个数据的过程,包括所需的控制信号(为“1”还是为“0”)有效。
答:根据实验指导书上WR0有效,此时为写入数据
心得体会:
通过这次实验掌握了静态存储器的基本原理,以及存储器是如何写入数据和读取数据的,强化了计算机存储器的理解
第五篇:计算机组成原理实验(存储器)
实验3 半导体存储器原理实验
(一)、实验目的
(1)熟悉静态随机存储器RAM和只读存储器ROM的工作特性和使用方法;(2)熟悉半导体存储器存储和读出数据的过程;(3)了解使用半导体存储器电路时的定时要求。
(二)、实验要求
利用Quartus Ⅱ器件库提供的参数化存储单元,设计一个由128X8位的RAM和128X8位的ROM构成的存储器系统。请设计有关逻辑电路,要求仿真通过,并设计波形文件,验证该存储器系统的存储与读出。
(三)、实验原理图与仿真图
ram内所存储的数据:
rom内所存储的数据:
仿真图如下:
(四)心得体会
本次试验中,我们应该熟练掌握Quartus Ⅱ软件的使用方法;熟悉静态随机存储器RAM和只读存储器ROM的工作特性和使用方法;熟悉半导体存储器存储和读出数据的过程;了解使用半导体存储器电路时的定时要求。并且制定实验方案然后进行实验验证。要学会将学到的知识运用到实际中。