您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 西安交通大学计算机组成原理实验报告
西安交通大学计算机组成原理实验报告姓名:***班级:***学号:*******实验一存储器的访问与实现一、实验目的1、理解计算机主存储器的分类及作用;2、掌握ROM、RAM的读写方法。二、实验原理存储器按存取方式分,可分为随机存储器和顺序存储器。如果存储器中的任何存储单元的内容都可随机存取,称为随机存储器,计算机中的主存储器都是随机存储器。如果存储器只能按某种顺序存取,则称为顺序存储器,磁带是顺序存储器,磁盘是半顺序存储器,它们的特点是存储容量大,存取速度慢,一般作为外部存储器使用。如果按存储器的读写功能分,有些存储器的内容是固定不变的,即只能读出不能写入,这种存储器称为只读存储器(ROM);既能读出又能写入的存储器,称为随机读写存储器(RAM)。实际上真正的ROM基本上不用了,用的是光可擦除可编程的ROM(EPROM)和电可擦除可编程的ROM(EEPROM)。EEPROM用的越来越多,有取代EPROM之势,比如容量很大的闪存(FLASH)现在用的就很广泛,常说的U盘就是用FLASH做的。按信息的可保存性分,存储器可分为非永久性记忆存储器和永久性记忆存储器。ROM、EPROM、EEPROM都是永久记忆存储器,它们断电后存储内容可保存。RAM则是非永久性记忆存储器,断电后存储器中存储的内容丢失。随机读写存储器类型随机存储器按其元件的类型来分,有双极存储器和MOS存储器两类。在存取速度和价格两方面,双极存储器比MOS存储器高,故双极存储器主要用于高速的小容量存储体系。在MOS存储器中,根据存储信息机构的原理不同,又分为静态随机存储器(SRAM)和动态随机存储器(DRAM)。静态随机存储器采用双稳态触发器来保存信息,只要不断电,信息就不会丢失;动态随机存储器利用记忆电容来保存信息,使用时只有不断地给电容充电才能使信息保持。静态随机存储器的集成度较低,功耗也较大;动态随机存储器的集成度较高,功耗低。现在计算机中,内存容量较大,常由动态随机存储器构成。静态随机存储器静态存储器由存储体、地址译码电路、读写电路和控制电路组成。一个4096×1位的SRAM的结构框图如图6-37所示。图中,A0~A11为地址线,用来寻址存储器中的某一个单元。DIN、DOUT为数据线,实现数据的输入、输出。W//R为读写控制信号线,用来实现读写操作控制。/CS为片选信号。图6-37SRAM结构框图动态随机存储器动态随机存储器(DRAM)和SRAM一样,也是由许多基本存储电路按照行和列来组成的。DRAM是以MOS管栅极和衬底间电容上的电荷来存储信息的。由于MOS管栅极上的电荷会因漏电而泄放,故存储单元中的信息只能保持若干秒,为此DRAM必须附加刷新逻辑电路。另外,DRAM将地址分为行地址和列地址,并分时复用以减少引脚数目。常见的4164芯片即是DRAM。三、实验要求1、实验设计目标设计一个能够对实验台上的存储器读写的部件,满足以下目标:(1)、一个16位的存储器地址寄存器(MAR)。该寄存器在reset为低电平时清零,在时钟clk的上升沿加1,地址寄存器在超过ox000f后下一个时钟上升沿回到0。一个标志寄存器(flag),在reset为低电平时复位为0,当存储器地址寄存器等于0x000f后,下一个时钟clk的上升沿标志寄存器翻转。(2)、在标志寄存器为0时执行存储器存数功能,从存储器的0单元开始存16个16位数。按动一次单脉冲按钮,存一次数,存的数由内部产生,不由实验台开关输入。(3)、当标志寄存器为1时,执行从存储器的0单元开始的读数功能。按动一次单脉冲按钮,读一次数,一直读16个数。读出的数据送入一个16位信号R[15..0]暂存。提示:当需要从存储器读取数据时,首先将ZZZZZZZZZZZZZZZZ赋值给数据总线,然后才能读取存储器中的数据。2、顶层设计实体的引脚要求引脚要求对应关系如下:(1)clk对应实验台上的时钟(单脉冲)。(2)reset对应实验台上的CPU复位信号CPU_RST。(3)存储器地址总线A[15..0]对应实验台上的指示灯A15—A0。(4)存储器数据总线D[15..0]对应实验台上的数据指示灯D15—D0。(5)16位信号R[15..0]对应实验台上的指示灯R15—R0。(6)存储器读写信号FWR对应实验台上的FWR。(7)四、实验步骤实验台设置成FPGA-CPU附加外部RAM运行模式“011”。该调试模式要能够实现模拟FPGA-CPU对实验台存储器的存数、取数功能。即REGSEL=0、CLKSEL=1、FDSEL=1。使用实验台上的单脉冲,即STEP_CLK短路子短接,短路子RUN_CLK断开。由于当FDSEL=0时,指示灯D15—D0显示的是开关SD15—SD0的值,因此开关FDSEL必须为1。这种方式除了FPGA-CPU的时钟是单脉冲外,其余都与单片机控制FPGA-CPU调试模式完全一样。将设计在QuartusⅡ下输入,编译后下载到TEC-CA上的FPGA中。首先按实验台上的CPU复位按钮,使存储器地址寄存器复位为0,然后不断观察实验台上的指示灯,察看结果与预想的是否一致。1、实验思路:2、源代码libraryIEEE;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitymemoryisport(reset,clk:instd_logic;--复位、时钟FWR:outstd_logic;--RAM的读写D:inoutstd_logic_vector(15downto0);--数据A:outstd_logic_vector(15downto0);--地址R:outstd_logic_vector(15downto0)--寄存器);endmemory;architecturebehavofmemoryissignalcounter:std_logic_vector(15downto0);signalwdata:std_logic_vector(15downto0);signalstart,flag:std_logic;--开始计数(读写)、结束(状态)beginA=counter;wdata=00000000001&counter(4downto0);--数据16bit的形成process(reset,clk)beginifreset='0'thencounter=x0000;elsifclk'eventandclk='1'then--计数if(start='1')and(counter/=x000f)thencounter=counter+'1';elsif(start='1')and(counter=x000f)thencounter=x0000;endif;endif;endprocess;process(reset,clk)beginifreset='0'thenstart='0';elsifclk'eventandclk='1'thenstart='1';endif;endprocess;process(reset,counter,clk)beginifreset='0'thenflag='0';elsifclk'eventandclk='1'thenifcounter=x000fthenflag=notflag;endif;endif;endprocess;process(reset,counter,clk,start,flag,wdata,D)beginifreset='0'thenFWR='1';elsifstart='1'thenifflag='0'thenD=wdata;FWR=clk;elseD=ZZZZZZZZZZZZZZZZ;FWR='1';R=D;endif;endif;endprocess;--增加flag引出信号,观察他的变化。endbehav;五、实验结果及分析仿真结果如下图所示,分为两个阶段,第一个阶段是写入数据阶段,经过16个时钟脉冲后,进入第二个阶段;第二个阶段是读出数据阶段,同样经历16个时钟脉冲,读出的数据首先暂存在一个寄存器中,然后再送入数据总线。六、思考题如果从存储器中读出数据时不首先向数据总线送出ZZZZZZZZZZZZZZZZ,那么会发生什么问题?答:如果在从存储器中读出数据时不首先向数据总线送出高阻状态,那么读状态和写状态就可能会混淆重叠,从而造成错误。七、实验心得通过本次实验,我更好地理解了计算机主存储器的分类及作用,同时也更好地了解和掌握了ROM、RAM的读写方法。通过实验,我可以将书本上的理论知识与实际的实验内容及结果结合起来,这让我更好地掌握课堂上学习的知识。不过在实验中也遇到了不少问题,幸运的是,在老师的指导与帮助下,我最终完成了实验,希望以后会有更多的实验机会。实验二运算器的设计与实现——加法器的设计一、实验目的1、掌握基本的算术运算和逻辑运算的运算规则和实现方法;2、掌握基本运算器的信息传送通路;3、掌握运算器的工作原理,设计并实现具有定点、浮点运算功能的模块。二、实验原理运算器是既能实现算术运算又能完成逻辑运算的部件。算术运算主要包括加减乘除运算,逻辑运算主要包括与、或、非、异或和移位运算。运算器(ALU)通常有两个数据输入端(opr1和opr2),一个数据输出端(result),运算模式控制信号(code)和标志位(cin,flag)等。下图为运算器的逻辑框图:图2-1运算器运算器包含加法器、减法器、乘法器、与门、或门、非门、异或门和移位器。各组成部件的原理如下所述。(本实验中设计的运算器操作数为8位字长)。加法器从进位传递时间和门电路的扇入、扇出来考虑,将8位数据分为两组,采取组内并行、组间串行的设计方案。该加法器的设计框图如下所示:图2-28位的加法器其中,Gi=opr1(i)andopr2(i)(i=1,…,7),Gi为第i位的本地进位,Pi=opr1(i)xoropr2(i)(i=1,…,7),P(i)为传递条件。4位先行加法器的逻辑图如下所示:图2-34位先行加法器逻辑图于是根据逻辑图可以得出4位先行加法器的逻辑表达式如下:Gi=opr1(i-1)opr2(i-1)Pi=opr1(i-1)opr2(i-1)S1=P1C0C1=G1+P1C0S2=P2C1C2=G2+P2C1=G2+P2G1+P2P1C0S3=P3C2C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0S4=P4C3C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0四、实验内容由于时间关系,第二次实验老师要求我们只需要做加法器,所以实验内容主要是设计一个基本的加法器。顶层设计实体的引脚对应关系:(1)运算控制信号set对应实验台上开关SA0;(2)低位向高位的进位或者借位信号cin对应实验台上开关SA1;(3)操作码code[2..0]对应实验台上开关SA5~SA2;(4)第一操作数opr1[7..0]对应于实验台上开关SD7~SD0;(5)第二操作数opr2[7..0]对应实验台上开关SD15~SD8;(6)运算结果result[15..0]对应实验台上指示灯A7~A0;(7)运算结果标志位flag对应实验台上指示灯A8。注:运算器模块框图:运算器(ALU)通常有两个数据输入端(opr1和opr2),一个数据输出端(result),运算模式控制信号(code)和标志位(cin,flag)等。下图为运算器的逻辑框图:图2-1运算器运算器包含加法器(含用先行进位的构成的加法器)、减法器、乘法器、与门、或门、非门、异或门和移位器等及浮点运算模块;运算器模块中也可以加入寄存器组(Registerfile)本实验中设计的运算器操作数可以分别为8/16/32位字长((32位字长运算可以只进行仿真分析)五、实验源代码8位加法器LIBRARYieee;U
本文标题:西安交通大学计算机组成原理实验报告
链接地址:https://www.777doc.com/doc-2036192 .html