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

可编程逻辑

1363人已加入

描述

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

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

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代码:

信号发生器

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分