FPGA仿真必备——Matlab生成.mif/.txt/.coe

本文转载自:FPGA探索者微信公众号

.mif 和 .coe 是 FPGA 设计中常用的存储文件,用于 ROM、RAM 等存储器数据的加载,常见的还用在 DDS 信号发生器和 FIR 滤波器的设计中。

比如:
matlab与FPGA数字滤波器设计(2)——Vivado调用IP核设计FIR滤波器

.txt 文件主要用于 Matlab 和 FPGA 的联合仿真,比如在滤波器的设计中,可以使用 Matlab 先把加噪声的信号写入到 .txt 文件,然后 FPGA 仿真中在 Testbench 中读取该信号源的数据,滤波后的数据再写入 .txt 文件,拿到 Matlab 里面读取后,可以很方面的进行时域和频域的分析。

比如:
matlab与FPGA数字滤波器设计(6)—— Vivado 中使用 Verilog 实现并行 FIR 滤波器/截位操作

1. mif 文件
MIF(Memory Initialization File),内存初始化文件,用于 Altera / Intel 的 FPGA 器件的 RAM 或 ROM 配置。
例如:
(1)图像处理中,使用 ROM 存储图片或字体信息,进行图像的处理或者VGA显示的字模、固定图片等;
(2)数字信号处理中,使用 ROM 存储 FIR 滤波器等所需的滤波系数;
(3)DDS 信号发生器中,部分实现方式采用 ROM 存储一个周期的采样波形,通过以不同间隔的读取方式输出不同频率的波形;

mif 文件

2. matlab 制作 mif 文件
以 . jpg 图片为例,转成 .mif 文件。
首先是读取 .jpg 图片并进行灰度化(sobel算法处理需要),此时 image_1 数组中保存的是 0~255 之间的数据,可以用无符号的 8 位二进制数据表示,此后按照格式写入数据。

对于其他的数据,也是按照这种方法,只是将 image_1 中的数据换成你要写入的数据。

3. matlab 制作 txt 文件
txt 文件广泛应用于 matlab 与 FPGA 的联合仿真中,特别是在 TestBench中,经常需要先使用 Matlab 将待仿真的输入数据制作成 .txt 文件,然后在 TestBench 中读取该 txt 文件作为输入数据,并将模块的输出数据写入新的 txt 文件,可以使用 Matlab 读取输出数据并进行绘图、数据比对等性能分析等。

4. matlab 读取 txt 文件

5. matlab 写 .coe

.coe 与 .mif 一样,是存储文件,不同点在于 Altera 的 FPGA 使用 .mif 格式,Xilinx 的 FPGA 使用 .coe 格式。

.coe 的格式如下:

或者:

matlab代码:

写好的数据可以在 Testbench 中读取,参考:
matlab与FPGA数字滤波器设计(3)—— Matlab 与 Vivado 联合仿真 FIR 滤波器

最新文章

最新文章