百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

vivado三种常用IP核的调用

bigegpt 2024-08-10 12:10 6 浏览

vivado三种常用IP核的调用

当前使用版本为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

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

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

配置需要输出的倍频频率

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

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

在代码中对IP核进行调用

编写TESTBENCH,仿真结果如下

ILA

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

打开IP Catelog,输入ILA

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

配置观察端口的位数

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

在代码中调用IP

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

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表示是十进制显示。之后,在文件的最末尾,将最后一个数据后面的逗号改成分号,点击保存。

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

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

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

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

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

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

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

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


以上,便是vivado三种常用IP核的调用。


来 源 | FPGA设计论坛






相关推荐

10w qps缓存数据库——Redis(redis缓存调优)

一、Redis数据库介绍:Redis:非关系型缓存数据库nosql:非关系型数据库没有表,没有表与表之间的关系,更不存在外键存储数据的形式为key:values的形式c语言写的服务(监听端口),用来存...

Redis系列专题4--Redis配置参数详解

本文基于windowsX64,3.2.100版本讲解,不同版本默认配置参数不同在Redis中,Redis的根目录中有一个配置文件(redis.conf,windows下为redis.windows....

开源一夏 | 23 张图,4500 字从入门到精通解释 Redis

redis是目前出场率最高的NoSQL数据库,同时也是一个开源的数据结构存储系统,在缓存、数据库、消息处理等场景使用的非常多,本文瑞哥就带着大家用一篇文章入门这个强大的开源数据库——Redis。...

redis的简单与集群搭建(redis建立集群)

Redis是什么?是开源免费用c语言编写的单线程高性能的(key-value形式)内存数据库,基于内存运行并支持持久化的nosql数据库作用主要用来做缓存,单不仅仅是做缓存,比如:redis的计数器生...

推荐几个好用Redis图形化客户端工具

RedisPlushttps://gitee.com/MaxBill/RedisPlusRedisPlus是为Redis可视化管理开发的一款开源免费的桌面客户端软件,支持Windows、Linux...

关于Redis在windows上运行及fork函数问题

Redis在将数据库进行持久化操作时,需要fork一个进程,但是windows并不支持fork,导致在持久化操作期间,Redis必须阻塞所有的客户端直至持久化操作完成。微软的一些工程师花费时间在解决在...

你必须懂的Redis十大应用场景(redis常见应用场景)

Redis作为一款高性能的键值存储数据库,在互联网业务中有着广泛的应用。今天,我们就来详细盘点一下Redis的十大常用业务场景,并附上Golang的示例代码和简图,帮助大家更好地理解和应用Redis。...

极简Redis配置(redis的配置)

一、概述Redis的配置文件位于Redis安装目录下,文件名为redis.conf(Windows名为redis.windows.conf,linux下的是redis.conf)你可以通过C...

什么是redis,怎么启动及如何压测

从今天起咱们一起来学习一下关于“redis监控与调优”的内容。一、Redis介绍Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。...

一款全新Redis UI可视化管理工具,支持WebUI和桌面——P3X Redis UI

介绍P3XRedisUI这是一个非常实用的RedisGUI,提供响应式WebUI访问或作为桌面应用程序使用,桌面端是跨平台的,而且完美支持中文界面。Githubhttps://github....

windows系统的服务器快速部署java项目环境地址

1、mysql:https://dev.mysql.com/downloads/mysql/(msi安装包)2、redis:https://github.com/tporadowski/redis/r...

window11 下 redis 下载与安装(windows安装redis客户端)

#热爱编程是一种怎样的体验#window11下redis下载与安装1)各个版本redis下载(windows)https://github.com/MicrosoftArchive/r...

一款轻量级的Redis客户端工具,贼好用!

使用命令行来操作Redis是一件非常麻烦的事情,我们一般会选用客户端工具来操作Redis。今天给大家分享一款好用的Redis客户端工具TinyRDM,它的界面清新又优雅,希望对大家有所帮助!简介Ti...

一个.NET开发且功能强大的Windows远程控制系统

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍SiMayRemoteMonitorOS是一个基于Windows的远程控制系统,完...

Redis客户端工具详解(4款主流工具)

大家好,我是mikechen。Redis是大型架构的基石,也是大厂最爱考察内容,今天就给大家重点详解4款Redis工具@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集...