刚开始学习PS与PL通信的时候,总是理解的不透彻,只能跟书上或者网上的教程学习,但是也只是照猫画虎。直到看了这篇博文:
http://xilinx.eetop.cn/viewnews-2547 这个说的很好,主要讲PL 和PS之间的通信,但是中间写了很多为什么要这么做。在网上找的很多其他资料根本就没有这方面的介绍
步骤大致如下:
1、创建一个block,加载XML文件。
2、在block中添加zynq的核,同是引出 DDR 和 FIXED_IO信号(不理解为什么要引出这两个,但是看了好多例程,都是把这两个引脚引出来了)。
3、添加你想用的外设,比如是GPIO还是UART,然后点击链接,会自动的添加另外两个模块,系统复位模块和AXI interconnect 接口模块。根据接口之间的定义,他们会自动的连在一起。
链接方式是:a) PS模块中的M_AXI_GP0端口 链接 AXI interconnect 模块的 s00_axi
b) AXI interconnect 模块 的 M00_AXI 接外设的 S_AXI
c) 当然时钟和复位信号都是公用的,需要链接。
上面这三个,在自己创建一个AXI的IP模块的时候也是这么连的。后面也要重点学习怎么把自己写的.V代码生成IP ;怎么在创建的AXI iP模块中添加代码来实现自己的功能
4、block生成之后,可以看到,已