西安交通大学计算机组成原理实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安交通大学

计算机组成原理实验报告

姓名:***

班级:物联网**

学号:

实验一存储器的访问与实现

一、实验目的

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-37 SRAM结构框图

动态随机存储器

动态随机存储器(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、源代码

library IEEE;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

entity memory is

port(reset,clk: in std_logic; --复位、时钟

FWR: out std_logic; --RAM的读写

D: inout std_logic_vector(15 downto 0);--数据

A: out std_logic_vector(15 downto 0); --地址

R: out std_logic_vector(15 downto 0)-- 寄存器);

end memory;

architecture behav of memory is

signal counter: s td_logic_vector(15 downto 0);

signal wdata: std_logic_vector(15 downto 0);

signal start, flag : std_logic; --开始计数(读写)、结束(状态)

begin

A <= counter;

wdata <= "00000000001" & counter(4 downto 0);-- 数据16bit的形成process(reset,clk)

begin

if reset = '0' then

counter <= x"0000";

elsif clk'event and clk = '1' then -- 计数

if (start = '1') and (counter /= x"000f") then

counter <= counter + '1';

elsif (start = '1') and (counter = x"000f") then

counter <= x"0000";

end if;

end if;

end process;

process(reset,clk)

begin

if reset = '0' then

start <= '0';

elsif clk'event and clk = '1' then

start <= '1';

end if;

end process;

process(reset,counter,clk)

begin

if reset = '0' then

flag <= '0';

相关文档
最新文档