ISE中COE与MIF文件的联系与区别

ISE中COE与MIF文件的联系与区别,第1张

我们首先来看看一个ROM的生成过程。当我们生成一个ROM模块时,在Memory Initialization选项中,会让开发者去指定COE文件的路径,

当我们指定好COE文件的路径,最后生成ROM后,会发现,在生成的ROM的IP核工程的文件夹列表中会同时生成MIF文件,

打开MIF文件,会发现里面内容与COE文件相同,这时不禁会让人感到疑惑:到底ROM会用哪个文件作为自己的初始化文件呢?

答案是MIF文件。

COE文件的作用,是生成IP核工程的时候,将其文件中的内容导入,生成MIF文件。也就是说,MIF文件是基于COE文件生成的,所以二者的内容才会相同(格式上是不同的)。此后,在实际的使用中,只有MIF文件才会发挥作用,COE这时就已经“无用”了。由此可以推测,若想改变某个ROM模块的初始化文件,要么重新生成一遍ROM模块,导入新的COE文件,要么直接替换掉MIF文件,二者的作用是等效的,只是后者做法不太规范,由于COE文件未变,若再生成ROM模块会导致MIF文件会根据老的COE文件重生成。

总结起来,在使用过程中,需要注意以下几点:

1、  MIF文件是根据COE文件生成的。

2、  COE文件只会在生成ROM模块时起作用,其作用就是根据文件内容生成相应的MIF文件,而ROM真正使用的是MIF文件。

3、  若想改变某个ROM模块的初始化内容,根本上来说是要改变MIF文件,有两种方法:一是替换掉原来的COE文件,再将ROM模块重新生成一遍;二是直接替换掉MIF文件。前者是比较规范的作法,因为后者的COE文件未变,若后面再去因为配置ROM参数而重新生成ROM模块会导致MIF文件又会回到“老样子”。切忌直接替换COE而不重新生成ROM模块的作法,这样MIF文件没变,所以初始化内容也会保持不变

你在Core generator中生成的ROM的初始化是用.coe文件编写的。然后经过core generator生成会自带一个.mif文件。可能的原因是你在生成时并没有+.coe文件,结果默认生成一个空白的ROM。而在modelsim里面你又把.mif文件添加到库中。所以会出现告警。

解决方法:重新生成一个~~~在initial content 下面选择load file。自己编写一个.coe文件。内容格式如下:

memory_initialization_radix=16//定义写入初始值的进制

memory_initialization_vector=

aa bb cc dd ee ff 00 11//我写了一个8位宽的深度为8的ROM初始值。

生成后自带一个.mif文件,modelsim中不需要添加.mif 文件即可仿真。

顺带提下:xilinx ip core在modelsim中仿真不同于altera的。还需要建个xilinx的library。如果需要可以+在问题描述里面。

在ISE中新建IP核,新建完成后找到存储该IP核的文件夹,在ipcore_dir文件夹下的几个文件中找下,该IP核的DATASHEET就在其中。

比如:我在ISE工程中添加了 DDS IP核和AXI IP核,在如下目录找相应的DATASHEET

(1)ip核存储位置\ipcore_dir\dds\doc\

(2)ip核存储位置\ipcore_dir\axi\doc\


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7864811.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存