本实验的目的是熟悉SRAM的工作原理,并能够通过编程来访问SRAM。本实验利用VHDL或Verilog编程访问开发系统核心板上的SRAM IS61LV24516,要求:
1. 依次向SRAM中的每个地址写入一个数,然后将此数从该地址中读出,判断写入的数和读出的数是否正确;向每个地址中写入的数从0开始依次加1。
2. 如果对某个地址写入的数和读出的数相同,则LED0缓慢闪烁,每2秒闪烁一次,表示读写正确;如果对某个地址写入的数和读出的数不同,则LED7快速闪烁,每0.4秒闪烁一次,表示读写错误。



SRAM是英文Static RAM的缩写,即静态存储器。它是一种具有静态存取功能的存储器,不需要刷新电路即能保存它内部存储的数据。SRAM访问速度快,不必配合内存刷新电路,可提高整体的工作速度。但SRAM集成度低,功耗较大,相同的容量下体积较大,而且价格较高,少量用于关键性系统以提高效率。
SRAM按是否需要时钟又分为同步SRAM和异步SRAM。同步SRAM采用一个输入时钟来启动存储器的所有事务处理(读、写等);而异步SRAM并不具备时钟输入,通过监视输入以获取来自控制器的命令,一旦识别出某条命令,SRAM将立即执行命令。
开发系统核心板上的SRAM IS61LV24516为异步SRAM,无时钟信号,管脚定义如表13-1所示。

表13-1 SRAM管脚定义

A0~A17访问SRAM的地址,18位,地址空间为256K。
I/O0~I/O1L12,L11数据线,16位宽,SRAM的总容量为512K字节。
CE片选信号,低电平有效。
OE读使能信号,低电平有效。
WE写使能信号,低电平有效。
LB低8位访问控制信号,低电平有效。如果LB为0则表示访问16位数据的低8位。
UB高8为访问控制信号,低电平有效。如果UB为低则表示访问16为数据的高8位。

图13-1给出了各管脚的详细功能说明。 图13-1  管脚详细功能定义

图13-1 管脚详细功能定义

SRAM的写入时序如图13 2所示。 图13-2 SRAM写入时序

图13-2 SRAM写入时序

在进行写入操作时,CE、WE为低,OE为高,在Address上输出要写入的地址,对于UB、LB可以根据访问数据的需要来设置。在WE信号拉低tHZWE时间后SRAM在数据线(Dout)上输出高阻,在此之前信号是不确定的;在数据线输出高阻之后,FPGA可以在数据线(Din)上输出要写入的数据。为了保证不会发生数据冲突,要求FPGA在tHZWE时间后才可以输出要写入的数据。写入时序时间要求如表13 2所示。

表13-2 写入时序时间要求

表13-3 写入时序时间要求

SRAM的读取时序如图13-3所示。 图13-4 SRAM写入时序

图13-4 SRAM读取时序

在读取操作时要求,OE和CE为低,LB和UB根据需要设置电平,在Address上输出要读取数据的地址,在max{tAA, tACE, tBA}时间后,数据线上输出要读取的数据。读取时序时间要求如表13 3所示。

表13-3 读取时序时间要求

表13-5 读取时序时间要求