第六期 自定义IP添加-PWM 基于ARTY A7的MicroBlaze系统搭建与应用
说明
直接在cpu中添加p产生pwm的IP核,会消耗较多定时器资源,而定时器资源是比较紧缺的
所以考虑在FPGA上生成pwm波,而软核只考虑提供pwm波的周期和占空比
演示:在软核中添加自定义的ip
(1)新建工程
(2)先要有一个产生pwm的.v文件,文件中有两个输入,周期(步进值)和延迟
(3)产生自定义ip核
(4)要创建一个满足axi4的IP核(直接点击进来的)
(5)axi4 的寄存器个数为4个,本例子中其实只有两个,主要例化时就可以例化两个
(6)在ip catalog中找到自定义的IP核,编辑
(7)添加pwm的.v文件,并且注意要复制代码的勾选项
(8)将ip核进行例化,两个寄存器端口的例化注意连接端口
(9)添加两次的例化,并且添加两个输出端口,在顶层文件也需要进行添加输出端口
(10)进行自动融合,re-package ip
就完成了pwn ip的设计
bd文件的编辑
(1)新建bd文件
(2)添加时钟,软核,串口->布线
(3)添加pwm的ip,ctrl + T输出端口,自动连接,检查是猴子正确
(4)注意,pwm的时钟是100MHz
(5)产生顶层封装文件
(6)对pwm的管脚输出进行配置,
添加官方的管脚约束条件
若是用到该管脚,就取消到注释,但注意要管脚名称正确
(7)生产bit流文件
(8)导出硬件文件,注意导出位置
vitis文件
(1)新建hello,world工程
(2)利用pwm_ip.h编写驱动文件,参数文件
(3)在hello,world中修改,编写驱动文件
1添加头文件
2添加寄存器设置,写寄存器的函数(基地址,偏移量,数据)(两路)
3添加while循环(占空比的变化)
为了体现两路pwm变化的不同,将两路占空比进行反向
(4)编译,下载
(5)结果显示