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

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

3天内不再提示

关于Vivado三种常用IP核的调用详细解析

Hx 来源:CSDN技术社区 作者:雷凌峻毅 2021-04-27 15:45 次阅读

当前使用版本为vivado 2018.3

vivado的IP核,IP核(IP Core):Vivado中有很多IP核可以直接使用,例如数学运算(乘法器、除法器、浮点运算器等)、信号处理(FFT、DFT、DDS等)。IP核类似编程中的函数库(例如C语言中的printf()函数),可以直接调用,非常方便,大大加快了开发速度。

今天介绍的是vivado的三种常用IP核:时钟倍频(Clocking Wizard),实时仿真(ILA),ROM调用(Block Memory)。

Clocking Wizard

该IP核可以将输入的时钟信号进行倍频,倍数可以大于1,也可以小于1,非常方便。

打开vivado 找到IP Catelog

100062853-125516-1.jpg

在右侧输入栏中输入clk,找到Clocking Wizard

100062853-125517-2.jpg

双击该项目打开,根据开发板上晶振频率进行输入时钟配置

100062853-125518-3.jpg

配置需要输出的倍频频率

100062853-125519-4.jpg

在最下方可选择IP核需要的引脚,我都没用到,因此全取消了(之前有遇到选择reset和lock引脚后IP核不能使用的情况,原因还未弄清楚)。

100062853-125520-5.jpg

点击OK,并点击Generate,完成Clocking Wizard的配置

100062853-125521-6.jpg

在代码中对IP核进行调用

100062853-125522-7.jpg

编写TESTBENCH,仿真结果如下

100062853-125523-8.jpg

ILA

ILA是用于实时仿真的IP核,在你将bit文件烧入芯片后,可在ILA核中看到你想观察的图像和数据。

打开IP Catelog,输入ILA

100062853-125524-9.jpg

双击打开项目,配置需要观察的端口数,采样的深度

100062853-125525-10.jpg

配置观察端口的位数

100062853-125526-11.jpg

点击OK,和Generate完成IP核配置

100062853-125527-12.jpg

在代码中调用IP核

100062853-125528-13.jpg

完成工程综合后,下载文件,点击运行和循环,开始观察

100062853-125529-14.jpg

Block Memory

该IP核调用片内ROM,可以用来储正弦波,三角波等波形。该IP核引用文件的格式为.coe,因此我们需要先使用Matlab生成一个.coe文件。

打开matlab,新建一个.m文件,输入以下代码生成一个位宽10位,深度1024的正弦波

width=10; %rom的位宽

depth=1024; %rom的深度

x=linspace(0,2*pi,depth); %在一个周期内产生1024个采样点

y_sin=cos(x); %生成余弦数据

y_sin=round(y_sin*(2^(width-1)-1))+2^(width-1)-1; %将余弦数据全部转换为整数

fid=fopen(‘C:\Users\Leixx\Desktop\sin_coe.coe’,‘w’); %创建.coe文件

fprintf(fid,‘%d,\n’,y_sin); %向.coe文件中写入数据

fclose(fid); %关闭.coe文件

生成文件之后,用notepad++(或UltraEdit)打开,你会看见已经生成好的1024个数据,这时需要在文件的最开始添加下面两句:

memory_initialization_radix=10;

memory_initialization_vector =

radix表示是十进制显示。之后,在文件的最末尾,将最后一个数据后面的逗号改成分号,点击保存。

100062853-125530-15.jpg

100062853-125531-16.jpg

打开vivado,点击IP Catalog,输入block

100062853-125532-17.jpg

双击打开项目,选择Single port ROM

100062853-125533-18.jpg

配置要存入的数据位宽和数据深度,我之前生成的是位宽10位,深度1024的数据

选择Always Enanbled,让IP核始终处于工作状态

100062853-125534-19.jpg

将之前生成好的文件载入IP核

100062853-125535-20.jpg

点击OK和Generate,完成IP核配置

在代码中调用IP核,我这里DAC是低位在前

100062853-125536-21.jpg

编写好Testbench后,可以在仿真中看到正弦波,我这里因为低位在前,所以波形杂乱。

100062853-125537-22.jpg

以上,便是vivado三种常用IP核的调用。
编辑:lyn

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

    关注

    4

    文章

    524

    浏览量

    84812
  • IP核
    +关注

    关注

    4

    文章

    317

    浏览量

    49041
  • 实时仿真
    +关注

    关注

    0

    文章

    16

    浏览量

    8575
  • Vivado
    +关注

    关注

    18

    文章

    790

    浏览量

    65093
收藏 人收藏

    评论

    相关推荐

    Vivado 使用Simulink设计FIR滤波器

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

    运放的三种应用

    运放在电路中主要存在三种应用,放大器,滤波器,振荡器。再这三种应用电路中,运放的两大特点虚短虚断仍然成立吗? 在阻尼振荡器中,工作过程是否按照我描述的这样,在反相输入端加一个近似锯齿波的电流源,正半
    发表于 01-26 16:18

    FPGA实现基于Vivado的BRAM IP核的使用

    文章是基于Vivado的 2017.1的版本,其他版本都大同小异。 首先在Vivado界面的右侧选择IP Catalog 选项。
    的头像 发表于 12-05 15:05 518次阅读

    FPGA新IP学习的正确打开方式

    的情况时,总会遇到一些以前未曾接触过的新内容,这些新内容会让我们感到陌生和恐惧,不知道该如何下手。 那么今天以xilinx vivado 为例分享学习FPGA 新IP的正确打开方式。 一、常规
    发表于 11-17 11:09

    为什么说Vivado是基于IP的设计?

    Vivado是Xilinx公司2012年推出的新一代集成开发环境,它强调系统级的设计思想及以IP为核心的设计理念,突出IP核在数字系统设计中的作用。
    的头像 发表于 09-17 15:37 1146次阅读
    为什么说<b class='flag-5'>Vivado</b>是基于<b class='flag-5'>IP</b>的设计?

    Vivado IP核Shared Logic选项配置

    在给Vivado中的一些IP核进行配置的时候,发现有Shared Logic这一项,这里以Tri Mode Ethernet MAC IP核为例,如图1所示。
    的头像 发表于 09-06 17:05 632次阅读
    <b class='flag-5'>Vivado</b> <b class='flag-5'>IP</b>核Shared Logic选项配置

    Vivado中BRAM IP的配置方式和使用技巧

    FPGA开发中使用频率非常高的两个IP就是FIFO和BRAM,上一篇文章中已经详细介绍了Vivado FIFO IP,今天我们来聊一聊BRAM IP
    的头像 发表于 08-29 16:41 2993次阅读
    <b class='flag-5'>Vivado</b>中BRAM <b class='flag-5'>IP</b>的配置方式和使用技巧

    如何在Vivado中配置FIFO IP

    Vivado IP核提供了强大的FIFO生成器,可以通过图形化配置快速生成FIFO IP核。
    的头像 发表于 08-07 15:36 1928次阅读
    如何在<b class='flag-5'>Vivado</b>中配置FIFO <b class='flag-5'>IP</b>核

    Vivado调用Modelsim仿真

    Modelsim是十分常用的外部仿真工具,在Vivado中也可以调用Modelsim进行仿真,下面将介绍如何对vivado进行配置并调用Mo
    的头像 发表于 07-24 09:04 1999次阅读
    <b class='flag-5'>Vivado</b><b class='flag-5'>调用</b>Modelsim仿真

    关于HLS IP无法编译解决方案

    Xilinx平台的Vivado HLS 和 Vitis HLS 使用的 export_ip 命令会无法导出 IP
    的头像 发表于 07-07 14:14 397次阅读
    <b class='flag-5'>关于</b>HLS <b class='flag-5'>IP</b>无法编译解决方案

    VCS独立仿真Vivado IP核的问题补充

    在仿真Vivado IP核时分两种情况,分为未使用SECURE IP核和使用了SECURE IP核。
    的头像 发表于 06-20 14:23 660次阅读
    VCS独立仿真<b class='flag-5'>Vivado</b> <b class='flag-5'>IP</b>核的问题补充

    xilinx vivado调用cordic IP进行实现时报错多重驱动?

    vivado2019.2建立工程,工程中调用cordic IP进行atan求解,功能仿真时正常且满足要求;综合时正常;实现时报错提示多重驱动。 如果经cordic计算后的输出值不用
    发表于 06-06 17:17

    VCS独立仿真Vivado IP核的问题补充

    在仿真Vivado IP核时分两种情况,分为未使用SECURE IP核和使用了SECURE IP核。
    的头像 发表于 06-06 14:45 1274次阅读
    VCS独立仿真<b class='flag-5'>Vivado</b> <b class='flag-5'>IP</b>核的问题补充

    VCS独立仿真Vivado IP核的一些方法总结

    最近,需要使用VCS仿真一个高速并串转换的Demo,其中需要用到Vivado的SelectIO IP核以及IDELAYCTRL,IDELAY2原语。而此前我只使用VCS仿真过Quartus的IP核。
    的头像 发表于 06-06 11:09 1729次阅读
    VCS独立仿真<b class='flag-5'>Vivado</b> <b class='flag-5'>IP</b>核的一些方法总结

    使用Vivado调用questasim仿真报错的原因及其解决办法

    有一天使用Vivado调用questasim(modelsim估计也一样),仿真报错
    的头像 发表于 05-08 17:12 1874次阅读