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

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

3天内不再提示

Vivado 如何调用ROM IP核

454398 来源:CSDN博主 作者:TimeAmber 2020-11-20 15:01 次阅读

.coe格式的数据文件简介

在Vivado中,对rom进行初始化的文件是.coe文件.它的格式如下:

memory_initialization_radix=10;
memory_initialization_vector =
65534,
65533,
...,
60211;

其中,memory_initialization_radix=10; 表示文件存储数据的进制,10即为10进制,memory_initialization_vector是数据向量,等号后面的数字就是数据向量,使用逗号隔开数据,分毫表示结束。

小结:
① .coe文件的前两行的开头格式是固定的,不能改变的
② 所存储的数据数量与大小是与设计rom的位宽和深度相对应的

使用matlab生成.coe文件

以下面的程序为例,演示了生成位宽为16bit,深度为1024的rom生成初始化文件:

width=16;   %rom的位宽
depth=1024; %rom的深度
x=linspace(0,2*pi,depth);  %在一个周期内产生1024个采样点
y_cos=cos(x);   %生成余弦数据
y_cos=round(y_cos*(2^(width-1)-1))+2^(width-1)-1;  %将余弦数据全部转换为整数

fid=fopen('C:/Users/Administrator/Desktop/cos_coe.coe','w');  %创建.coe文件
fprintf(fid,'%d,/n',y_cos);  %向.coe文件中写入数据
fclose(fid);  %关闭.coe文件

注意,windows中换行符可能是/r/n

再编辑.coe文件,推荐使用notepad++打开,并:

① 在前两行添加:

memory_initialization_radix=10;
memory_initialization_vector =

② 将最后一行的逗号改为分号.

Vivado中ROM IP核的使用

① 在project manager选择IP Catalog:

② 找到Block Memory Generator,并双击:

③ 在下面的界面中进行ROM的设置,在Other Options栏中设置刚刚设置好的.coe文件的位置,推荐将该文件放在工程目录下面。并点击OK,即可完成ROM的设置,成功会的结果如下所示:

④ 完成上面的操作之后可以在工程文件中调用该ROM IP核,调用的方式是在IP Source中打开所生成的ROM IP核,再打开*.v文件,如下图所示:

复制该文件中的调用语句:

module rom_data_i(clka, addra, douta)
/* synthesis syn_black_box black_box_pad_pin="clka,addra[16:0],douta[15:0]" */;
  input clka;
  input [16:0]addra;
  output [15:0]douta;
endmodule

模仿该格式就可以调用IP核。

编辑:hfy


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

    关注

    4

    文章

    563

    浏览量

    85731
  • 存储数据
    +关注

    关注

    0

    文章

    88

    浏览量

    14100
  • Vivado
    +关注

    关注

    19

    文章

    812

    浏览量

    66470
收藏 人收藏

    评论

    相关推荐

    AMD Vivado Design Suite 2024.2全新推出

    AMD Vivado Design Suite 2024.2 全新推出,使用 AMD Versal Adaptive SoC 进行设计的重大改进。此版本为 AMD Versal 自适应 SoC
    的头像 发表于 11-22 13:54 237次阅读

    vivado导入旧版本的项目,IP核心被锁。

    vivado导入其他版本的项目的时候,IP被锁,无法解开,请问该如何解决。 使用软件:vivado 2019.2 导入项目使用版本:vivado
    发表于 11-08 21:29

    Vivado中FFT IP的使用教程

    本文介绍了Vidado中FFT IP的使用,具体内容为:调用IP>>配置界面介绍>>IP
    的头像 发表于 11-06 09:51 727次阅读
    <b class='flag-5'>Vivado</b>中FFT <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用教程

    如何选择适合的ROM类型

    在现代电子设备和计算机系统中,ROM扮演着至关重要的角色。它用于存储固件、操作系统、启动代码以及其他重要的系统信息。随着技术的发展,ROM的种类和特性也在不断变化。 1. ROM的基本概念 R
    的头像 发表于 11-04 10:04 264次阅读

    芯驿电子 ALINX 推出全新 IP 产品线,覆盖 TCP/UDP/NVMe AXI IP

    在创新加速的浪潮中,为更好地响应客户群需求, 芯驿电子 ALINX 推出全新 IP 产品线 ,致力于为高性能数据传输和复杂计算需求提供 高带宽、低延迟 的解决方案。发布的第一批 IP
    的头像 发表于 10-30 17:39 293次阅读
     芯驿电子 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>

    芯驿电子ALINX推出全新IP产品线

    在创新加速的浪潮中,为更好地响应客户群需求,芯驿电子 ALINX 推出全新 IP 产品线,致力于为高性能数据传输和复杂计算需求提供高带宽、低延迟的解决方案。发布的第一批 IP 包括
    的头像 发表于 10-30 11:53 228次阅读
    芯驿电子ALINX推出全新<b class='flag-5'>IP</b><b class='flag-5'>核</b>产品线

    Xilinx DDS IP的使用和参数配置

    用RAM实现一个DDS,从原理上来说很简单,在实际使用的时候,可能没有直接使用官方提供的IP来的方便。这个博客就记录一下,最近使用到的这个DDS IP
    的头像 发表于 10-25 16:54 771次阅读
    Xilinx DDS <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用和参数配置

    如何申请xilinx IP的license

    在使用FPGA的时候,有些IP是需要申请后才能使用的,本文介绍如何申请xilinx IP的license。
    的头像 发表于 10-25 16:48 325次阅读
    如何申请xilinx <b class='flag-5'>IP</b><b class='flag-5'>核</b>的license

    AMD Vivado Design Suite 2024.1全新推出

    AMD Vivado Design Suite 2024.1 可立即下载。最新版本支持全新 AMD MicroBlaze V 软处理器,并针对 QoR 和 Dynamic Function
    的头像 发表于 09-18 09:41 492次阅读

    FPGA的IP使用技巧

    FPGA的IP使用技巧主要包括以下几个方面: 理解IP的概念和特性 : IP是指用硬
    发表于 05-27 16:13

    关于FPGA IP

    对于深入学习使用FPGA的小伙伴们,特别是一些复杂的、大规模的设计应用,适宜的IP核对开发能起到事半功倍的作用。IP的概念与我们sdk里库的概念相似。IP即电路功能模块,用户可以直接
    发表于 04-29 21:01

    如何利用Tcl脚本在Manage IP方式下实现对IP的高效管理

    Vivado下,有两种方式管理IP。一种是创建FPGA工程之后,在当前工程中选中IP Catalog,生成所需IP,这时相应的IP会被自动
    的头像 发表于 04-22 12:22 797次阅读
    如何利用Tcl脚本在Manage <b class='flag-5'>IP</b>方式下实现对<b class='flag-5'>IP</b>的高效管理

    Vivado 使用Simulink设计FIR滤波器

    领域都有着广泛的应用。 Vivado自带的FIR滤波器IP已经很好用,这里借FIR滤波器的设计,介绍Simulink图形设计编程方法。Simulink可以使设计更直观,使硬件资源得到更为高效的利用
    发表于 04-17 17:29

    利用ISE与Matlab创建并仿真FPGA设计中的ROM IP

    一般都是先创建MIF文件,将图像中的像素信息用一个ROM储存起来,然后调用ROM里面的地址进行处理,相当于制作了一个ROM查找表。
    发表于 04-16 11:49 564次阅读
    利用ISE与Matlab创建并仿真FPGA设计中的<b class='flag-5'>ROM</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>

    如何禁止vivado自动生成 bufg

    操作: 打开Vivado工程,并进入项目导航器窗口。 选择下方的"IP"选项卡,展开"Clocking"选项。在这
    的头像 发表于 01-05 14:31 2158次阅读