跳转到主要内容

fpga ram初始化文件coe与mif

judy 提交于

本文转载自:<span id="profileBt"><a href="https://mp.weixin.qq.com/s/no_GrHR8fx4al2a6QbyhsA"&gt; 硬码农二毛哥微信公众号</a></span>

<font color="#FF8000">注:本文由作者授权转发,如需转载请联系作者本人</font>

在FPGA设计中ram是最常用的ip,一般工程中会用到多个ram,使用文件初始化ram,可以为调试带来很多便利,下面就分别介绍一下,使用coe初始化xilinx fpga ram和使用mif文件初始化intel fpga ram的方法。

<strong>xilinx coe</strong>
打开vivado,在ram ip配置中找到Other Options->Memory Iintialization
<center><img src="http://xilinx.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564297-27…; alt=""></center>

点击Edit,选择Yes
<center><img src="http://xilinx.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564297-27…; alt=""></center>

创建好coe文件后,如下图所示
<center><img src="http://xilinx.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564297-27…; alt=""></center>

其中memory_initialization_radix 16代表输入初始化数据为16进制,可以设置成10和2,分别代表10进制和2进制。

memory_initialization_vector 中填入要初始化的数据,图中输入8bit位宽的7个数据,根据fifo深度填写数据,如果fifo深度32,已经填入7个数,希望其他数据为0,可以做如下设置。
<center><img src="http://xilinx.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564297-27…; alt=""></center>

填写完成后点击Validate验证数据正确性,通过验证后保存数据。

<strong>intel mif</strong>
打开quartus,在ram ip配置中找到Mem Init,将mif文件导入ip。
<center><img src="http://xilinx.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564297-27…; alt=""></center>

初始化mif文件方法,新建文件,选择Memory Initialization file。
<center><img src="http://xilinx.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564297-27…; alt=""></center>

选择数据个数与数据宽度,分别对应fifo深度,与数据宽度。
<center><img src="http://xilinx.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564297-27…; alt=""></center>

在文件中填入初始化数据,可以通过Address Radix和Memory Radix修改数据和地址进制。
<center><img src="http://xilinx.eetrend.com/files/2022-09/%E5%8D%9A%E5%AE%A2/100564297-27…; alt=""></center>