找回密码
 立即注册
搜索
查看: 4841|回复: 1

FPGA设计中,使用ISE和Matlab创建并仿真ROM IP核

[复制链接]

346

主题

14

回帖

3万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
36986
发表于 2023-7-20 17:41:02 | 显示全部楼层 |阅读模式
本帖最后由 眼镜一米二 于 2024-6-5 16:17 编辑

叁芯智能科技FPGA就业班7月20开班中



大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。


今天给大侠带来FPGA设计中使用ISE和Matlab创建并仿真ROM IP核,话不多说,上货。


本想使用简单的中值滤波进行verilog相关算法的硬件实现,由于HDL设计软件不能直接处理图像,大部分过程都是可以将图像按照一定的顺序保存到TXT文档中,经过Modelsim仿真后,处理的数据再经过matlab显示图像;图像首先通过matlab或者C语言保存在TXT文档中,生成测试向量文件,然后在仿真软件中进行仿真处理,把处理后的数据保存为TXT格式,最后用matlab显示,观察结果。一般都是先创建MIF文件,将图像中的像素信息用一个ROM储存起来,然后调用ROM里面的地址进行处理,相当于制作了一个ROM查找表。


图像保存的步骤


1.使用matlab将图像生成txt文。




2.创建mif文件(Memory Initialization File):使用mif生成器、C语言或者matlab语言来生成;选择直接使用matlab生成mif文件gray_image.mif;



生成的mif文件如下图所示:



3.调用mif文件生成ROM(verilog文件即.v文件)


使用Xilinx ISE创建并仿真ROM的步骤:


1.编写.coe文件,作为ROM的初始化文件,.coe文件的格式和内容如代码所示:



2.生成的.coe文件格式如下图所示:



3.使用Xilinx中的Core Generator完成ROM的例化(生成的.coe文件的图像数据是一行行进行读取的)。打开ISE,右键单击New Source,如下图所示:



单击之后选择IP_Core_Generator,



单击Next选项,选择Memories&Storage Elements->RAMs&ROMs->,选择块式存储或者分布式存储(这里根据存储数据的大小进行选择,较小的可以选择块式存储)。



点击Next,然后Finish。然后就出现了下面的界面,一直点击Next进行ROM属性的一些设置,直至完成:




然后就要选择所需要的ROM的大小:




portA 表示输出要不要时钟打拍输出,这个是在mux里实现的; 在添加初始化文件的时候,将之前matlab生成的.coe文件添加到ROM IP核中去。




一直next下去,就可以得到初始化好的ROM IP核,可以在./ipcore_dir目录下查看ROM文件,从而可以在顶层模块中对ROM进行例化。



生成的ROM文件的输入输出变量如下:






在顶层模块中对ROM进行例化如下:




4.使用CoreGenerator完成ROM的例化后会生成一个.mif文件,这是Modelsim进行ROM仿真时需要的初始化文件,将.mif文件复制到Modelsim工程下进行仿真。


5.查看ROM模块中的初始化数据,双击Rom模块,出现如下图的界面,点击show按钮,即可查看数据;




后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。


大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

346

主题

14

回帖

3万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
36986
 楼主| 发表于 2024-6-5 16:18:04 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|冀ICP备20011060号-2|叁芯智能

GMT+8, 2024-12-30 23:53 , Processed in 0.085490 second(s), 21 queries .

Powered by Discuz! X3.4

© 2017-2018

快速回复 返回顶部 返回列表