Verilog实现RAM(1)

本文介绍了RAM的基础概念,包括ROM、PROM、EPROM、EEPROM和不同类型的RAM。重点讲解了静态RAM(SRAM)和动态RAM(DRAM)的区别。接着,通过调用Xilinx IP核,展示了如何实现一个8位宽、16位深的单端口SRAM,分析了其工作过程和测试结果,指出输出spo的异步特性。

学习FIFO设计时遇到了RAM设计的知识,因此首先对RAM相关知识进行学习与记录

一、概念解释

基础概念不清,所以查阅了一些大神的博客与资料,先进行扫盲,基本照搬如下:

ROM:只读存储器
    ROM内部的数据是在ROM的制造工序中,在工厂里用特殊的方法被烧录进去的,其中的内容只能读不能改,一旦烧录进去,用户只能验证写入的资料是否正确,不能再作任何修改。如果发现资料有任何错误,则只有舍弃不用,重新订做一份。ROM是在生产线上生产的,由于成本高,一般只用在大批量应用的场合。

PROM:可编程ROM
    由于ROM制造和升级的不便,后来人们发明了PROM(Programmable ROM,可编程ROM)。最初从工厂中制作完成的PROM内部并没有资料,用户可以用专用的编程器将自己的资料写入,但是这种机会只有一次,一旦写入后也无法修改,若是出了错误,已写入的芯片只能报废。PROM的特性和ROM相同,但是其成本比ROM高,而且写入资料的速度比ROM的量产速度要慢,一般只适用于少量需求的场合或是ROM量产前的验证。

EPROM:可擦除可编程ROM
    EPROM(Erasable Programmable ROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。EPROM芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到EPROM擦除器。
 
EEPROM:电可擦除可编程ROM
    鉴于EPROM操作的不便,后来出的主板上的BIOS ROM芯片大部分都采用EEPROM(Electrically Erasable Programmable ROM,电可擦除可编程ROM)。EEPROM的擦除不需要借助于其它设备,它是以电子信号来修改其内容的,而且是以Byte为最小修改单位,不必将资料全部洗掉才能写入,彻底摆脱了EPROM Eraser和编程器的束缚。
 
 FLASH ROM:
     FLASH ROM则属于真正的单电压芯片,在使用上很类似EPROM,因此,有些书籍上便把FLASH ROM作为EPROM的一种。事实上,二者还是有差别的。FLASH ROM在擦除时,也要执行

### 使用Verilog实现RAM的方法 在硬件描述语言Verilog中,可以使用多种方法来定义随机存取存储器(RAM)。一种常见的做法是在模块内部声明寄存器数组并编写读写逻辑[^1]。 #### RAM模块结构概述 为了创建一个简单的单端口同步RAM模型,在Verilog代码里通常会包含以下几个部分: - 输入信号:`clk`(时钟),`we`(写使能),以及地址线(`addr`) - 输出信号:数据输出(`dout`) - 双向信号:数据输入/输出(`din`);对于只读操作此信号可作为纯输入 - 内部变量:用于保存状态的一维寄存器数组 下面是一个基本的8位宽、深度为256字节的SRAM实例化方式及其行为描述: ```verilog module simple_ram( input wire clk, input wire we, // Write Enable signal input wire [7:0] din, // Data Input (Write data) output reg [7:0] dout,// Data Output (Read data) input wire [7:0] addr// Address lines ); reg [7:0] mem[0:255]; // Define a memory array with 256 locations of 8 bits each. always @(posedge clk) begin if(we) mem[addr] <= din; // On rising edge and when write enabled store incoming data into addressed location. dout <= mem[addr]; // Regardless of WE state always update the read port on every clock cycle. end endmodule ``` 这段代码展示了如何利用过程赋值语句(即`always`块内的语句)完成基于边沿触发的行为建模。当检测到上升沿且写入允许标志有效时,则执行写入动作;而无论何时都会更新读出的数据以反映当前寻址单元的内容。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值