目前大部分的FPGA都具有内嵌的块RAM(BRAM)用来扩展其应用范围和系统集成能力(SOC),BRAM一般可用于配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构,另外其内部每个单位即单片块RAM大小为18Kbit(即位宽为18bit深度为1024,至少Spartan-3E是这种结构的,其他型号由于没用到这里就不多说了),同时支持多片BRAM级联以形成更大容量的RAM,当然大小就受FPGA内部BRAM的数量限制了,所以选型的时候片BRAM的容量也是很重要的一个因素。其中本篇内容以我自己的实际应用的片子(Xilinx最具性价比的Spartan-3E系列XC3S500E)为例详细介绍一下双口RAM的IP核配置流程,说到这里还不得不提一个有意思的事,Xilinx的双口RAM是真的双口RAM,而Altera的双口RAM则是两片RAM背靠背模拟实现的,不过Xilinx内部的时钟管理是DLL而Altera是PLL,其实相比较来说我还是喜欢用PLL(习惯了),但最后综合各种因素来说,Xilinx是一个不错的选择,哈哈,这里又给Xilinx做了一次广告了。。。(咳咳,这是第三次做广告了,最开始是Freescale,后来是ADI,这次是Xilinx,嘿嘿,看来真可以考虑考虑收点广告费了) 好了,正题开始,不多说废话了,至于双口RAM的概念这里就不多做介绍了(谷歌一下),毕竟如果能看到这里的博友,是应该有些知识储备的了,所以直接上图了,图中做了相应的文字说明建议仔细看一下:
(1)新建双口RAM IP核向导:
(2)上面的选中好了之后点击“Next”,然后finish,进入IP核自定义参数配置,这个是重点,下面继续图形化呈现,呵呵:
|