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

    文章

    578

    浏览量

    88547
  • IP核
    +关注

    关注

    4

    文章

    339

    浏览量

    51716
  • 实时仿真
    +关注

    关注

    0

    文章

    34

    浏览量

    8915
  • Vivado
    +关注

    关注

    19

    文章

    846

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    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

    【干货】一文带你了解CAN、Modbus与LoRa三种通信协议的区别

    在工业自动化与物联网领域,CAN、Modbus和LoRa是三种主流通信技术。而亿佰特在该行业具有丰富的产品供客户选择与使用,帮助客户进一步确定需求,本文将结合技术细节与实际案例解析其核心区别。一
    的头像 发表于 08-28 19:32 1820次阅读
    【干货】一文带你了解CAN、Modbus与LoRa<b class='flag-5'>三种</b>通信协议的区别

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

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

    开关电源三种控制模式:PWM/PFM/PSM

    摘要 本文详细介绍了开关电源的三种主要调制方式:PWM(脉冲宽度调制)、PFM(脉冲频率调制)和PSM(脉冲跨周期调制)。PWM通过调整脉冲宽度保持恒定频率,适用于重负载,但轻负载效率低。PFM则在
    发表于 06-09 16:11

    介绍三种常见的MySQL高可用方案

    在生产环境中,为了确保数据库系统的连续可用性、降低故障恢复时间以及实现业务的无缝切换,高可用(High Availability, HA)方案至关重要。本文将详细介绍三种常见的 MySQL 高可用
    的头像 发表于 05-28 17:16 1000次阅读

    Vivado调用MIG产生DDR3的问题解析

    下面是调用的DDR3模块的,模块的倒数第二行是,模块的时钟输入,时钟源来自PLL产生的系统时钟的倍频。
    的头像 发表于 05-03 10:21 1220次阅读
    在<b class='flag-5'>Vivado</b><b class='flag-5'>调用</b>MIG产生DDR3的问题<b class='flag-5'>解析</b>

    双极型极管放大电路的三种基本组态的学习课件免费下载

      本文档的主要内容详细介绍的是双极型极管放大电路的三种基本组态的学习课件免费下载包括了:共集电极放大电路,共基极放大电路,三种基本组态的比较   输入信号ui
    发表于 04-11 16:39 27次下载

    redis三种集群方案详解

    在Redis中提供的集群方案总共有三种(一般一个redis节点不超过10G内存)。
    的头像 发表于 03-31 10:46 1274次阅读
    redis<b class='flag-5'>三种</b>集群方案详解

    Vivado FIR IP核实现

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

    Linux ip命令常用操作

    Linux ip命令常用操作 在Linux系统中,ip命令是用于管理网络接口和路由的强大工具。相比于旧的 ifconfig命令,ip命令提供了更多的功能和更细粒度的控制。本文将
    的头像 发表于 02-19 10:23 1073次阅读

    深入解析三种锂电池封装形状背后的技术路线与工艺奥秘

    的工艺制程,犹如把钥匙,开启着不同应用场景的大门。本文将深入解析三种锂电池封装形状背后的技术路线与工艺奥秘。 一、方形锂电池:坚固方正背后的工艺匠心 (一)结构与设计优势 方形锂电池以其规整的外形示人,这种
    的头像 发表于 02-17 10:10 2029次阅读
    深入<b class='flag-5'>解析</b><b class='flag-5'>三种</b>锂电池封装形状背后的技术路线与工艺奥秘

    示波器的三种触发模式

    示波器的触发方式不仅影响波形捕捉的时机,还决定了显示的波形是否稳定。 常见的触发模式有三种: 单次触发 (Single)、 正常触发 (Normal)和 自动触发 (Auto)。下面将对这三种触发
    的头像 发表于 01-07 11:04 1.3w次阅读
    示波器的<b class='flag-5'>三种</b>触发模式