打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
XILINX IP核定制ROM

 FPGA内部有BLOCK RAM和分布式RAM,这些资源都可以作为ROM(ROM只是有初始值的RAM,而且该初始值不能改变)。有些低端的FPGA可能没有BLOCK RAM。本文主要介绍ROM的使用方法,RAM的使用方法类同。
        打开XILINX的ISE,NEW SOURCE中选择IP,写好NAME,点击下一步。


 
在下图中选择你要的IP核。



第一个是使用分布式ROM-如果你的ROM不是很大的话,而且内部BLOCK RAM资源有限的情况下,使用分布式ROM可以为你节约不少BLOCK RAM,但是它会占用一些逻辑资源。
第二个是双口BLOCK RAM.
第三个是单口BLOCK RAM.
选择你想要使用的IP核,(以常用的单口BLOCK RAM为例)点击NEXT:




点击完成。
进入如下图界面。



在component name内填写模块名(要小写)
第二项选择READ ONLY(选READ AND WRITE 就是RAM),表示要生成只读的ROM。
Memory size 里填好ROM的宽度和深度,上图是一个256×16BIT的ROM。
点击NEXT进入下图。



这里默认就可以了。
再NEXT:



这里可以选择是CLK上升沿读数据还是下降沿读。
继续NEXT:



这里比较关键,要导入ROM的值。
在LOAD INIT FILE 项上打勾,点击LOAD FILE……出现下图,要你选择一个文件。




这个文件就是你要放在ROM中的数据,文件的后缀名是.COE。你可以自己建一个空的文本文件,然后把后缀名该为.COE即可。
文件内容的格式如下:
MEMORY_INITIALIZATION_RADIX=10;
MEMORY_INITIALIZATION_VECTOR=
32767,
32766,
32766,
32765,
32764,
32763,
32761,
32759,
32757,
……
32754;
注意:
第一行定义文件中的数据采用什么进制。可以使用10进制,2进制,16进制,数据大小不能超过你定义的数据宽度。
第二行照抄。
第三行开始就是数据了,每个数据用逗号","隔开,可以不分行,建议分行写,便于统计个数。
最后一个数据后用分号";"结束。
数据的个数必须和你定义的数据深度相同,否则会出错。
写好这个文件后,保存。
然后在点击LOAD FILE……,选择这个文件,点打开。
如果没有错误,可以点击旁边的show coefficients查看数据。如果数据很多(>512),建议不要使用此功能,可能会因数据太大而无法响应。

现在,可以点击GENERATE,产生代码了。
产生的代码中有个.MIF文件,就是ROM的数据的二进制文件。
其中的.V文件或.VHD就是生成的可综合的代码。




如上图的ROM_COS.XCO,选择它,双击VIEW HDL FUNCTIONAL MODEL
就可查看Verilog代码。
接下来,要删除ROM_COS.XCO,然后把ROM_COS.V添加进来。
接下来就可以综合了。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Xilinx Spartan
NVM模块基本概念
搭建Xilinx开发环境(2)
BRAM资源不够用?不怕!这里有FPGA BRAM省资源小秘招!
手机Ram、Rom
从MTK的scat文件谈ROM和RAM的分配,管理和问题解决
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服