0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA学习:使用matlab和ISE 创建并仿真ROM IP核

FPGA学习交流 2018-10-25 20:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

大家好,又到了每日学习的时间了,今天我们来聊一聊使用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文。
115840k6zpqb9d557du67d.png


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


生成的mif文件如下图所示:
115851r00xnfnuxinxcx1l.png


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

使用Xilinx创建并仿真ROM的步骤:
1.编写.coe文件,作为ROM的初始化文件,.coe文件的格式和内容如代码所示:
120349enb9gzgukbl5gnnl.png


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


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


单击之后选择IP_Core_Generator,
120522exgk3hgdecerrdjj.png


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


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



120818spx06pra6gp6a7vn.png



然后就要选择所需要的ROM的大小:
120818ha3aj1eca3d32a0a.png



120818wip5g1ppdsrefeec.png



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



121110tz9ep2apan8x9tfm.png




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




生成的ROM文件的输入输出变量如下:
121319kapzsxuxpjpsyqyf.png




在顶层模块中对ROM进行例化如下:
121319nfpplkjjo5jjokgu.png




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

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




各位,加油!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1655

    文章

    22283

    浏览量

    630253
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    vivado中,怎么将e203内核源代码封装成ip添加总线?

    vivado中,怎么将e203内核源代码封装成ip添加总线?
    发表于 11-10 07:22

    VDMA IP简介

    VDMA端口信号 S_AXI_LITE:PS端可以通过AXI_LITE协议对IP进行控制; S_AXIS_S2MM:视频流(AXI STREAM)输入到IP的FIFO中
    发表于 10-28 06:14

    蜂鸟E203移植到FPGA开发板前的IP例化工作

    的输出时钟供软使用 创建工程 首先,创建新的工程项目,将FPGA/mcu200t/src中的system.v顶层文件和rtl/e203中的所有文件夹加入到项目中。 随后,根
    发表于 10-27 07:35

    Vivado浮点数IP的握手信号

    是1bit1bit进来的,则需要tlast,发完最后一个bit时拉高,tuser可以用来配置表示一些用户需要的信息)。 需要注意的是,本以为只有当数据数据的valid拉高后,IP才能接受数据,但仿真的波形
    发表于 10-24 07:01

    ram ip的使用

    决定的。 ram 主要用来存放程序及程序执行过程中产生的中间数据、 运算结果等。 rom为只读存储器,只能读取数据而不能向里面写入数据。 本次讲解的ram ipram指的是bram,即block
    发表于 10-23 07:33

    雷达系统中数字下变频的实现

    本次设计同样是通过在simulink搭建模型通过matlab仿真得到正确设计后生成IP的形式来实现数字下变频的功能。
    的头像 发表于 08-30 14:29 979次阅读
    雷达系统中数字下变频的实现

    FPGA利用DMA IP核实现ADC数据采集

    DMA IP来实现高效数据传输的步骤,包括创建项目、配置ADC接口、添加和连接DMA IP、设计控制逻辑、生成比特流、软件开发及系统集成
    的头像 发表于 07-29 14:12 4643次阅读

    VIVADO自带Turbo译码器IP怎么用?

    turbo 译码器IP没有输出,不知道哪里出了问题,有经验的小伙伴帮忙看看啊 搭建了turbo 译码器IP测试工程,用Matlab产生的
    发表于 06-23 17:39

    利用EasyGo DeskSim创建实时仿真项目教程

    EasyGo DeskSim是一款配置型的实时仿真软件,它允许用户将 Simulink 算法程序快速部署到 EasyGo 实时仿真机上。实时仿真机支持选配不同的 FPGA 芯片和 IO
    的头像 发表于 06-19 09:15 1029次阅读
    利用EasyGo DeskSim<b class='flag-5'>创建</b>实时<b class='flag-5'>仿真</b>项目教程

    如何使用AMD Vitis HLS创建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 来创建一个 HLS IP,通过 AXI4 接口从存储器读取数据、执行简单的数学运算,然后将数据写回存储器。接着会在 AMD Vivado Design Suite 设计中使用此 HLS
    的头像 发表于 06-13 09:50 1277次阅读
    如何使用AMD Vitis HLS<b class='flag-5'>创建</b>HLS <b class='flag-5'>IP</b>

    FPGA调试方式之VIO/ILA的使用

    在Vivado中,VIO(Virtual Input/Output)是一种用于调试和测试FPGA设计的IP,它允许设计者通过JTAG接口实时读取和写入FPGA内部的寄存器,从而检查设
    的头像 发表于 06-09 09:32 3105次阅读
    <b class='flag-5'>FPGA</b>调试方式之VIO/ILA的使用

    Xilinx Shift RAM IP概述和主要功能

    Xilinx Shift RAM IP 是 AMD Xilinx 提供的一个 LogiCORE IP ,用于在 FPGA 中实现高效的移位寄存器(Shift Register)。该
    的头像 发表于 05-14 09:36 831次阅读

    基于FPGA的图像边缘检测设计

    今天给大侠带来基于 FPGA 的图像边缘检测设计,话不多说,上货。 设计流程如下:mif文件的制作→ 调用 ip 生成rom以及仿真注意问
    的头像 发表于 02-10 11:30 1094次阅读
    基于<b class='flag-5'>FPGA</b>的图像边缘检测设计

    使用IP和开源库减少FPGA设计周期

    /prologue-the-2022-wilson-research-group-functional-verification-study/),70% 的 FPGA 项目落后于计划,12% 的项目落后计划 50% 以上。 为此,很多FPGA厂商都在自己EDA工具里嵌入
    的头像 发表于 01-15 10:47 1153次阅读
    使用<b class='flag-5'>IP</b><b class='flag-5'>核</b>和开源库减少<b class='flag-5'>FPGA</b>设计周期

    ALINX发布100G以太网UDP/IP协议栈IP

    AX14-Stream接口,完美适配UltraScale+/Zynq UltraScale+系列FPGA器件。 这一创新成果为用户提供了快速可靠、低成本且高性能的解决方案,显著缩短了产品上市时间。该IP支持
    的头像 发表于 01-07 11:25 1177次阅读