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

    文章

    562

    浏览量

    85660
  • IP核
    +关注

    关注

    4

    文章

    326

    浏览量

    49418
  • 实时仿真
    +关注

    关注

    0

    文章

    22

    浏览量

    8649
  • Vivado
    +关注

    关注

    19

    文章

    807

    浏览量

    66311
收藏 人收藏

    评论

    相关推荐

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

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

    Vivado中FFT IP的使用教程

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

    Windows管理内存的三种主要方式

    Windows操作系统提供了多种方式来管理内存,以确保系统资源的有效利用和性能的优化。以下是关于Windows管理内存的三种主要方式的详细阐述,包括堆内存管理、虚拟内存管理以及共享内存管理,每种方式都将从概念、原理、运作机制和应
    的头像 发表于 10-12 17:09 394次阅读

    单片机的三种总线结构

    、控制信号传递和地址选择中发挥着至关重要的作用。下面将详细阐述这三种总线结构的特点及其在单片机系统中的应用。
    的头像 发表于 09-10 11:32 1566次阅读

    常用的pwm跟踪控制方式是哪三种

    PWM(脉宽调制)跟踪控制是一广泛应用于电机控制、电源管理、通信等领域的技术。它通过调整脉冲的宽度来控制输出信号的占空比,从而实现对系统的精确控制。常用的PWM跟踪控制方式主要有三种:增量式PWM
    的头像 发表于 08-14 10:34 790次阅读

    请问IR900NAT配置常用三种情景是什么?

    IR900NAT配置常用三种情景
    发表于 07-26 07:02

    伺服电机常用三种控制模式有哪些

    伺服电机是一高精度、高响应速度的电机,广泛应用于自动化设备、机器人、数控机床等领域。伺服电机的控制模式对于整个系统的稳定性、精度和性能至关重要。本文将详细介绍伺服电机常用三种控制模
    的头像 发表于 06-05 15:51 4924次阅读

    关于FPGA IP

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

    差分晶振的输出波形解析三种类型要知道

    差分晶振的输出波形解析三种类型要知道  差分晶振是一常见的电路元件,用于产生高稳定性的方波信号。它采用了一个振荡电路,包含了一个典型的集成晶体振荡器和两个反向耦合的输出信号。 差分晶振的输出波形
    的头像 发表于 01-24 13:46 1151次阅读

    异步电机主要的三种调速方法解析

    异步电机主要的三种调速方法解析
    的头像 发表于 01-07 17:50 2227次阅读
    异步电机主要的<b class='flag-5'>三种</b>调速方法<b class='flag-5'>解析</b>

    FPGA优质开源模块-SRIO IP的使用

    本文介绍一个FPGA常用模块:SRIO(Serial RapidIO)。SRIO协议是一高速串行通信协议,在我参与的项目中主要是用于FPGA和DSP之间的高速通信。有关SRIO协议的详细介绍网上有很多,本文主要简单介绍一下SR
    的头像 发表于 12-12 09:19 2091次阅读
    FPGA优质开源模块-SRIO <b class='flag-5'>IP</b><b class='flag-5'>核</b>的使用

    常见的socket三种类型

    常见的socket三种类型  Socket是计算机网络中常用的通信机制,在网络编程中起到了非常重要的作用。Socket可以分为三种类型:流套接字(Stream Socket)、数据报套接字
    的头像 发表于 12-08 11:18 2344次阅读

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

    Xilinx公司的FPGA中有着很多的有用且对整个工程很有益处的IP,比如数学类的IP,数字信号处理使用的IP
    的头像 发表于 12-05 15:05 1546次阅读

    HDMI无缝拼接矩阵的三种模式

    问题。HDMI无缝拼接矩阵拥有多种模式,例如常规拼接模式、画中画模式和画外画模式。本文将详细介绍和解析三种模式的原理和应用场景。 一、常规拼接模式 常规拼接模式是HDMI无缝拼接矩阵最基本的工作模式。在常规拼接模式下,多个显示
    的头像 发表于 12-04 14:40 855次阅读

    电源的三种常用冷却方法

    在电源领域,散热至关重要,它可直接影响电源性能、可靠性和寿命。随着电子元件的尺寸不断缩小,功率越来越大,有效的冷却方法对于防止过热和确保最佳功能至关重要。在本文中,我们将深入独具吸引力的电源冷却领域,并探讨三种常用方法的优缺点:对流冷却、传导冷却和强制空气冷却。
    的头像 发表于 12-03 10:29 986次阅读