jicheng0622

【赛灵思FPGA】【原创】教你一步步实现XilinxFPGA内部双口RAM IP核

0
阅读(9392)

    兴许是昨天下了一场秋雨,早上起来,济南的天真是前所未有的蓝(在济南这样的蓝天很少见,估计帝都也是如此吧,汽车尾气太严重,呵呵)。秋高而气爽,伴随好天气而来的自然是杠杠的好心情,哈哈,所以一时兴起还是写点东西来纪念一下吧~

    上一篇的博客介绍了下那些年我们曾追过的Xilinx,纯属于励志篇。这次还是拿出点实料,写点技术相关的东西,当然也仅限于此,在上篇中我也曾说过,自己在FPGA方面的造诣还是较菜的,所以这“大刀”是不能乱耍的,这里只拿出来自己比较有把握也是比较简单(虽然比较简单却网上少有人细致的讲解)的部分跟大家分享一下,没用过这部分知识的可以仔细学习一下,用过的也可以加深一下印象,希望大家都能有所收获,哈哈。

    目前大部分的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核自定义参数配置,这个是重点,下面继续图形化呈现,呵呵:

(3)点击Generate生成IP核之后,就可以看到在工程管理窗口下的.xco文件(即IP核文件),生成的.v或者.vhd文件可在当前工程文件夹路径下找到,当然也可以直接从ISE打开,从里面可以看到生成的双口RAM的管脚信息,便于调用:

    呼,说到这里,本篇的主要内容就介绍完毕了,为了达到不腻的效果,加了很多图片,而且介绍性文字也呈现在图片上了,希望用得到的博友能认真看下来,相信会有所收获。。。渴死了,先去喝口水

    走没人走或者少有人走的路很艰辛,我很欣慰能走到现在,呵呵。同时本博客系列首发于ChinaAET,原地址为http://blog.chinaaet.com/jihceng0622,为了尊重俺的劳动成果(汗,话说又是截图又是加文字真挺麻烦又费时间的),转发请注明出处和保留原作者信息,谢谢,呵呵,未完待续~