1、数字逻辑课程实验报告实验名称 存储器部件实验实验人姓名 陈根蓉 学 号 406109070219 班 级 计算机科学与技术 实 验 时 间 2008-12-12 成 绩 石家庄经济学院信工学院一、实验内容1. 理解计算机主存储器的分类及作用,掌握存储器的构成。2. 掌握 ROM,RAM的工作原理及读写方法。二、实验器件ROM的结构图RAM的结构图三、实验原理1. 系统输入输出确定(1) RAM(168)输入输出IN: din,adr,cs,wr,rdOUT: dout(2) ROM(168)输入输出IN: clock,resetOUT: dout2. VHDL程序源代码(RAM)RAM存储器L
2、IBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY asynram ISGENERIC(ram_width: POSITIVE :=8;adr_width : POSITIVE :=4); -2*48位的 RAMPORT ( din : IN STD_LOGIC_VECTOR(ram_width-1) DOWNTO 0);dout : OUT STD_LOGIC_VECTOR(ram_width-1) DOWNTO 0);adr : IN STD_LOGIC_VECTOR(adr_widt
3、h -1) DOWNTO 0);cs : IN STD_LOGIC;wr : IN STD_LOGIC;rd : IN STD_LOGIC);END asynram;ARCHITECTURE rtl OF asynram ISSUBTYPE ram_word IS STD_LOGIC_VECTOR(0 TO (ram_width-1) );TYPE ram_type IS ARRAY (0 TO (2*adr_width -1) OF ram_word;SIGNAL ram:ram_type;BEGINPROCESS(wr) BEGINIF wrEVENT AND wr=1 THENIF cs
4、=0 THENram(conv_integer(adr) Z);END IF;END PROCESS;END rtl;(ROM)ROM存储器PACKAGE rompac ISCONSTANT rom_width : POSITIVE := 8;CONSTANT adr_high : POSITIVE := 16;SUBTYPE rom_word IS bit_vector(0 TO (rom_width-1); TYPE rom_table IS ARRAY(0 TO (adr_high-1) OF rom_word;CONSTANT rom:rom_table:=( “00000001“,“
5、00000010“,“00000011“,“00000100“,“00000101“,“00000110“,“00000111“,“00001000“,“00001001“,“00001010“,“00001011“,“00001100“,“00001101“,“00001110“,“00001111“,“00010000“);END rompac;USE work.rompac.ALL;ENTITY rom_mem ISPORT( clock : IN bit;reset : IN bit; dout : OUT bit_vector(rom_width-1) DOWNTO 0);END r
6、om_mem;ARCHITECTURE behav OF rom_mem ISSIGNAL step:integer range 0 to (adr_high-1):=0;BEGINPROCESS(reset,clock) BEGINif reset=0 thenstep 0);elsif clockevent and clock=1 thenif step = (adr_high-1) THENstep = adr_high-1;ELSEstep = step + 1;END IF;end if;END PROCESS;dout = rom(step);END behav; 四、测试及分析给出仿真波形RAMROM1.2.3.经过对实验结果进行的分析,与理论结果一致。五、总结通过本次实验,让我了解了随机存储器和只读存储器各自的功能实现,随机存储器可以写入内容还可能随机读取,而只读存储器只能读取不能写入。