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

    文章

    580

    浏览量

    89480
  • 存储数据
    +关注

    关注

    0

    文章

    90

    浏览量

    14512
  • Vivado
    +关注

    关注

    19

    文章

    860

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    VivadoIP被锁定的解决办法

    当使用不同版本的Vivado打开工程时,IP被锁定的情况较为常见。不同版本的VivadoIP
    的头像 发表于 02-25 14:00 668次阅读
    <b class='flag-5'>Vivado</b>中<b class='flag-5'>IP</b><b class='flag-5'>核</b>被锁定的解决办法

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

    添加Zynq Processing System IP,配置DDR控制器和时钟。7000系列的Zynq可以参考正点原子DMA回环测试设置。
    的头像 发表于 11-24 09:25 3717次阅读
    基于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 4006次阅读
    使用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

    利用vivado实现对e200_opensource 蜂鸟E203一代的仿真

    往下面找 双击打开Processor System Reset添加复位IP 进行如图修改,后确认。 点击generate 同理,找到时钟IP: 先记得修改名字 改输出时钟值 再
    发表于 10-31 06:14

    VDMA IP简介

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

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

    蜂鸟E203软工作的主频为16MHz高频时钟和3.2768KHz低频时钟,并且不同开发板提供的晶振频率不同,因此需要例化mmcm IP和reset IP
    发表于 10-27 07:35

    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

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

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

    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 2816次阅读
    JESD204B <b class='flag-5'>IP</b><b class='flag-5'>核</b>的配置与使用