前言
ROM在需要信息恢复操作的应用中受限,而计算机和其它数字系统常常需要对数据进行恢复、处理、变换和存储等操作,因此需要一种可读可写的存储器。当然,寄存器和寄存器组也是也是支持快速随机存取的,但存储大量的数据会占用太多的硅片面积。而RAM占用的面积更小,速度也更快。
一、SRAM介绍
典型的RAM包括静态和动态两类,emmm…平时只接触了SRAM所以只说说静态RAM吧。它采用晶体管-电容结构实现,不需要刷新,一般用于计算机中的高速缓存,基本的电路结构如下。
反馈结构使得两个反相器的输出互为相反值,bit_line和bit_line_bar的电平确定了读写操作的结果。
二、单端口SRAM的Verilog模型
1、简单的SRAM单元模型
这里先给出一个没有考虑传播延时的RAM单元,它具有低电平有效的片选输入(CS_b)和写使能(WE_b),如下图。需要注意的是这里没有时钟信号,寄存器由触发器实现,RAM由锁存器实现。
如果CS_b无效则处于三态模式,CS_b和WE_b同时有效则处于透明模式,CS_b有效但WE_b无效则锁存,单元内的内容是随时可读的,但只有在WE_b无效时才会读取data_out。
代码如下:
module ram_static(
output data_out,
input data_in,
input cs_b,we_b
);
assign data_out=(cs_b==0)?(we_b==0)?data_in:data_out:1'bz;
endmodule
testbench如下:
`timescale 1ns / 1ps
module t_ram_static();
wire data_out;
reg data_in;