基于ZYNQ-7000开发板的调试系列(7)

PL与PS数据共享(1)

之前做的所有的工作都是要么仅仅使用PS部分,有么仅仅使用PL部分,接下去开始,则需要两个部分同时编程,同时运行。之前所有的项目中间,都是构造一个系统,该系统中由各个功能不同的IP核组成,数据在各个IP和之间通过总线相连接。这一部分计划实现一个自己实现的IP核,并通过AXI4-Lite总线完成几个寄存器内的数据进行共享。
正巧,在基于ZYNQ-7000开发板的调试系列(5)提到过基于TTC计时器的基础使用用途,即通过PL部分的PWM来完成一个呼吸灯的效果,这一部分主要就是实现呼吸灯的效果。

1. 创建Block

1. 创建一个ZYNQ Processing System

这里没有需要注意的地方,仅仅需要将DDR的型号调整至于芯片型号一致即可。

2. 创建一个新的IP核框架

首先是菜单栏中的Tools -> Create and Package New IP,或者是直接按照上面的指示,按在打开Tools栏后直接按k即可。Item List
打开的界面如下:
Create and Package New IP 1
之后选择创建一个新的外设IP核。
Create and Package New IP 2
修改IP核的名称等基本信息,这里随便取了一个名称ip1_pwm。
Create and Package New IP 3
设置外设与PS部分的数据接口,以及接口的基本属性。Create and Package New IP 4

这里无需改动,但是需要注意这里的Interface Type选项,里面包括了Lite、Full以及Stream选项,代表了不同的AXI总线,之后将对这部分进行展开,使用不同的总线传输需要的数据。具体的功能如图所示:

接口协议 特性 应用场合
AXI4-Lite 地址、单数据传输 低速外设或控制
AXI4 地址、突发数据传输 地址的批量传输
AXI4-Stream 仅传输数据,突发传输 数据流和媒体流传输

最后,完成外设的框架设计将IP核放入项目内即可。
Create and Package New IP 5

3. 完成IP核编写

1. 撰写功能核心代码

在IP Catalog中找到刚刚创建的IP核,并对它进行编辑,之后会进入一个新的Vivado项目中,即IP核的项目。
在这里插入图片描述
在Design Source里新建一个verilog文件,完成自己的module的编写。
首先先考虑需要的IP核需要有哪些功能:

  1. 需要按照外部指令调整输出信号的占空比。
  2. 需要按照外部指令调整输出信号的频率。
  3. 需要支持复位。

需要的接口:

  1. 时钟,提供内部时序。(clk)
  2. 复位,提供复位功能。(rst)
  3. 占空比,提供输出占空比要求。(duty)
  4. 周期,提供输出频率要求。(period)
  5. 输出,输出信号。(out)

代码如下:


                
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值