FPGA内部的CLB分为SLICE L和SLICE M,SLICE M与SLICE L大同小异,只是SLICE M里的LUT可以作为RAM来存储而已。说起RAM,不得不提起FPGA内部的重要资源-SRAM。笔者使用的Xilinx Virtex 6系列的SRAM被称为M18K,即每个Block RAM的资源为18K bits,有时候也以两个M18K组成一个M36K来称呼FPGA内部的SRAM基本组成单元。
那么什么叫做SRAM呢?RAM大家都明白,那么这个“S”是什么意思?"S"事实上是Synchronous即同步的意思,意思就是对这种RAM的操作(读,写)都是以时钟为基准,而且对于内部的存储阵列来说,都是一个时钟周期就可以把数据写入,一个时钟周期就可以把数据读出。其时序图如下图所示:
如上图所示,跟clk时钟信号同步,wr_en有效两个周期,此时wr_en有效时的datain被写入到sram此时的addr对应的地址中。当rd_en有效时(有效两个周期),此时rd_en有效时对应的地址数据里的内容被读出(读出需要一个时钟周期的延时)。
在高速设计中,一般使用block ram而非基于LUT的分布式ram,其中一个重要原因就是block ram在一般情况下更容易跑高时钟频率。
自做自受 2013-7-29 16:36
残弈悟恩 2013-7-26 02:06
用户377235 2013-7-23 08:37
用户1514294 2013-7-22 09:58
chen_zs2012_704941858 2013-7-19 06:17
用户403664 2013-7-18 15:28
飞言走笔 2013-7-18 07:55
644398774_263592779 2013-7-16 01:20
用户403664 2013-7-15 11:48
用户1669062 2013-6-24 15:10
一般地,SRAM不就是英文StaticRAM的缩写,即静态随机存储器吗?“S”指Static,静态,SRAM是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。