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

    文章

    578

    浏览量

    88543
  • 存储数据
    +关注

    关注

    0

    文章

    90

    浏览量

    14420
  • Vivado
    +关注

    关注

    19

    文章

    846

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于AXI DMA IP的DDR数据存储与PS端读取

    添加Zynq Processing System IP,配置DDR控制器和时钟。7000系列的Zynq可以参考正点原子DMA回环测试设置。
    的头像 发表于 11-24 09:25 2628次阅读
    基于AXI DMA <b class='flag-5'>IP</b><b class='flag-5'>核</b>的DDR数据存储与PS端读取

    使用AXI4接口IP进行DDR读写测试

    本章的实验任务是在 PL 端自定义一个 AXI4 接口的 IP ,通过 AXI_HP 接口对 PS 端 DDR3 进行读写测试,读写的内存大小是 4K 字节。
    的头像 发表于 11-24 09:19 2742次阅读
    使用AXI4接口<b class='flag-5'>IP</b><b class='flag-5'>核</b>进行DDR读写测试

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

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

    Windows环境下用Vivado调试E203

    下的system.v文件,这是我们的顶层设计文件。 第二步 手动添加IP 根据e203_hbirdv2-masterfpgamcu200tscript目录下的ip.tcl的描述,有两个IP
    发表于 11-05 06:25

    VDMA IP简介

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

    vcs和vivado联合仿真

    我们在做参赛课题的过程中发现,上FPGA开发板跑系统时,有时需要添加vivadoip。但是vivado仿真比较慢,vcs也不能直接对添加了viv
    发表于 10-24 07:28

    Vivado浮点数IP的握手信号

    Vivado浮点数IP的握手信号 我们的设计方案中,FPU计算单元将收到的三条数据和使能信号同步发给20多个模块,同时只有一个模块被时钟使能,进行计算,但结果都会保留,发给数选。计算单元还需接受
    发表于 10-24 07:01

    Vivado浮点数IP的一些设置注意点

    Vivado浮点数IP的一些设置注意点 我们在vivado2018.3中使用了Floating-point(7.1)IP
    发表于 10-24 06:25

    ram ip的使用

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

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

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

    JESD204B IP的配置与使用

    物理层的位置,一种是物理层在JESD204 IP里;另外一种是物理层在JESD204 IP外部,需要再配置JESD204 phy IP进行使用。
    的头像 发表于 05-24 15:05 1549次阅读
    JESD204B <b class='flag-5'>IP</b><b class='flag-5'>核</b>的配置与使用

    vivado IPcordic中sin和cos的计算

    Architectural Configuration选择为并行模式,具有单周期数据吞吐量和较大的硅面积。具有并行结构配置的CORDIC使用移位相加子级数组并行实现这些移位相加操作。该并形电路的实现规模与(内部精度 * 迭代次数)成正比。
    的头像 发表于 05-03 18:16 1269次阅读
    <b class='flag-5'>vivado</b> <b class='flag-5'>IP</b><b class='flag-5'>核</b>cordic中sin和cos的计算

    一文详解Video In to AXI4-Stream IP

    Video In to AXI4-Stream IP用于将视频源(带有同步信号的时钟并行视频数据,即同步sync或消隐blank信号或者而后者皆有)转换成AXI4-Stream接口形式,实现了接口转换。该IP还可使用VTC
    的头像 发表于 04-03 09:28 2238次阅读
    一文详解Video In to AXI4-Stream <b class='flag-5'>IP</b><b class='flag-5'>核</b>

    Vivado FIR IP核实现

    Xilinx的FIR IP属于收费IP,但是不需要像 Quartus那样通过修改license文件来破解。如果是个人学习,现在网络上流传的license破解文件在破解Vivado的同
    的头像 发表于 03-01 14:44 2563次阅读
    <b class='flag-5'>Vivado</b> FIR <b class='flag-5'>IP</b>核实现

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

    ALINX近日宣布,基于AMD 100G以太网MAC IP,成功开发出全新的100G以太网UDP/IP协议栈IP。该IP
    的头像 发表于 01-07 11:25 1177次阅读