大家好,又到了每日学习的时间了,今天我们来聊一聊使用matlab和ISE 创建并仿真ROM IP核。本人想使用简单的中值滤波进行verilog相关算法的硬件实现,由于HDL设计软件不能直接处理图像,大部分过程都是可以将图像按照一定的顺序保存到TXT文档中,经过Modelsim仿真后,处理的数据再经过matlab显示图像;图像首先通过matlab或者C语言保存在TXT文档中,生成测试向量文件,然后在仿真软件中进行仿真处理,把处理后的数据保存为TXT格式,最后用matlab显示,观察结果。一般都是先创建MIF文件,将图像中的像素信息用一个ROM储存起来,然后调用ROM里面的地址进行处理,相当于制作了一个ROM查找表。
用Quartus II创建并仿真ROM的步骤:
1.在Quatus工程下生成一个ROM
2.编写.mif文件,作为ROM的初始化文件
3.将.mif文件拷贝到Modelsim工程下
4.进行Modelsim仿真
图像保存的步骤:
1.使用matlab将图像生成txt文。
2.创建mif文件(Memory Initialization File):使用mif生成器、C语言或者matlab语言来生成;选择直接使用matlab生成mif文件gray_image.mif;
生成的mif文件如下图所示:
3.调用mif文件生成ROM(verilog文件即.v文件)
使用Xilinx创建并仿真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属性的一些设置,直至完成:
![120818spx06pra6gp6a7vn.png](http://file.elecfans.com/web1/M00/69/23/pIYBAFvRR7qAVHCxAAC0XHibSm8377.png)
然后就要选择所需要的ROM的大小:
![120818ha3aj1eca3d32a0a.png](http://file.elecfans.com/web1/M00/69/09/o4YBAFvRR5qAUgUrAACRRHq7q6M698.png)
![120818wip5g1ppdsrefeec.png](http://file.elecfans.com/web1/M00/69/09/o4YBAFvRR5uAGX3FAAC-5JrEEuw543.png)
portA 表示输出要不要时钟打拍输出,这个是在mux里实现的; 在添加初始化文件的时候,将之前matlab生成的.coe文件添加到ROM IP核中去。
![121109hsps5srcs8tc3vp5.png](http://file.elecfans.com/web1/M00/69/23/pIYBAFvRR8aAS61iAACTNvJ3dFg437.png)
![121110tz9ep2apan8x9tfm.png](http://file.elecfans.com/web1/M00/69/09/o4YBAFvRR6eAJ5Z3AADRWDk2-_k142.png)
一直next下去,就可以得到初始化好的ROM IP核,可以在./ipcore_dir目录下查看ROM文件,从而可以在顶层模块中对ROM进行例化。
![121110ngfie9qpz4c0hz1e.png](http://file.elecfans.com/web1/M00/69/09/o4YBAFvRR6yAZz8uAAG7kRE6_a4305.png)
生成的ROM文件的输入输出变量如下:
![121319kapzsxuxpjpsyqyf.png](http://file.elecfans.com/web1/M00/69/23/pIYBAFvRR9KAPC5WAAA38bluamQ005.png)
在顶层模块中对ROM进行例化如下:
![121319nfpplkjjo5jjokgu.png](http://www.fpgaw.com/data/attachment/forum/201810/25/121319nfpplkjjo5jjokgu.png)
4.使用CoreGenerator完成ROM的例化后会生成一个.mif文件,这是Modelsim进行ROM仿真时需要的初始化文件,将.mif文件复制到Modelsim工程下进行仿真。
5.查看ROM模块中的初始化数据,双击Rom模块,出现如下图的界面,点击show按钮,即可查看数据;
![121319bhdmrs4ebtn9rd44.png](http://file.elecfans.com/web1/M00/69/23/pIYBAFvRR-GAXIrEAADDJoxJteg545.png)
完
各位,加油!
-
FPGA
+关注
关注
1631文章
21806浏览量
606688
发布评论请先 登录
相关推荐
使用IP核和开源库减少FPGA设计周期
![使用<b class='flag-5'>IP</b><b class='flag-5'>核</b>和开源库减少<b class='flag-5'>FPGA</b>设计周期](https://file1.elecfans.com/web3/M00/06/04/wKgZPGeHIiKAD4NPAAAcUU1jJLI249.jpg)
ALINX发布100G以太网UDP/IP协议栈IP核
芯驿电子 ALINX 推出全新 IP 核产品线,覆盖 TCP/UDP/NVMe AXI IP 核
![芯驿电子 ALINX 推出全新 <b class='flag-5'>IP</b> <b class='flag-5'>核</b>产品线,覆盖 TCP/UDP/NVMe AXI <b class='flag-5'>IP</b> <b class='flag-5'>核</b>](https://file1.elecfans.com/web2/M00/0B/71/wKgaomch_neAR6kfAADEBVG6ueo794.png)
将ASIC IP核移植到FPGA上——更新概念并推动改变以完成充满挑战的任务!
![将ASIC <b class='flag-5'>IP</b>核移植到<b class='flag-5'>FPGA</b>上——更新概念<b class='flag-5'>并</b>推动改变以完成充满挑战的任务!](https://file1.elecfans.com/web2/M00/00/DD/wKgZomayMpOAYZ98AABAEeFjCIo490.png)
如何使用MATLAB创建预测模型
如何在ModelSim中添加Xilinx仿真库
FPGA verilog HDL实现中值滤波
FPGA | Xilinx ISE14.7 LVDS应用
FPGA的IP软核使用技巧
利用ISE与Matlab创建并仿真FPGA设计中的ROM IP核
![利用<b class='flag-5'>ISE</b>与<b class='flag-5'>Matlab</b><b class='flag-5'>创建</b><b class='flag-5'>并</b><b class='flag-5'>仿真</b><b class='flag-5'>FPGA</b>设计中的<b class='flag-5'>ROM</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>](https://file1.elecfans.com/web2/M00/C9/8E/wKgaomYd9YyAIpQRAAAu_w7iz_4862.png)
评论