存储器ROM的设计

上传人:豆浆 文档编号:790641 上传时间:2017-05-14 格式:DOC 页数:3 大小:35KB
返回 下载 相关 举报
存储器ROM的设计_第1页
第1页 / 共3页
存储器ROM的设计_第2页
第2页 / 共3页
存储器ROM的设计_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《存储器ROM的设计》由会员分享,可在线阅读,更多相关《存储器ROM的设计(3页珍藏版)》请在金锄头文库上搜索。

1、6.7 存储器的设计半导体存储器的种类很多,从功能上可以分为只读存储器(READ_ONLY MEMORY,简称ROM)和随机存储器(RANDOM ACCESS MEMORY,简称 RAM)两大类。6.7.1 只读存储器 ROM的设计只读存储器在正常工作时从中读取数据,不能快速地修改或重新写入数,适用于存储固定数据的场合。下面是一个容量为 2564 的 ROM 存储的例子,该 ROM 有 8 位地址线ADR(0)ADR(7),4 位数据输出线 DOUT(0)DOUT(3)及使能 EN,如图 6. 7 所示。图 6. 7 ROM【例 6.16】 用 VHDL设计一个一个容量为 2564 的 ROM

2、 存储的例子,该 ROM 有8 位地址线 ADR(0)ADR(7),4 位数据输出线 DOUT(0)DOUT(3)及使能 EN。- ROM.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE STD.TEXTIO.ALL;ENTITY ROM ISPORT(EN:IN STD_LOGIC;ADR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);DOUT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY ROM;ARCHITECTUR

3、E ART OF ROM ISSUBTYPE WORD IS STD_LOGIC_VECTOR(3 DOWNTO 0);TYPE MEMORY IS ARRAY(0 TO 255) OF WORD;SIGNAL ADR_IN:INTEGER RANGE 0 TO 255;VARIABLE ROM:MEMORY;VARIABLE START_UP:BOOLEAN :=TRUE;VARIABLE L:LINE;VARIABLE J:INTEGER;FILE ROMIN:TEXT IS IN “ROMIN”;BEGINPROCESS(EN,ADR) ISBEGINIF START_UP THEN -

4、初始化开始FOR J IN ROMRANGE LOOPREADLINE(ROMIN, 1);READ(1,ROM(J);END LOOP;START_UP:=FALSE ; -初始化结束END IF;ADR_IN=CONV_INTEGER(ADR); -将向量转化成整数IF(EN=1)THENDOUT=ROM(ADR_IN);ELSEDOUT=“ZZZZ”;END IF;END PROCESS;END ARCHITECTURE ART;6.7.2 读写存储器 SRAM的设计RAM 和 ROM 的主要区别在于 RAM 描述上有读和写两种操作,而且在读写上对时间有较严格的要求。下面我们给出一个 8

5、8 位的双口 SRAM 的 VHDL 描述实例,如图 6.8所示。图 6. 8 双口 SRAM【例 6.17】 用 VHDL设计一个 88位的双口 SRAM。-DPRAM.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DPRAM ISGENERIC(WIDTH:INTEGER :=8;DEPTH:INTEGER :=8;ADDER:INTEGER :=3);PORT(DATAIN:IN STD_LOGIC_VECTOR

6、(WIDTH-1 DOWNTO 0);DATAOUT:OUT STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0); CLOCK:IN STD_LOGIC;WE,RE:IN STD_LOGIC;WADD:IN STD_LOGIC_VECTOR(ADDER-1 DOWNTO 0);RADD:IN STD_LOGIC_VECTOR(ADDER-1 DOWNTO 0);END ENTITY DPRAM;ARCHITECTURE ART OF DPRAM ISTYPE MEM IS ARRAY(DEPTH-1 TO 0) OFSTD_LOGIC_VECTOR(WIDTH-1 DOWNT

7、O 0);SIGNAL RAMTMP:MEM;BEGIN-写进程PROCESS(CLOCK) ISBEGINIF (CLOCKEVENT AND CLOCK=1) THENIF(WE=1)THENRAMTMP(CONV_INTEGER(WADD)=DATAIN;END IF;END IF;END PROCESS;-读进程PROCESS(CLOCK) ISBEGINIF(CLOCKEVENT AND CLOCK=1)THENIF (RE=1) THENDATAOUT=RAMTMP(CONV_INTEGER(RADD); END IF;END IF;END PROCESS;END ARCHITECTURE ART;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 初中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号