×
FPGA/DSP > 可编程逻辑 > 详情

6系列FPGA中使用块RAM的心得(3)

发布时间:2020-05-16 发布时间:
|

接下来就是调用IPcore,来产生ROM的IP了。流程就不多讲了,不清楚的同学可以看书,也可以简单浏览一下。在建立IPcore的时候,选择为Block Memory Generator,就进入了块RAM的调用。Memory的类型自然选择为ROM,简单起见使用了单端口的ROM(single port ROM),如图1所示。

图1 IP调用
图1下方中间靠左的位置有个“datasheet”,点击一下就打开了该IP使用的手册,名字为《LogiCORE IP Block Memory Generator v4.2》。这个算是最全面的了,讲到了该IP使用的方方面面,还是非常实用的。接下来是配置该段存储器的宽度和深度。这个根据实际需要进行配置即可。
既然是ROM,就应该有预先“固化”的数据。在IP配置的第3步,有个内存初始化选项,这里可以调用.coe类型的文件,将事先存储的数据引用出来。.coe文件的建立也比较简单,我一般是首先新建一个记事本文件,即.txt文件,将预先计算好的数据存入,然后加上该文件头部需要的语句,即
          memory_initialization_radix = 10;
          memory_initialization_vector =
          3535
         ,-15105
         , -2288
         ,-25620
         ,-19906
         ,-19879
         ,-42826
         ……(中间数据省略)
         , -7697
         ,-36317
         ,-28038;
 memory_initialization_radix指的是数据的进制,10自然就是10进制了,还要注意的格式就是每个数据之前有逗号,最后一个数据以分号结束。前面提到所使用的拟合系数是浮点的,简单处理期间,这里把拟合系数都乘了10000,然后舍掉了剩余的小数位数(虽然一般情况下浮点到定点转换使用的都是乘2的幂)。

 没有问题之后,点击generate,就可以产生IP的调用了。这个时间经常会有点长。

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
汽车内部噪声智能控制系统电路模块设计