首页 > 其他分享 >ZYNQ自定义IP并使用

ZYNQ自定义IP并使用

时间:2024-03-14 11:29:18浏览次数:23  
标签:pwm 自定义 IP include 添加 ZYNQ ip PWM

目的:自定义一个IP并添加到设计中使用(产生PWM波形)

在ZYNQ系统中将许多特定功能的硬件设计模块封装起来称为IP核,类似于库函数。这种方式极大的提高了设计效率。当遇到设计中的一些特殊的需求且官方没有对应的IP时就需要我们自定义IP来使用。

 

创建步骤:

1、创建新IP

进入vivado之后点击管理IP、新IP,之后点击finish

2、进入界面之后点击tools

如果需要axi的话就选择下面的

点击这个就不用手动添加ip到工程中了

3、右键创建的ip,打开IP编辑界面开始编辑IP

4、打开pwm_ip_v1_0.v添加输入与输出端口并保存

4、打开pwm_ip_v1_0.v下的pwm_ip_v1_0_S00_AXI.v

同样在18行添加端口,401行例化IP

例化完成之后就开始添加IP的源代码

5、添加一个新source文件,注意文件名和文件位置

编写代码后点击综合

6、综合完成之后点击component.xml开始封装IP核

添加zynq7000系列器件

最后点击review and package 更新总结界面

至此IP的设计与封装已经完成

自定义IP使用步骤:

1、首先创建一个vivado工程,将刚刚做好的IP添加到ip列表中,以便后续使用。点击设置来添加ip

2、新建一个BD设计,首先添加zynq IP 配置串口和ddr3,再添加自定义的pwm ip

添加完成后直接自动连线,引出pwm端口

3、连线完成后验证设计,无误后开始生成创建封装与输出文件

4、创建引脚约束

我的板子上led灯连接的是T19引脚,高电平灯亮

5、生成bit流 并导出到sdk

导出->导出到硬件 并包含bit流文件,再打开SDK

6、在sdk中创建一个新的空应用工程,并添加main.c文件

在板级支持里的ip头文件里可以查看ip的函数使用

7、main文件中添加代码:

可以修改第三个参数修改pwm呼吸频率

#include "stdio.h"

#include "xparameters.h"

#include "xil_printf.h"

#include "xil_io.h"

#include "pwm_ip.h"

#include "sleep.h"

#define PWM_IP_BASEADDR                XPAR_PWM_IP_0_S00_AXI_BASEADDR        //PWM IP基地址

#define PWM_IP_REG0                        PWM_IP_S00_AXI_SLV_REG0_OFFSET        //PWM IP寄存器地址1

#define PWM_IP_REG1                        PWM_IP_S00_AXI_SLV_REG1_OFFSET        //PWM IP寄存器地址2

int main(){

xil_printf("PWM_IP Test!\n");

PWM_IP_mWriteReg(PWM_IP_BASEADDR,PWM_IP_REG1,0x0000001f);

}

8、连接串口并烧录程序

再勾选一下核心,开始烧录

系统运行正常:

标签:pwm,自定义,IP,include,添加,ZYNQ,ip,PWM
From: https://blog.csdn.net/weixin_51353185/article/details/136702760

相关文章

  • SpringBoot 中使用自定义参数解析器修改请求对象
    SpringBoot中使用自定义参数解析器修改请求对象在SpringBoot应用中,有时我们需要在控制器方法执行之前对请求对象进行修改。自定义参数解析器提供了一种灵活的方式来实现这一需求。1.创建自定义参数解析器首先,我们需要创建一个自定义参数解析器来处理对CommonRequest......
  • 如何查看是conda还是pip方式安装的?
    比如:PyInstaller这个包可以通过以下方式来确定是通过Conda还是Pip安装的:如果你使用Conda安装了PyInstaller,你可以打开Conda终端或命令提示符,然后输入以下命令:condalist在输出中查找PyInstaller,如果它在列表中,那么你就是通过Conda安装的。如果你使用Pip安装了......
  • IP地址
    IP地址分为ABCDE五大类IP地址由网络位和主机位构成ABC类位常用地址,D类为广播,E类为科研保留使用A类IP结构网络位+主机位+主机位+主机位地址范围:1.0.0.0-127.0.0.0实际有效范围:1.0.0.1-126.255.255.254子网掩码为:255.0.0.0注:A:0-127,其中0代表任何地址,127为回环测试地址,因此,A......
  • 「Java开发指南」MyEclipse如何支持Spring Scaffolding?(五)
    在上文中(点击这里回顾>>)主要为大家介绍了SpringDSL模型等内容,本文将继续介绍菜单等。MyEclipsev2023.1.2离线版下载MyEclipse技术交流群:742336981欢迎一起进群讨论6.菜单本节主要描述与Spring支持的MyEclipse相关的各种菜单。6.1MyEclipse菜单当您右键单击Eclipse项目......
  • 单据类型参数设置增加自定义参数并通过BOS标准函数调用
     1、BOS函数说明2、创建对应单据的【单据类型参数】,继承自【单据类型参数模版】。 3、在单据参数中绑定【单据类型参数对象】 4、参数设置设置对应参数 5、在BOS中调用标准函数进行使用。 ......
  • 【JavaScript】面试手撕柯里化函数
    ......
  • Vite+Vue3打包性能优化 Gzip压缩
    安装插件npmivite-plugin-compression-D配置文件//vite.config.tsimportviteCompressionfrom'vite-plugin-compression';exportdefault()=>{return{plugins:[viteCompression({threshold:10240,//设置只有大于10kb的......
  • 蓝桥杯算法训练VIP-数组查找及替换
    题目1634:蓝桥杯算法训练VIP-数组查找及替换时间限制:3s内存限制:192MB提交:1629解决:890题目描述给定某整数数组和某一整数b。要求删除数组中可以被b整除的所有元素,同时将该数组各元素按从小到大排序。如果数组元素数值在A到Z的ASCII之间,替换为对应字母。输......
  • 【NOIP2013模拟联考8】匹配(match) 题解
    B组都说看不懂……我也解释不清啊……只能写这么详细了ac自动机ac自动机上dp怎么才能判定一个母串是否包含几个模式串?我们可以想到ac自动机,考虑对模式串建ac自动机,如果我们跑到了一个标记为tail的节点,说明我们的母串包含了这一个模式串。所以我们设\(f[i][s][......
  • 【华为OD】C卷真题 200分:分披萨 JavaScript代码实现[思路+代码]
       C++\python\java\C代码:【华为OD】C卷真题200分:分披萨C/C++代码实现[思路+代码]_第一行为正整数奇数n,表示最小披萨小块数量。3<=n<500-CSDN博客【华为OD】C卷真题200分:分披萨python代码实现[思路+代码]-CSDN博客【华为OD】C卷真题200分:分披萨Java代码实现[思路+......